| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 4eecee0 commit 5ad3efb
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -37,6 +37,7 @@ assertCrypto(); | |||
| 37 | 37 | const { setImmediate } = require('timers'); | |
| 38 | 38 | const assert = require('internal/assert'); | |
| 39 | 39 | const crypto = require('crypto'); | |
| 40 | + const EE = require('events'); | ||
| 40 | 41 | const net = require('net'); | |
| 41 | 42 | const tls = require('tls'); | |
| 42 | 43 | const common = require('_tls_common'); | |
@@ -1284,6 +1285,19 @@ Server.prototype.addContext = function(servername, context) { | |||
| 1284 | 1285 | this._contexts.push([re, tls.createSecureContext(context).context]); | |
| 1285 | 1286 | }; | |
| 1286 | 1287 | ||
| 1288 | + Server.prototype[EE.captureRejectionSymbol] = function( | ||
| 1289 | + err, event, sock) { | ||
| 1290 | + | ||
| 1291 | + switch (event) { | ||
| 1292 | + case 'secureConnection': | ||
| 1293 | + sock.destroy(err); | ||
| 1294 | + break; | ||
| 1295 | + default: | ||
| 1296 | + net.Server.prototype[Symbol.for('nodejs.rejection')] | ||
| 1297 | + .call(this, err, event, sock); | ||
| 1298 | + } | ||
| 1299 | + }; | ||
| 1300 | + | ||
| 1287 | 1301 | function SNICallback(servername, callback) { | |
| 1288 | 1302 | const contexts = this.server._contexts; | |
| 1289 | 1303 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,34 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + const common = require('../common'); | ||
| 4 | + if (!common.hasCrypto) | ||
| 5 | + common.skip('missing crypto'); | ||
| 6 | + | ||
| 7 | + const assert = require('assert'); | ||
| 8 | + const events = require('events'); | ||
| 9 | + const fixtures = require('../common/fixtures'); | ||
| 10 | + const { createServer, connect } = require('tls'); | ||
| 11 | + const cert = fixtures.readKey('rsa_cert.crt'); | ||
| 12 | + const key = fixtures.readKey('rsa_private.pem'); | ||
| 13 | + | ||
| 14 | + events.captureRejections = true; | ||
| 15 | + | ||
| 16 | + const server = createServer({ cert, key }, common.mustCall(async (sock) => { | ||
| 17 | + server.close(); | ||
| 18 | + | ||
| 19 | + const _err = new Error('kaboom'); | ||
| 20 | + sock.on('error', common.mustCall((err) => { | ||
| 21 | + assert.strictEqual(err, _err); | ||
| 22 | + })); | ||
| 23 | + throw _err; | ||
| 24 | + })); | ||
| 25 | + | ||
| 26 | + server.listen(0, common.mustCall(() => { | ||
| 27 | + const sock = connect({ | ||
| 28 | + port: server.address().port, | ||
| 29 | + host: server.address().host, | ||
| 30 | + rejectUnauthorized: false | ||
| 31 | + }); | ||
| 32 | + | ||
| 33 | + sock.on('close', common.mustCall()); | ||
| 34 | + })); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments