From 79af5e17ccbe911fed90f95a280d33b2d99db674 Mon Sep 17 00:00:00 2001 From: Guillermo Rauch Date: Sun, 26 Aug 2012 18:13:49 -0700 Subject: [PATCH] server: remove buffering from handleSocket --- lib/server.js | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/lib/server.js b/lib/server.js index 32ff5eff..0194d1bd 100644 --- a/lib/server.js +++ b/lib/server.js @@ -271,29 +271,16 @@ Server.prototype.onWebSocket = function(req, socket){ var policy = readFileSync(__dirname + '/transports/flashsocket.xml'); -Server.prototype.handleSocket = function (socket) { - var chunks = '' - , buffer = false - - socket.on('data', function onData (data) { - if (!buffer && 60 == data[0]) { - buffer = true; - } else { - socket.removeListener('data', onData); - return; - } - - if (chunks.length < 23) { - chunks += data.toString('ascii'); - } - - if (chunks.length >= 23) { - if ('\0' == chunks.substr(0, 23)) { +Server.prototype.handleSocket = function(socket){ + socket.on('data', function onData(data){ + // no need for buffering as node will discard subsequent packets + // since they constitute a malformed HTTP request + if (60 == data[0] && 23 == data.length) { + var str = data.slice(0, 23).toString(); + if ('\0' == str) { socket.end(policy); - } else { - chunks = null; - socket.removeListener('data', onData); } } + socket.removeListener('data', onData); }); };