| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 75972da commit ba18406
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -38,6 +38,7 @@ assertCrypto(); | |||
| 38 | 38 | const { setImmediate } = require('timers'); | |
| 39 | 39 | const assert = require('internal/assert'); | |
| 40 | 40 | const crypto = require('crypto'); | |
| 41 | + const EE = require('events'); | ||
| 41 | 42 | const net = require('net'); | |
| 42 | 43 | const tls = require('tls'); | |
| 43 | 44 | const common = require('_tls_common'); | |
@@ -1395,6 +1396,19 @@ Server.prototype.addContext = function(servername, context) { | |||
| 1395 | 1396 | this._contexts.push([re, tls.createSecureContext(context).context]); | |
| 1396 | 1397 | }; | |
| 1397 | 1398 | ||
| 1399 | + Server.prototype[EE.captureRejectionSymbol] = function( | ||
| 1400 | + err, event, sock) { | ||
| 1401 | + | ||
| 1402 | + switch (event) { | ||
| 1403 | + case 'secureConnection': | ||
| 1404 | + sock.destroy(err); | ||
| 1405 | + break; | ||
| 1406 | + default: | ||
| 1407 | + net.Server.prototype[Symbol.for('nodejs.rejection')] | ||
| 1408 | + .call(this, err, event, sock); | ||
| 1409 | + } | ||
| 1410 | + }; | ||
| 1411 | + | ||
| 1398 | 1412 | function SNICallback(servername, callback) { | |
| 1399 | 1413 | const contexts = this.server._contexts; | |
| 1400 | 1414 | ||
| 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