| 100 | ); |
| 101 | |
| 102 | function test(options, clientResult, serverResult) { |
| 103 | const server = tls.createServer(serverOptions, common.mustCall((c) => { |
| 104 | assert.strictEqual(c.servername, serverResult); |
| 105 | assert.strictEqual(c.authorized, false); |
| 106 | })); |
| 107 | |
| 108 | server.addContext('a.example.com', SNIContexts['a.example.com']); |
| 109 | server.addContext('*.test.com', SNIContexts['asterisk.test.com']); |
| 110 | server.addContext('chain.example.com', SNIContexts['chain.example.com']); |
| 111 | |
| 112 | server.on('tlsClientError', common.mustNotCall()); |
| 113 | |
| 114 | server.listen(0, common.mustCall(() => { |
| 115 | const client = tls.connect({ |
| 116 | ...options, |
| 117 | port: server.address().port, |
| 118 | rejectUnauthorized: false |
| 119 | }, common.mustCall(() => { |
| 120 | const result = client.authorizationError && |
| 121 | (client.authorizationError === 'ERR_TLS_CERT_ALTNAME_INVALID'); |
| 122 | assert.strictEqual(result, clientResult); |
| 123 | client.end(); |
| 124 | })); |
| 125 | |
| 126 | client.on('close', common.mustCall(() => { |
| 127 | server.close(); |
| 128 | })); |
| 129 | })); |
| 130 | } |