summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-02 17:01:55 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-02 17:01:55 +0200
commitae00ab973a95c656930d6d6263b5bd744a3b0cee (patch)
tree096295162ef69320fe3cf3f046e3fbb19ef0d178 /app
parentdcd8b06ca69aa73d6015d4cf6f2b8c30ca5d816b (diff)
proxy all queries to the server
Diffstat (limited to 'app')
-rw-r--r--app/server/bridge.js23
-rw-r--r--app/server/proxy.js2
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) {