%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const { readKey } = require('../common/fixtures'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const { createServer } = require('https'); const { connect } = require('tls'); const { finished } = require('stream'); // This test validates that the 'timeout' event fires // after server.headersTimeout. const headers = 'GET / HTTP/1.1\r\n' + 'Host: localhost\r\n' + 'Agent: node\r\n'; const server = createServer({ key: readKey('agent1-key.pem'), cert: readKey('agent1-cert.pem'), ca: readKey('ca1-cert.pem'), }, common.mustNotCall()); let sendCharEvery = 1000; // 60 seconds is the default assert.strictEqual(server.headersTimeout, 60 * 1000); // Pass a REAL env variable to shortening up the default // value which is 40s otherwise // this is useful for manual testing if (!process.env.REAL) { sendCharEvery = common.platformTimeout(10); server.headersTimeout = 2 * sendCharEvery; } server.once('timeout', common.mustCall((socket) => { socket.destroy(); })); server.listen(0, common.mustCall(() => { const client = connect({ port: server.address().port, rejectUnauthorized: false }); client.write(headers); client.write('X-CRASH: '); const interval = setInterval(() => { client.write('a'); }, sendCharEvery); client.resume(); finished(client, common.mustCall((err) => { clearInterval(interval); server.close(); })); }));