diff --git a/lib/node-http-proxy/http-proxy.js b/lib/node-http-proxy/http-proxy.js index e23d551ca..fe9a9dfe7 100644 --- a/lib/node-http-proxy/http-proxy.js +++ b/lib/node-http-proxy/http-proxy.js @@ -390,12 +390,15 @@ HttpProxy.prototype.proxyRequest = function (req, res, buffer) { // Performs a WebSocket proxy operation to the location specified by // `this.target`. // -HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, head, buffer) { +HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, upgradeHead, buffer) { var self = this, outgoing = new(this.target.base), listeners = {}, errState = false, - CRLF = '\r\n'; + CRLF = '\r\n', + //copy upgradeHead to avoid retention of large slab buffers used in node core + head = new Buffer(upgradeHead.length); + upgradeHead.copy(head); // // WebSocket requests must have the `GET` method and