1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 18:29:17 +02:00

Websocket loadbalancers might run in tcp mode, which makes it difficult to add the X-Forwarded-For header. Pass the IP in the query string instead.

This commit is contained in:
Simo Kinnunen 2014-10-16 15:48:11 +09:00
parent 7cb8fff6ac
commit 1932c17508
3 changed files with 21 additions and 27 deletions

View file

@ -66,10 +66,12 @@ module.exports = function(options) {
io.use(auth)
io.on('connection', function(socket) {
var channels = []
, user = socket.request.user
var req = socket.request
, user = req.user
, channels = []
socket.emit('socket.ip', socket.request.ip)
user.ip = socket.handshake.query.uip || req.ip
socket.emit('socket.ip', user.ip)
function joinChannel(channel) {
channels.push(channel)
@ -672,7 +674,7 @@ module.exports = function(options) {
.on('forward.test', function(channel, responseChannel, data) {
joinChannel(responseChannel)
if (!data.targetHost || data.targetHost === 'localhost') {
data.targetHost = socket.request.ip
data.targetHost = user.ip
}
push.send([
channel
@ -684,7 +686,7 @@ module.exports = function(options) {
})
.on('forward.create', function(channel, responseChannel, data) {
if (!data.targetHost || data.targetHost === 'localhost') {
data.targetHost = socket.request.ip
data.targetHost = user.ip
}
joinChannel(responseChannel)
push.send([