Skip to content

Commit

Permalink
Generate random stream id instead of using the one from engine io.
Browse files Browse the repository at this point in the history
  • Loading branch information
lsm committed Feb 7, 2017
1 parent 7b6413c commit d04a6a1
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions lib/transport/engine.io/common.js
Expand Up @@ -18,13 +18,12 @@ exports.createStream = function createStream(socket) {
stream.remoteAddress = socket.hostname
} else if (socket.request) {
// server side connection socket
stream.id = getSocketID(socket.id)
stream.socket = socket
stream.id = socket.id
stream.headers = socket.request.headers
stream.localPort = socket.request.connection.localPort
// Use id as remotePort if we don't have that information
var remotePort = socket.request.connection.remotePort
stream.remotePort = remotePort || socket.id
stream.headers = socket.request.headers
stream.remotePort = socket.request.connection.remotePort || socket.id
}

//
Expand Down Expand Up @@ -83,3 +82,17 @@ exports.createStream = function createStream(socket) {

return stream
}


var crypto = require('cry' + 'pto')
/**
* Private function for generating random server side stream id.
*/
function getSocketID(seed) {
var rnd = crypto.randomBytes(128)
return crypto.createHash('sha256')
.update(rnd)
.update(seed)
.update(String(Math.random()))
.digest('base64')
}

0 comments on commit d04a6a1

Please sign in to comment.