summaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
authorErik Larkö <erik@mullvad.net>2017-03-25 20:17:53 +0800
committerErik Larkö <erik@mullvad.net>2017-04-03 01:44:33 +0800
commitfbd72425977346cf9eb32ba394436f061f22d698 (patch)
tree00afdaa91c23eadebf048b127345f01975434259 /app
parent59948d8c573daae1fadbecb09df5da83b337d3df (diff)
downloadmullvadvpn-fbd72425977346cf9eb32ba394436f061f22d698.tar.xz
mullvadvpn-fbd72425977346cf9eb32ba394436f061f22d698.zip
Read connection string
Diffstat (limited to 'app')
-rw-r--r--app/app.js8
-rw-r--r--app/lib/backend.js7
-rw-r--r--app/main.js24
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,
+ });
+ });
+};
+