summaryrefslogtreecommitdiff
path: root/src/node/handler/SocketIORouter.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/node/handler/SocketIORouter.js')
-rw-r--r--src/node/handler/SocketIORouter.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/node/handler/SocketIORouter.js b/src/node/handler/SocketIORouter.js
index b3e046d2..0a7361f4 100644
--- a/src/node/handler/SocketIORouter.js
+++ b/src/node/handler/SocketIORouter.js
@@ -24,6 +24,7 @@ var log4js = require('log4js');
var messageLogger = log4js.getLogger("message");
var securityManager = require("../db/SecurityManager");
var readOnlyManager = require("../db/ReadOnlyManager");
+var remoteAddress = require("../utils/RemoteAddress").remoteAddress;
var settings = require('../utils/Settings');
/**
@@ -56,11 +57,15 @@ exports.setSocketIO = function(_socket) {
socket.sockets.on('connection', function(client)
{
+
+ // Broken: See http://stackoverflow.com/questions/4647348/send-message-to-specific-client-with-socket-io-and-node-js
+ // Fixed by having a persistant object, ideally this would actually be in the database layer
+ // TODO move to database layer
if(settings.trustProxy && client.handshake.headers['x-forwarded-for'] !== undefined){
- client.set('remoteAddress', client.handshake.headers['x-forwarded-for']);
+ remoteAddress[client.id] = client.handshake.headers['x-forwarded-for'];
}
else{
- client.set('remoteAddress', client.handshake.address.address);
+ remoteAddress[client.id] = client.handshake.address;
}
var clientAuthorized = false;