| 'use strict'; |
| |
| const common = require('../common'); |
| const net = require('net'); |
| |
| function barrier(count, cb) { |
| return function() { |
| if (--count === 0) |
| cb(); |
| }; |
| } |
| |
| const server = net.createServer(); |
| server.listen(0, common.mustCall(function() { |
| const port = server.address().port; |
| const conn = net.createConnection(port); |
| const connok = barrier(2, () => conn.resetAndDestroy()); |
| conn.on('close', common.mustCall()); |
| server.on('connection', (socket) => { |
| connok(); |
| socket.on('error', common.expectsError({ |
| code: 'ECONNRESET', |
| message: 'read ECONNRESET', |
| name: 'Error' |
| })); |
| server.close(); |
| }); |
| conn.on('connect', connok); |
| })); |