%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'; // Tests that attempting to send too many non-acknowledged // settings frames will result in an error const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); const h2 = require('http2'); const maxOutstandingSettings = 2; function doTest(session) { session.on('error', common.expectsError({ code: 'ERR_HTTP2_MAX_PENDING_SETTINGS_ACK', name: 'Error' })); for (let n = 0; n < maxOutstandingSettings; n++) { session.settings({ enablePush: false }); assert.strictEqual(session.pendingSettingsAck, true); } } { const server = h2.createServer({ maxOutstandingSettings }); server.on('stream', common.mustNotCall()); server.once('session', common.mustCall((session) => doTest(session))); server.listen(0, common.mustCall(() => { const client = h2.connect(`http://localhost:${server.address().port}`); client.on('error', common.expectsError({ code: 'ERR_HTTP2_SESSION_ERROR', message: 'Session closed with error code 2', })); client.on('close', common.mustCall(() => server.close())); })); } { const server = h2.createServer(); server.on('stream', common.mustNotCall()); server.listen(0, common.mustCall(() => { const client = h2.connect(`http://localhost:${server.address().port}`, { maxOutstandingSettings }); client.on('connect', () => doTest(client)); client.on('close', () => server.close()); })); }