From 8a70fa1d692fc202adf49491d6f06bac1546f04c Mon Sep 17 00:00:00 2001 From: Matthew Caruana Galizia Date: Tue, 23 Apr 2013 14:42:54 -0600 Subject: [PATCH] Fix issue since node 0.10.0 (readable streams) that caused premature socket end after first chunk. Fixes mattcg/socks5-http-client/issues/1. --- lib/socket.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/socket.js b/lib/socket.js index 30dcadd..f099ff2 100644 --- a/lib/socket.js +++ b/lib/socket.js @@ -21,7 +21,7 @@ /*jshint node:true*/ var net = require('net'); -var stream = require('stream'); +var EventEmitter = require('events').EventEmitter; var inherits = require('util').inherits; var htons = require('network-byte-order').htons; @@ -40,7 +40,7 @@ exports.createConnection = function(options) { function Socks5ClientSocket(socksHost, socksPort) { var self = this; - stream.Stream.call(self); + EventEmitter.call(self); self.socket = new net.Socket(); self.socksHost = socksHost; @@ -57,8 +57,7 @@ function Socks5ClientSocket(socksHost, socksPort) { }); } -//inherits(Socks5ClientSocket, net.Socket); -inherits(Socks5ClientSocket, stream.Stream); +inherits(Socks5ClientSocket, EventEmitter); Socks5ClientSocket.prototype.setTimeout = function(msecs, callback) { return this.socket.setTimeout(msecs, callback); @@ -121,10 +120,6 @@ Socks5ClientSocket.prototype.connect = function(port, host) { Socks5ClientSocket.prototype.handleSocksConnectToHost = function() { var self = this; - self.socket.on('data', function(data) { - self.emit('data', data); - }); - self.socket.on('close', function(hadError) { self.emit('close', hadError); }); @@ -137,6 +132,7 @@ Socks5ClientSocket.prototype.handleSocksConnectToHost = function() { self.socket.parser = self.parser; self.socket.ondata = self.ondata; self.writable = true; + self.readable = true; self.emit('connect'); };