Improved MeshCmd.

Ylian Saint-Hilaire committed Jan 26, 2018 at 17:01 UTC dd6c66d91de6a389d06dc027d2b931f7ec7ed286
4 files changed +5 -4
agents/MeshCommander-Small.gz
Binary files a/agents/MeshCommander-Small.gz and b/agents/MeshCommander-Small.gz differ
agents/MeshService.exe
Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ
agents/MeshService64.exe
Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ
agents/meshcmd.js
+5 -4
@@ -39,6 +39,7 @@ var settings = {
39
40 // Check the server certificate fingerprint
41 function onVerifyServer(clientName, certs) {
42 + if (certs == null) { certs = clientName; } // Temporary thing until we fix duktape
43 try { for (var i in certs) { if (certs[i].fingerprint.replace(/:/g, '') == settings.serverHttpsHash) { return; } } } catch (e) { }
44 if (serverhash != null) { console.log('Error: Failed to verify server certificate.'); throw 'Invalid server certificate'; }
45 }
@@ -388,7 +389,7 @@ function processLmsControlData(data) {
389 // Starts the router
390 function startRouter() {
391 tcpserver = net.createServer(OnTcpClientConnected);
391 - tcpserver.on('error', function (e) { console.log('ERROR: ' + e); exit(0); return; });
392 + tcpserver.on('error', function (e) { console.log('ERRORa: ' + JSON.stringify(e)); exit(0); return; });
393 tcpserver.listen(settings.localPort, function () {
394 // We started listening.
395 if (settings.remoteName == null) {
@@ -410,16 +411,16 @@ function OnTcpClientConnected(c) {
411 debug(1, 'Client connected');
412 c.on('end', function () { disconnectTunnel(this, this.websocket, 'Client closed'); });
413 c.pause();
413 -
414 try {
415 options = http.parseUri(settings.serverUrl + '?user=' + settings.username + '&pass=' + settings.password + '&nodeid=' + settings.remoteNodeId + '&tcpport=' + settings.remotePort);
416 } catch (e) { console.log('Unable to parse \"serverUrl\".'); process.exit(1); return; }
417 options.checkServerIdentity = onVerifyServer;
418 + options.rejectUnauthorized = false;
419 c.websocket = http.request(options);
420 c.websocket.tcp = c;
421 c.websocket.tunneling = false;
422 c.websocket.upgrade = OnWebSocket;
422 - c.websocket.on('error', function (e) { console.log('ERROR: ' + e); });
423 + c.websocket.on('error', function (e) { console.log('ERROR: ' + JSON.stringify(e)); });
424 c.websocket.end();
425 } catch (e) { debug(2, e); }
426 }
@@ -576,7 +577,7 @@ function verifyStorage(name, data, func) {
577 req.on('response', function (response) {
578 response.ptr = 0;
579 response.ok = true;
579 - response.on('data', function (data2) { if (data2 != new Buffer(data.slice(response.ptr, response.ptr + data2.length))) { response.ok = false; console.log('Verifiy failed (' + response.ptr + ', ' + data2.length + ').'); } response.ptr += data2.length; });
580 + response.on('data', function (data2) { if (data2.toString('hex') != data.slice(response.ptr, response.ptr + data2.length).toString('hex')) { response.ok = false; console.log('Verifiy failed (' + response.ptr + ', ' + data2.length + ').'); } response.ptr += data2.length; });
581 response.on('end', function () { if (func != null) { func(response.ok); } });
582 });
583 req.end();