| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 334d4f6 commit 4eecee0
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -359,10 +359,11 @@ Server.prototype.setTimeout = function setTimeout(msecs, callback) { | |||
| 359 | 359 | }; | |
| 360 | 360 | ||
| 361 | 361 | Server.prototype[EE.captureRejectionSymbol] = function( | |
| 362 | - err, event, req, res) { | ||
| 362 | + err, event, ...args) { | ||
| 363 | 363 | ||
| 364 | 364 | switch (event) { | |
| 365 | 365 | case 'request': | |
| 366 | + const [ , res] = args; | ||
| 366 | 367 | if (!res.headersSent && !res.writableEnded) { | |
| 367 | 368 | // Don't leak headers. | |
| 368 | 369 | for (const name of res.getHeaderNames()) { | |
@@ -375,7 +376,8 @@ Server.prototype[EE.captureRejectionSymbol] = function( | |||
| 375 | 376 | } | |
| 376 | 377 | break; | |
| 377 | 378 | default: | |
| 378 | - this.emit('error', err); | ||
| 379 | + net.Server.prototype[Symbol.for('nodejs.rejection')] | ||
| 380 | + .call(this, err, event, ...args); | ||
| 379 | 381 | } | |
| 380 | 382 | }; | |
| 381 | 383 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1653,6 +1653,19 @@ function emitCloseNT(self) { | |||
| 1653 | 1653 | } | |
| 1654 | 1654 | ||
| 1655 | 1655 | ||
| 1656 | + Server.prototype[EventEmitter.captureRejectionSymbol] = function( | ||
| 1657 | + err, event, sock) { | ||
| 1658 | + | ||
| 1659 | + switch (event) { | ||
| 1660 | + case 'connection': | ||
| 1661 | + sock.destroy(err); | ||
| 1662 | + break; | ||
| 1663 | + default: | ||
| 1664 | + this.emit('error', err); | ||
| 1665 | + } | ||
| 1666 | + }; | ||
| 1667 | + | ||
| 1668 | + | ||
| 1656 | 1669 | // Legacy alias on the C++ wrapper object. This is not public API, so we may | |
| 1657 | 1670 | // want to runtime-deprecate it at some point. There's no hurry, though. | |
| 1658 | 1671 | ObjectDefineProperty(TCP.prototype, 'owner', { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,27 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + const common = require('../common'); | ||
| 4 | + const assert = require('assert'); | ||
| 5 | + const events = require('events'); | ||
| 6 | + const { createServer, connect } = require('net'); | ||
| 7 | + | ||
| 8 | + events.captureRejections = true; | ||
| 9 | + | ||
| 10 | + const server = createServer(common.mustCall(async (sock) => { | ||
| 11 | + server.close(); | ||
| 12 | + | ||
| 13 | + const _err = new Error('kaboom'); | ||
| 14 | + sock.on('error', common.mustCall((err) => { | ||
| 15 | + assert.strictEqual(err, _err); | ||
| 16 | + })); | ||
| 17 | + throw _err; | ||
| 18 | + })); | ||
| 19 | + | ||
| 20 | + server.listen(0, common.mustCall(() => { | ||
| 21 | + const sock = connect( | ||
| 22 | + server.address().port, | ||
| 23 | + server.address().host | ||
| 24 | + ); | ||
| 25 | + | ||
| 26 | + sock.on('close', common.mustCall()); | ||
| 27 | + })); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments