From bcd8a564a802512c90df20353ca341a1d8c84501 Mon Sep 17 00:00:00 2001 From: MinRK Date: Tue, 30 Sep 2014 16:13:17 -0700 Subject: [PATCH] close websocket if proxyReq is closed before upgrade avoids leaving client sockets open when upstream connections are rejected. --- lib/http-proxy/passes/ws-incoming.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/http-proxy/passes/ws-incoming.js b/lib/http-proxy/passes/ws-incoming.js index 1bc7869..9d39703 100644 --- a/lib/http-proxy/passes/ws-incoming.js +++ b/lib/http-proxy/passes/ws-incoming.js @@ -89,6 +89,10 @@ var passes = exports; ); // Error Handler proxyReq.on('error', onOutgoingError); + proxyReq.on('response', function (res) { + // if upgrade event isn't going to happen, close the socket + if (!res.upgrade) socket.end(); + }); proxyReq.on('upgrade', function(proxyRes, proxySocket, proxyHead) { proxySocket.on('error', onOutgoingError);