Fix for slab buffer retention, leading to large memory consumption #370

Merged
merged 1 commit into from Apr 9, 2013
View
7 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