diff --git a/index.js b/index.js index 68013ac..a9d0fb9 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -'use strict' + 'use strict' var net = require('net') , tls = require('tls') @@ -154,18 +154,18 @@ TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { function onConnect(res, socket, head) { connectReq.removeAllListeners() socket.removeAllListeners() + self.sockets[self.sockets.indexOf(placeholder)] = socket if (res.statusCode === 200) { assert.equal(head.length, 0) debug('tunneling connection has established') - self.sockets[self.sockets.indexOf(placeholder)] = socket cb(socket) } else { debug('tunneling socket could not be established, statusCode=%d', res.statusCode) var error = new Error('tunneling socket could not be established, ' + 'statusCode=' + res.statusCode) error.code = 'ECONNRESET' - options.request.emit('error', error) - self.removeSocket(placeholder) + cb(socket) + options.request.emit('error', error) // fire up error on ClientRequest. } }