New MeshAgents, much improved Linux terminal.
Ylian Saint-Hilaire committed
Feb 5, 2020 at 10:59 UTC
d6a113820583547176f7a599bd7f6b02f9a973a6
22 files changed
+25
-7
agents/MeshCmd-signed.exe
Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ
agents/MeshCmd64-signed.exe
Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ
agents/MeshService-signed.exe
Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ
agents/MeshService.exe
Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ
agents/MeshService64-signed.exe
Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ
agents/MeshService64.exe
Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ
agents/meshagent_arm
Binary files a/agents/meshagent_arm and b/agents/meshagent_arm differ
agents/meshagent_arm64
Binary files a/agents/meshagent_arm64 and b/agents/meshagent_arm64 differ
agents/meshagent_armhf
Binary files a/agents/meshagent_armhf and b/agents/meshagent_armhf differ
agents/meshagent_mips
Binary files a/agents/meshagent_mips and b/agents/meshagent_mips differ
agents/meshagent_pogo
Binary files a/agents/meshagent_pogo and b/agents/meshagent_pogo differ
agents/meshagent_poky
Binary files a/agents/meshagent_poky and b/agents/meshagent_poky differ
agents/meshagent_poky64
Binary files a/agents/meshagent_poky64 and b/agents/meshagent_poky64 differ
agents/meshagent_x86
Binary files a/agents/meshagent_x86 and b/agents/meshagent_x86 differ
agents/meshagent_x86-64
Binary files a/agents/meshagent_x86-64 and b/agents/meshagent_x86-64 differ
agents/meshagent_x86-64_nokvm
Binary files a/agents/meshagent_x86-64_nokvm and b/agents/meshagent_x86-64_nokvm differ
agents/meshagent_x86_nokvm
Binary files a/agents/meshagent_x86_nokvm and b/agents/meshagent_x86_nokvm differ
package.json
+1
-1
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.4.8-m",
3
+ "version": "0.4.8-o",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",
public/scripts/amt-terminal-0.0.2.js
+1
-1
@@ -73,7 +73,7 @@ var CreateAmtRemoteTerminal = function (divid, options) {
73
}
74
75
obj.xxStateChange = function (newstate) {
76
- if ((newstate == 3) && (options != null) && (options.xterm == true)) { obj.TermSendKeys(' stty rows ' + obj.height + ' cols ' + obj.width + '\n clear\n'); }
76
+ //if ((newstate == 3) && (options != null) && (options.xterm == true)) { obj.TermSendKeys(' stty rows ' + obj.height + ' cols ' + obj.width + '\n clear\n'); }
77
}
78
79
obj.ProcessData = function (str) {
translate/translate.json
+7
@@ -10434,6 +10434,13 @@
10434
"login.handlebars->container->column_l->centralTable->1->0->logincell->tokenpanel->1->7->1->4->1->1"
10435
]
10436
},
10437
+ {
10438
+ "en": "Login Shell",
10439
+ "xloc": [
10440
+ "default.handlebars->termShellContextMenuLinux->cxtermps",
10441
+ "xterm.handlebars->termShellContextMenuLinux->cxtermps"
10442
+ ]
10443
+ },
10444
{
10445
"cs": "Neplatné přihlášení, zkontrolujte uživatelské jméno a heslo.",
10446
"de": "Anmeldung fehlgeschlagen, Benutzername und Passwort prüfen.",
views/default.handlebars
+8
-1
@@ -64,6 +64,7 @@
64
<div id="termShellContextMenuLinux" class="contextMenu noselect" style="display:none;min-width:0px">
65
<div id="cxtermnorm" class="cmtext" onclick="cmtermaction(1,event)"><b>Root Shell</b></div>
66
<div id="cxtermps" class="cmtext" onclick="cmtermaction(8,event)">User Shell</div>
67
+ <div id="cxtermps" class="cmtext" onclick="cmtermaction(100,event)">Login Shell</div>
68
</div>
69
<div id="altPortContextMenu" class="contextMenu noselect" style="display:none;min-width:0px">
70
<div id="cxaltport" class="cmtext" onclick="cmaltportaction(1,event)"><b>Alternate Port</b></div>
@@ -4014,7 +4015,11 @@
4015
}
4016
4017
function cmtermaction(action) {
4017
- connectTerminal(null, 1, { protocol: action });
4018
+ if (action < 100) {
4019
+ connectTerminal(null, 1, { protocol: action });
4020
+ } else if (action == 100) {
4021
+ connectTerminal(null, 1, { protocol: 1, requireLogin: true });
4022
+ }
4023
}
4024
4025
function cmaltportaction(action) {
@@ -6343,6 +6348,7 @@
6348
} else {
6349
// Setup a mesh agent terminal
6350
var termoptions = { protocol: ((options != null) && (typeof options.protocol == 'number'))?options.protocol:1 };
6351
+ if (options && options.requireLogin) { termoptions.requireLogin = true; }
6352
if ([1, 2, 3, 4, 21, 22].indexOf(currentNode.agent.id) == -1) {
6353
if (Q('termSizeList').value == 2) { termoptions.width = 100; termoptions.height = 30; termoptions.xterm = true; }
6354
if (Q('termSizeList').value == 3) {
@@ -6363,6 +6369,7 @@
6369
}
6370
6371
terminal = CreateAgentRedirect(meshserver, CreateAmtRemoteTerminal('Term', termoptions), serverPublicNamePort, authCookie, authRelayCookie, domainUrl);
6372
+ terminal.options = termoptions;
6373
terminal.debugmode = debugmode;
6374
terminal.m.debugmode = debugmode;
6375
terminal.m.onTitleChange = function (sender, title) { QH('termtitle', ' - ' + EscapeHtml(title)); }
views/xterm.handlebars
+8
-4
@@ -27,6 +27,7 @@
27
<div id="termShellContextMenuLinux" class="contextMenu noselect" style="display:none;min-width:0px">
28
<div id="cxtermnorm" class="cmtext" onclick="cmtermaction(1,event)"><b>Root Shell</b></div>
29
<div id="cxtermps" class="cmtext" onclick="cmtermaction(8,event)">User Shell</div>
30
+ <div id="cxtermps" class="cmtext" onclick="cmtermaction(100,event)">Login Shell</div>
31
</div>
32
<div id=p11 class="noselect" style="overflow:hidden">
33
<div id=deskarea0 style="position:relative">
@@ -161,11 +162,12 @@
162
if (resizeTimer) clearTimeout(resizeTimer);
163
resizeTimer = setTimeout(sendResize, 200);
164
});
164
- term.setOption('convertEol', true); // Consider \n to be \r\n, this should be taken care of by "termios"
165
+ //term.setOption('convertEol', true); // Consider \n to be \r\n, this should be taken care of by "termios"
166
167
// Setup a terminal tunnel to the agent
168
tunnel = CreateAgentRedirect(meshserver, CreateRemoteTunnel(tunnelUpdate, options), serverPublicNamePort, authCookie, authRelayCookie, domainUrl);
169
tunnel.options = { cols: term.cols, rows: term.rows };
170
+ if (options && options.requireLogin) { tunnel.options.requireLogin = true; }
171
tunnel.Start(args.nodeid);
172
tunnel.onStateChanged = onTunnelStateChange;
173
tunnel.onConsoleMessageChange = function (server, msg) { setConsoleMsg(msg); };
@@ -245,9 +247,11 @@
247
}
248
249
function cmtermaction(action) {
248
- //console.log('cmtermaction', action);
249
- connectButton({ protocol: action })
250
- //connectTerminal(null, 1, { protocol: action });
250
+ if (action < 100) {
251
+ connectButton({ protocol: action })
252
+ } else if (action == 100) {
253
+ connectButton({ protocol: 1, requireLogin: true })
254
+ }
255
}
256
257
function hideContextMenu() {