pool.used + bytesRead,
pool.length - pool.used - bytesRead);
} catch (e) {
- return this.pair._error(e);
+ if (this.pair._secureEstablished) {
+ this.pair._error(e);
+ } else {
+ this.pair._destroy();
+ }
+ return;
}
if (chunkBytes >= 0) {
bytesRead += chunkBytes;
try {
rv = this._sucker(tmp);
} catch (e) {
- return this.pair._error(e);
+ if (this.pair._secureEstablished) {
+ this.pair._error(e);
+ } else {
+ this.pair._destroy();
+ }
+ return;
}
if (rv === 0) {
--- /dev/null
+var common = require('../common');
+var tls = require('tls');
+var fs = require('fs');
+var net = require('net');
+
+var options = {
+ key: fs.readFileSync(common.fixturesDir + '/keys/agent2-key.pem'),
+ cert: fs.readFileSync(common.fixturesDir + '/keys/agent2-cert.pem')
+};
+
+var server = tls.createServer(function (s) {
+ s.write("welcome!\n");
+ s.pipe(s);
+});
+
+server.listen(common.PORT, function () {
+ var c = net.createConnection(common.PORT);
+
+ c.on('connect', function () {
+ c.write("blah\nblah\nblah\n");
+ });
+
+ c.on('end', function () {
+ server.close();
+ });
+
+});
+