diff --git a/agents/MeshCmd-signed.exe b/agents/MeshCmd-signed.exe index 32c2eb02..19601b6e 100644 Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ diff --git a/agents/MeshCmd64-signed.exe b/agents/MeshCmd64-signed.exe index 9949a757..76fbb380 100644 Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ diff --git a/agents/MeshService-signed.exe b/agents/MeshService-signed.exe index 2477cda3..252291fd 100644 Binary files a/agents/MeshService-signed.exe and b/agents/MeshService-signed.exe differ diff --git a/agents/MeshService.exe b/agents/MeshService.exe index d5833e5e..c9389033 100644 Binary files a/agents/MeshService.exe and b/agents/MeshService.exe differ diff --git a/agents/MeshService64-signed.exe b/agents/MeshService64-signed.exe index 2158f8e5..23b0808a 100644 Binary files a/agents/MeshService64-signed.exe and b/agents/MeshService64-signed.exe differ diff --git a/agents/MeshService64.exe b/agents/MeshService64.exe index 400584ef..52dae3af 100644 Binary files a/agents/MeshService64.exe and b/agents/MeshService64.exe differ diff --git a/meshrelay.js b/meshrelay.js index abda3501..3f86bf72 100644 --- a/meshrelay.js +++ b/meshrelay.js @@ -170,7 +170,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie try { parent.parent.fs.mkdirSync(parent.parent.recordpath); } catch (e) { } var recFilename = 'session' + ((domain.id == '')?'':'-') + domain.id + '-' + Date.now() + '-' + sessionUser.name + '-' + obj.id + '.mcrec' var recFullFilename = parent.parent.path.join(parent.parent.recordpath, recFilename); - console.log('OpenLog'); + //console.log('OpenLog'); parent.parent.fs.open(recFullFilename, 'w', function (err, fd) { relayinfo.peer1.ws.logfile = ws.logfile = { fd: fd, lock: false }; ws.send('c'); // Send connect to both peers @@ -229,21 +229,22 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie //if (typeof data == 'string') { console.log('Relay: ' + data); } else { console.log('Relay:' + data.length + ' byte(s)'); } try { this._socket.pause(); - if ((this.logfile != null) && (this.logfile.lock == false)) { + if (this.logfile != null) { // Write data to log file then perform relay - /* var xthis = this; - console.log('Write', data.length, typeof data, data); - this.logfile.lock = true; try { - parent.parent.fs.write(this.logfile.fd, data, function (err, bytesWritten, buffer) { - xthis.logfile.lock = false; - console.log('WriteDone', err, bytesWritten, buffer.length); - xthis.peer.send(data, ws.flushSink); - }); + if (typeof data == 'string') { + // String write + parent.parent.fs.write(this.logfile.fd, data, function (err, bytesWritten, buffer) { + xthis.peer.send(data, ws.flushSink); + }); + } else { + // Binary write + parent.parent.fs.write(this.logfile.fd, data, 0, data.length, function (err, bytesWritten, buffer) { + xthis.peer.send(data, ws.flushSink); + }); + } } catch (ex) { console.log(ex); } - */ - this.peer.send(data, ws.flushSink); } else { // Perform relay this.peer.send(data, ws.flushSink); @@ -275,7 +276,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie var peer = (relayinfo.peer1 == obj) ? relayinfo.peer2 : relayinfo.peer1; // Close the recording file - if (ws.logfile != null) { console.log('CloseLog'); parent.parent.fs.close(ws.logfile.fd); ws.logfile = null; peer.ws.logfile = null; } + if (ws.logfile != null) { parent.parent.fs.close(ws.logfile.fd); ws.logfile = null; peer.ws.logfile = null; } // Disconnect the peer try { if (peer.relaySessionCounted) { parent.relaySessionCount--; delete peer.relaySessionCounted; } } catch (ex) { console.log(ex); } diff --git a/package.json b/package.json index cd1d1ed1..32c485a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.3.9-e", + "version": "0.3.9-f", "keywords": [ "Remote Management", "Intel AMT",