mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-01-12 15:33:20 -05:00
Updated meshagent with deaklock detection.
This commit is contained in:
parent
f0c6bffc75
commit
fe060a29ef
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
27
meshrelay.js
27
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); }
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "meshcentral",
|
||||
"version": "0.3.9-e",
|
||||
"version": "0.3.9-f",
|
||||
"keywords": [
|
||||
"Remote Management",
|
||||
"Intel AMT",
|
||||
|
Loading…
Reference in New Issue
Block a user