From f0056413beee0d2ae456229f589381bd2f41ba59 Mon Sep 17 00:00:00 2001 From: chemhack Date: Fri, 17 May 2013 00:50:12 +0200 Subject: [PATCH] fix websocket bug, Issue #26 --- lib/server.js | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/lib/server.js b/lib/server.js index ffefa97..e8309d3 100644 --- a/lib/server.js +++ b/lib/server.js @@ -29,18 +29,26 @@ var SPDYProxy = function(options) { function synReply(socket, code, reason, headers, cb) { try { - socket._lock(function() { - var socket = this; - - this._framer.replyFrame( - this.id, code, reason, headers, - function (err, frame) { - socket.connection.write(frame); - socket._unlock(); - cb.call(); - } - ); - }); + if(socket._lock){ //SPDY socket + socket._lock(function() { + var socket = this; + this._framer.replyFrame( + this.id, code, reason, headers, + function (err, frame) { + socket.connection.write(frame); + socket._unlock(); + cb.call(); + } + ); + }); + }else{ //raw SSL socket + var statusLine = 'HTTP/1.1 ' + code + ' ' + reason + '\r\n'; + var headerLines=''; + for(key in headers){ + headerLines+=key+': '+headers[key]+'\r\n'; + } + socket.write(statusLine+headerLines+'\r\n','UTF-8',cb); + } } catch(error) { cb.call(); }