From eb9c60c58cef0b49e156211a5b1d9b781364c014 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Fri, 31 May 2019 14:30:41 +0100 Subject: [PATCH] feat: restart daemon when connection changes (#942) License: MIT Signed-off-by: Henrique Dias --- src/late/register-daemon.js | 26 ++++++++++++++------------ src/late/webui/connection-status.js | 11 +++++++++++ src/late/webui/preload.js | 2 ++ 3 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 src/late/webui/connection-status.js diff --git a/src/late/register-daemon.js b/src/late/register-daemon.js index bdbcb9e64..705115e5b 100644 --- a/src/late/register-daemon.js +++ b/src/late/register-daemon.js @@ -16,6 +16,7 @@ export const STATUS = { export default async function (ctx) { let ipfsd = null let status = null + let wasOnline = null const updateStatus = (stat) => { status = stat @@ -100,22 +101,23 @@ export default async function (ctx) { }) } - ipcMain.on('startIpfs', () => { - startIpfs() - }) - - ipcMain.on('stopIpfs', () => { - stopIpfs() - }) - - ipcMain.on('restartIpfs', async () => { + const restartIpfs = async () => { await stopIpfs() await startIpfs() - }) + } + + ipcMain.on('startIpfs', startIpfs) + ipcMain.on('stopIpfs', stopIpfs) + ipcMain.on('restartIpfs', restartIpfs) + app.on('before-quit', stopIpfs) await startIpfs() - app.on('before-quit', async () => { - await stopIpfs() + ipcMain.on('online-status-changed', (_, isOnline) => { + if (wasOnline === false && isOnline) { + restartIpfs() + } + + wasOnline = isOnline }) } diff --git a/src/late/webui/connection-status.js b/src/late/webui/connection-status.js new file mode 100644 index 000000000..f8f0688b8 --- /dev/null +++ b/src/late/webui/connection-status.js @@ -0,0 +1,11 @@ +const { ipcRenderer } = require('electron') + +module.exports = function () { + const handler = () => { + ipcRenderer.send('online-status-changed', navigator.onLine) + } + + window.addEventListener('online', handler) + window.addEventListener('offline', handler) + handler() +} diff --git a/src/late/webui/preload.js b/src/late/webui/preload.js index 527233db3..dfacf0d71 100644 --- a/src/late/webui/preload.js +++ b/src/late/webui/preload.js @@ -1,5 +1,6 @@ const { ipcRenderer, remote } = require('electron') const screenshotHook = require('./screenshot') +const connectionHook = require('./connection-status') const toPull = require('stream-to-pull-stream') const readdir = require('recursive-readdir') const fs = require('fs-extra') @@ -9,6 +10,7 @@ const COUNTLY_KEY = '47fbb3db3426d2ae32b3b65fe40c564063d8b55d' const COUNTLY_KEY_TEST = '6b00e04fa5370b1ce361d2f24a09c74254eee382' screenshotHook() +connectionHook() var originalSetItem = window.localStorage.setItem window.localStorage.setItem = function () {