diff options
| author | Erik Larkö <erik@mullvad.net> | 2017-03-25 20:17:53 +0800 |
|---|---|---|
| committer | Erik Larkö <erik@mullvad.net> | 2017-04-03 01:44:33 +0800 |
| commit | fbd72425977346cf9eb32ba394436f061f22d698 (patch) | |
| tree | 00afdaa91c23eadebf048b127345f01975434259 /app | |
| parent | 59948d8c573daae1fadbecb09df5da83b337d3df (diff) | |
| download | mullvadvpn-fbd72425977346cf9eb32ba394436f061f22d698.tar.xz mullvadvpn-fbd72425977346cf9eb32ba394436f061f22d698.zip | |
Read connection string
Diffstat (limited to 'app')
| -rw-r--r-- | app/app.js | 8 | ||||
| -rw-r--r-- | app/lib/backend.js | 7 | ||||
| -rw-r--r-- | app/main.js | 24 |
3 files changed, 36 insertions, 3 deletions
diff --git a/app/app.js b/app/app.js index 39768a419c..143a817cef 100644 --- a/app/app.js +++ b/app/app.js @@ -67,14 +67,16 @@ const updateTrayIcon = () => { ipcRenderer.send('changeTrayIcon', getIconType(connect.status)); }; -backend.sync(); - // Setup primary event handlers to translate backend events into redux dispatch mapBackendEventsToReduxActions(backend, store); // Setup routing based on backend events mapBackendEventsToRouter(backend, store); +ipcRenderer.on('backend-info', (event, args) => { + backend.setLocation(args.addr); + backend.sync(); +}); // Setup events to update tray icon backend.on(Backend.EventType.connect, updateTrayIcon); backend.on(Backend.EventType.connecting, updateTrayIcon); @@ -105,6 +107,8 @@ if ('serviceWorker' in navigator) { }); } +ipcRenderer.send('on-browser-window-ready'); + ReactDOM.render( <Provider store={ store }> <Router history={ routerHistory } routes={ routes } createElement={ createElement } /> diff --git a/app/lib/backend.js b/app/lib/backend.js index 728eac1214..2797c9ac46 100644 --- a/app/lib/backend.js +++ b/app/lib/backend.js @@ -172,6 +172,13 @@ export default class Backend extends EventEmitter { this._startReachability(); } + setLocation(loc) { + console.log('Got connection info to backend', loc); + + this._ipc = new Ipc(loc); + this._registerIpcListeners(); + } + /** * Tells whether account has credits * diff --git a/app/main.js b/app/main.js index dd7d195144..c86606b39c 100644 --- a/app/main.js +++ b/app/main.js @@ -1,4 +1,5 @@ import path from 'path'; +import fs from 'fs'; import { app, BrowserWindow, ipcMain, Tray, Menu, nativeImage } from 'electron'; import TrayIconManager from './lib/tray-icon-manager'; @@ -12,6 +13,10 @@ let tray = null; // New userData path, i.e on macOS: ~/Library/Application Support/mullvad.vpn app.setPath('userData', path.join(app.getPath('appData'), 'mullvad.vpn')); +ipcMain.on('on-browser-window-ready', () => { + sendBackendInfo(); +}); + const installDevTools = async () => { const installer = require('electron-devtools-installer'); const extensions = ['REACT_DEVELOPER_TOOLS', 'REDUX_DEVTOOLS']; @@ -103,7 +108,7 @@ const createContextMenu = () => { if(props.isEditable) { let inputMenu = menuTemplate; - // mixin "inspect element" into standard menu when in development mode + // mixin 'inspect element' into standard menu when in development mode if(isDevelopment) { inputMenu = menuTemplate.concat([{type: 'separator'}], inspectTemplate); } @@ -189,3 +194,20 @@ app.on('ready', async () => { window.openDevTools({ mode: 'detach' }); } }); + +const sendBackendInfo = () => { + const file = './.ipc_connection_info'; + console.log('reading the ipc connection info from', file); + + fs.readFile(file, 'utf8', function (err,data) { + if (err) { + return console.log('Could not find backend connection info', err); + } + + console.log('Read IPC connection info', data); + window.webContents.send('backend-info', { + addr: data, + }); + }); +}; + |
