From ae00ab973a95c656930d6d6263b5bd744a3b0cee Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sat, 2 Jun 2018 17:01:55 +0200 Subject: proxy all queries to the server --- app/server/bridge.js | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'app/server/bridge.js') diff --git a/app/server/bridge.js b/app/server/bridge.js index c2deb20..beac55c 100644 --- a/app/server/bridge.js +++ b/app/server/bridge.js @@ -20,6 +20,7 @@ export const relay = (() => { return relay })() +const syscall_lookup = {} function bind_relay(socket) { console.log('Relay connected') relay_connected = true @@ -31,12 +32,14 @@ function bind_relay(socket) { }) socket.on('status', data => { - // console.log('Received status', data.key) client.emit('status', data) }) socket.on('system_res', data => { - // console.log('System responded', data.type) + if (process.env.CACHE_SYSCALLS) { + const id = make_server_id(data) + syscall_lookup[id] = data + } client.emit('system_res', data) }) @@ -54,6 +57,12 @@ function bind_relay(socket) { client.emit('system_res', { type: 'relay_disconnected' }) }) } +function make_client_id(data){ + return [data.cmd, JSON.stringify(data.payload)].join('_') +} +function make_server_id(data){ + return [data.type, JSON.stringify(data.cmd || data.dir)].join('_') +} function bind_client(socket){ console.log('Client connected') @@ -71,6 +80,16 @@ function bind_client(socket){ socket.on('system', data => { // console.log('Client sent system command', data) + if (process.env.CACHE_SYSCALLS) { + const id = make_client_id(data) + console.log('client', id) + console.log(id in syscall_lookup) + if (id in syscall_lookup) { + const cached = syscall_lookup[id] + syscall_lookup[id].uuid = data.uuid + return socket.emit('system_res', cached) + } + } relay.emit('system', data) }) -- cgit v1.2.3-70-g09d2