◐ Shell
clean mode source ↗

tls: forward keepAlive, keepAliveInitialDelay, noDelay to socket · nodejs/node@bf1ed7e

1+

// Flags: --expose-internals

2+

'use strict';

3+4+

const common = require('../common');

5+6+

// This test verifies that tls.connect() forwards keepAlive,

7+

// keepAliveInitialDelay, and noDelay options to the underlying socket.

8+9+

if (!common.hasCrypto)

10+

common.skip('missing crypto');

11+12+

const assert = require('assert');

13+

const tls = require('tls');

14+

const fixtures = require('../common/fixtures');

15+

const {

16+

kSetNoDelay,

17+

kSetKeepAlive,

18+

kSetKeepAliveInitialDelay,

19+

} = require('internal/net');

20+21+

const key = fixtures.readKey('agent1-key.pem');

22+

const cert = fixtures.readKey('agent1-cert.pem');

23+24+

// Test: keepAlive, keepAliveInitialDelay, and noDelay

25+

{

26+

const server = tls.createServer({ key, cert }, (socket) => {

27+

socket.end();

28+

});

29+30+

server.listen(0, common.mustCall(() => {

31+

const socket = tls.connect({

32+

port: server.address().port,

33+

rejectUnauthorized: false,

34+

keepAlive: true,

35+

keepAliveInitialDelay: 1000,

36+

noDelay: true,

37+

}, common.mustCall(() => {

38+

assert.strictEqual(socket[kSetKeepAlive], true);

39+

assert.strictEqual(socket[kSetKeepAliveInitialDelay], 1);

40+

assert.strictEqual(socket[kSetNoDelay], true);

41+

socket.destroy();

42+

server.close();

43+

}));

44+

}));

45+

}

46+47+

// Test: defaults (options not set)

48+

{

49+

const server = tls.createServer({ key, cert }, (socket) => {

50+

socket.end();

51+

});

52+53+

server.listen(0, common.mustCall(() => {

54+

const socket = tls.connect({

55+

port: server.address().port,

56+

rejectUnauthorized: false,

57+

}, common.mustCall(() => {

58+

assert.strictEqual(socket[kSetKeepAlive], false);

59+

assert.strictEqual(socket[kSetKeepAliveInitialDelay], 0);

60+

assert.strictEqual(socket[kSetNoDelay], false);

61+

socket.destroy();

62+

server.close();

63+

}));

64+

}));

65+

}