diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/server/bridge.js | 23 | ||||
| -rw-r--r-- | app/server/proxy.js | 2 |
2 files changed, 22 insertions, 3 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) }) diff --git a/app/server/proxy.js b/app/server/proxy.js index cebffb0..b6ca14c 100644 --- a/app/server/proxy.js +++ b/app/server/proxy.js @@ -45,7 +45,7 @@ function serve(req, res) { options.headers = get_headers(req.headers) options.method = req.method options.port = process.env.SECURE_PROXY ? 443 : 80 - options.hostname = process.env.RELAY_REMOTE + options.hostname = process.env.PROXY_REMOTE options.path = req.url if (DEBUG) { |
