%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'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const fixtures = require('../common/fixtures'); const makeDuplexPair = require('../common/duplexpair'); const tls = require('tls'); const net = require('net'); // This test ensures that `bufferSize` also works for those tlsSockets // created from `socket` of `Duplex`, with which, TLSSocket will wrap // sockets in `StreamWrap`. { const iter = 10; function createDuplex(port) { const { clientSide, serverSide } = makeDuplexPair(); return new Promise((resolve, reject) => { const socket = net.connect({ port, }, common.mustCall(() => { clientSide.pipe(socket); socket.pipe(clientSide); clientSide.on('close', common.mustCall(() => socket.destroy())); socket.on('close', common.mustCall(() => clientSide.destroy())); resolve(serverSide); })); }); } const server = tls.createServer({ key: fixtures.readKey('agent2-key.pem'), cert: fixtures.readKey('agent2-cert.pem') }, common.mustCall((socket) => { let str = ''; socket.setEncoding('utf-8'); socket.on('data', (chunk) => { str += chunk; }); socket.on('end', common.mustCall(() => { assert.strictEqual(str, 'a'.repeat(iter - 1)); server.close(); })); })); server.listen(0, common.mustCall(() => { const { port } = server.address(); createDuplex(port).then((socket) => { const client = tls.connect({ socket, rejectUnauthorized: false, }, common.mustCall(() => { assert.strictEqual(client.bufferSize, 0); for (let i = 1; i < iter; i++) { client.write('a'); assert.strictEqual(client.bufferSize, i); } client.on('end', common.mustCall()); client.on('close', common.mustCall(() => { assert.strictEqual(client.bufferSize, undefined); })); client.end(); })); }); })); }