diff --git a/common.js b/common.js index e279a256..9f47ba26 100644 --- a/common.js +++ b/common.js @@ -26,8 +26,8 @@ module.exports.ShortToStr = function (v) { return String.fromCharCode((v >> 8) & module.exports.ShortToStrX = function (v) { return String.fromCharCode(v & 0xFF, (v >> 8) & 0xFF); }; module.exports.IntToStr = function (v) { return String.fromCharCode((v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF); }; module.exports.IntToStrX = function (v) { return String.fromCharCode(v & 0xFF, (v >> 8) & 0xFF, (v >> 16) & 0xFF, (v >> 24) & 0xFF); }; -module.exports.MakeToArray = function (v) { if (!v || v == null || typeof v == "object") return v; return [v]; }; -module.exports.SplitArray = function (v) { return v.split(","); }; +module.exports.MakeToArray = function (v) { if (!v || v == null || typeof v == 'object') return v; return [v]; }; +module.exports.SplitArray = function (v) { return v.split(','); }; module.exports.Clone = function (v) { return JSON.parse(JSON.stringify(v)); }; module.exports.IsFilenameValid = (function () { var x1 = /^[^\\/:\*\?"<>\|]+$/, x2 = /^\./, x3 = /^(nul|prn|con|lpt[0-9]|com[0-9])(\.|$)/i; return function isFilenameValid(fname) { return module.exports.validateString(fname, 1, 4096) && x1.test(fname) && !x2.test(fname) && !x3.test(fname) && (fname[0] != '.'); }; })(); module.exports.makeFilename = function (v) { return v.split('\\').join('').split('/').join('').split(':').join('').split('*').join('').split('?').join('').split('"').join('').split('<').join('').split('>').join('').split('|').join('').split(' ').join('').split('\'').join(''); } @@ -122,8 +122,8 @@ module.exports.parseNameValueList = function (list) { // Compute the MD5 digest hash for a set of values module.exports.ComputeDigesthash = function (username, password, realm, method, path, qop, nonce, nc, cnonce) { - var ha1 = crypto.createHash('md5').update(username + ":" + realm + ":" + password).digest("hex"); - var ha2 = crypto.createHash('md5').update(method + ":" + path).digest("hex"); + var ha1 = crypto.createHash('md5').update(username + ":" + realm + ":" + password).digest('hex'); + var ha2 = crypto.createHash('md5').update(method + ":" + path).digest('hex'); return crypto.createHash('md5').update(ha1 + ":" + nonce + ":" + nc + ":" + cnonce + ":" + qop + ":" + ha2).digest("hex"); }; diff --git a/meshrelay.js b/meshrelay.js index f9da3299..1b9bed40 100644 --- a/meshrelay.js +++ b/meshrelay.js @@ -337,7 +337,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie tag.ws.logfile = null; tag.pws.logfile = null; // Now that the recording file is closed, check if we need to index this file. - if (domain.sessionrecording.index == true) { parent.parent.certificateOperations.acceleratorPerformOperation('indexMcRec', tag.logfile.filename); } + if (domain.sessionrecording.index !== false) { parent.parent.certificateOperations.acceleratorPerformOperation('indexMcRec', tag.logfile.filename); } }, { ws: ws, pws: peer.ws, logfile: ws.logfile }); } diff --git a/webserver.js b/webserver.js index 88b885c9..66019b35 100644 --- a/webserver.js +++ b/webserver.js @@ -498,7 +498,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { // Return the current domain of the request function getDomain(req) { if (req.xdomain != null) { return req.xdomain; } // Domain already set for this request, return it. - if (req.headers.host != null) { var d = obj.dnsDomains[req.headers.host.toLowerCase()]; if (d != null) return d; } // If this is a DNS name domain, return it here. + if (req.headers.host != null) { var d = obj.dnsDomains[req.headers.host.split(':')[0].toLowerCase()]; if (d != null) return d; } // If this is a DNS name domain, return it here. var x = req.url.split('/'); if (x.length < 2) return parent.config.domains['']; var y = parent.config.domains[x[1].toLowerCase()]; @@ -2676,8 +2676,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { // Fetch the mesh object ws.meshid = 'mesh/' + domain.id + '/' + req.query.id; const mesh = obj.meshes[ws.meshid]; - if (mesh == null) { delete ws.meshid; ws.send(JSON.stringify({ errorText: 'Invalid device group: ' + ws.meshid })); ws.close(); return; } - if (mesh.mtype != 1) { ws.send(JSON.stringify({ errorText: 'Invalid device group type:' + ws.meshid })); ws.close(); return; } + if (mesh == null) { ws.send(JSON.stringify({ errorText: 'Invalid device group: ' + ws.meshid })); delete ws.meshid; ws.close(); return; } + if (mesh.mtype != 1) { ws.send(JSON.stringify({ errorText: 'Invalid device group type:' + ws.meshid })); delete ws.meshid; ws.close(); return; } // Fetch the remote IP:Port for logging ws.remoteaddr = cleanRemoteAddr(req.ip);