From 9001b21b0739ea1ad97891cb30162833059690fb Mon Sep 17 00:00:00 2001 From: sairajzero Date: Thu, 29 Jul 2021 16:40:55 +0530 Subject: [PATCH] bug fix --- src/database.js | 2 +- src/intra.js | 23 ++++++++++++++--------- src/server.js | 24 +++++++++++++++--------- 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/database.js b/src/database.js index 1ea4ff4..ff4da33 100644 --- a/src/database.js +++ b/src/database.js @@ -290,7 +290,7 @@ function Database(user, password, dbname, host = 'localhost') { db.getData = function(snID, logtime) { return new Promise((resolve, reject) => { let statement = "SELECT * FROM _" + snID + - " WHERE " + L_struct.LOG_TIME + ">=" + logtime + + " WHERE " + L_struct.LOG_TIME + ">" + logtime + " ORDER BY " + L_struct.LOG_TIME; db.query(statement) .then(result => resolve(result)) diff --git a/src/intra.js b/src/intra.js index 3aa760e..d3b4a21 100644 --- a/src/intra.js +++ b/src/intra.js @@ -136,14 +136,19 @@ packet_.constuct = function(message) { }; packet_.s = d => [JSON.stringify(d.message), d.time].join("|"); packet_.parse = function(str) { - let packet = JSON.parse(str.substring(SUPERNODE_INDICATOR.length)); - let curTime = Date.now(); - if (packet.time > curTime - floGlobals.sn_config.delayDelta && - packet.from in floGlobals.supernodes && - floCrypto.verifySign(this.s(packet), packet.sign, floGlobals.supernodes[packet.from].pubKey)) { - if (!Array.isArray(packet.message)) - packet.message = [packet.message]; - return packet; + try { + let packet = JSON.parse(str.substring(SUPERNODE_INDICATOR.length)); + let curTime = Date.now(); + if (packet.time > curTime - floGlobals.sn_config.delayDelta && + packet.from in floGlobals.supernodes && + floCrypto.verifySign(this.s(packet), packet.sign, floGlobals.supernodes[packet.from].pubKey)) { + if (!Array.isArray(packet.message)) + packet.message = [packet.message]; + return packet; + }; + } catch (error) { + console.error(str, error); + return false; }; }; @@ -416,7 +421,7 @@ function handshakeEnd() { //Reconnect to next available node function reconnectNextNode() { - if (_nextNode.ws) + if (_nextNode.id) _nextNode.close(); connectToNextNode() .then(result => console.log(result)) diff --git a/src/server.js b/src/server.js index 76290db..28c207f 100644 --- a/src/server.js +++ b/src/server.js @@ -51,15 +51,21 @@ module.exports = function Server(port, client, intra) { intra.processTaskFromSupernode(message, ws); else { console.debug("WS: ", message); - var request = JSON.parse(message); - client.processRequestFromUser(request) - .then(result => { - ws.send(JSON.stringify(result[0])); - ws._liveReq = request; - }).catch(error => { - if (floGlobals.sn_config.errorFeedback) - ws.send(error.toString()); - }); + try { + var request = JSON.parse(message); + client.processRequestFromUser(request) + .then(result => { + ws.send(JSON.stringify(result[0])); + ws._liveReq = request; + }).catch(error => { + if (floGlobals.sn_config.errorFeedback) + ws.send(error.toString()); + }); + } catch (error) { + console.error(error); + if (floGlobals.sn_config.errorFeedback) + ws.send("Request not in JSON format"); + }; }; }; });