ca: [loadPEM('ca1-cert')],
servername: 'a.example.com',
rejectUnauthorized: false
-},{
+}, {
port: serverPort,
key: loadPEM('agent2-key'),
cert: loadPEM('agent2-cert'),
ca: [loadPEM('ca2-cert')],
servername: 'b.test.com',
rejectUnauthorized: false
-},{
+}, {
+ port: serverPort,
+ key: loadPEM('agent2-key'),
+ cert: loadPEM('agent2-cert'),
+ ca: [loadPEM('ca2-cert')],
+ servername: 'a.b.test.com',
+ rejectUnauthorized: false
+}, {
port: serverPort,
key: loadPEM('agent3-key'),
cert: loadPEM('agent3-cert'),
server.listen(serverPort, startTest);
function startTest() {
- function connectClient(options, callback) {
+ var i = 0;
+ function start() {
+ // No options left
+ if (i === clientsOptions.length)
+ return server.close();
+
+ var options = clientsOptions[i++];
var client = tls.connect(options, function() {
clientResults.push(
client.authorizationError &&
/Hostname\/IP doesn't/.test(client.authorizationError));
client.destroy();
- callback();
+ // Continue
+ start();
});
};
- connectClient(clientsOptions[0], function() {
- connectClient(clientsOptions[1], function() {
- connectClient(clientsOptions[2], function() {
- server.close();
- });
- });
- });
+ start();
}
process.on('exit', function() {
assert.deepEqual(serverResults, ['a.example.com', 'b.test.com',
- 'c.wrong.com']);
- assert.deepEqual(clientResults, [true, true, false]);
+ 'a.b.test.com', 'c.wrong.com']);
+ assert.deepEqual(clientResults, [true, true, false, false]);
});