From 28ce72ca39404c56ba8190b23351a6a7bcdbf483 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Wed, 17 Feb 2021 19:29:53 +0100 Subject: [PATCH] Correct way to ping --- common/lkt.js | 46 ++++++++++++++++++++++++++++++++++++++++++++-- main.js | 3 ++- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/common/lkt.js b/common/lkt.js index 6fb2163..bcc7733 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -39,7 +39,7 @@ class LktClient { }); this.m_socket.on('ready', () => { - logger.debug('lkt', `Ready to use socker with localhost:${config.port}`); + logger.debug('lkt', `Ready to use socket with localhost:${config.port}`); this.m_online = true; }); @@ -284,7 +284,49 @@ class LktClient { } static ping() { - return LktClient.__execSimple('ping'); + var socket = new net.Socket(); + var result = {}; + function __getResult(socket) { + return new Promise(resolv => { + const sockopt = { + port: config.port, + host: config.host, + readable: true, + writable: true, + }; + logger.debug('lkt', 'Try to ping'); + + socket.setTimeout(3000); + socket.setEncoding('utf8'); + + socket.on('timeout', () => { + logger.error('lkt', `Got timeout while ping to localhost:${config.port}`); + result = false; + resolv(result); + }); + + socket.on('ready', () => { + logger.debug('lkt', `Ping success with localhost:${config.port}`); + result = true; + resolv(result); + }); + + socket.on('error', err => { + logger.error('lkt', `${err}`); + result = false; + resolv(result); + }); + + socket.connect(sockopt, () => { + logger.info('lkt', `Pinged localhost:${config.port}`); + socket.destroy(); + result = true; + resolv(result); + }); + }); + } + + return __getResult(socket); } } diff --git a/main.js b/main.js index 0740484..f69a3de 100644 --- a/main.js +++ b/main.js @@ -287,7 +287,8 @@ ipcMain.on('verify-state', (event, arg) => { }); ipcMain.on('verify-lektord', (event, arg) => { - lkt.ping().then(data => { + lkt.ping().then(sta => { + logger.debug('main', `Status from ping is ${sta}`); lkt.reloadState(); event.reply('send-lektord'); }); -- GitLab