diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-02 17:01:55 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-02 17:01:55 +0200 |
| commit | ae00ab973a95c656930d6d6263b5bd744a3b0cee (patch) | |
| tree | 096295162ef69320fe3cf3f046e3fbb19ef0d178 /app/server/bridge.js | |
| parent | dcd8b06ca69aa73d6015d4cf6f2b8c30ca5d816b (diff) | |
proxy all queries to the server
Diffstat (limited to 'app/server/bridge.js')
| -rw-r--r-- | app/server/bridge.js | 23 |
1 files changed, 21 insertions, 2 deletions
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) }) |
