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() {