MCPcopy Index your code
hub / github.com/nodejs/node / updateSettingsBuffer

Function updateSettingsBuffer

lib/internal/http2/util.js:396–528  ·  view source on GitHub ↗
(settings)

Source from the content-addressed store, hash-verified

394}
395
396function updateSettingsBuffer(settings) {
397 let flags = 0;
398 let numCustomSettings = 0;
399
400 if (typeof settings.customSettings === 'object') {
401 const customSettings = settings.customSettings;
402 for (const setting in customSettings) {
403 const val = customSettings[setting];
404 if (typeof val === 'number') {
405 let set = false;
406 const nsetting = Number(setting);
407 if (NumberIsNaN(nsetting) ||
408 typeof nsetting !== 'number' ||
409 0 >= nsetting ||
410 nsetting > 0xffff)
411 throw new ERR_HTTP2_INVALID_SETTING_VALUE.RangeError(
412 'Range Error', nsetting, 0, 0xffff);
413 if (NumberIsNaN(val) ||
414 typeof val !== 'number' ||
415 0 >= val ||
416 val > 0xffffffff)
417 throw new ERR_HTTP2_INVALID_SETTING_VALUE.RangeError(
418 'Range Error', val, 0, 0xffffffff);
419 if (nsetting < IDX_SETTINGS_FLAGS) {
420 set = true;
421 switch (nsetting) {
422 case IDX_SETTINGS_HEADER_TABLE_SIZE:
423 flags |= (1 << IDX_SETTINGS_HEADER_TABLE_SIZE);
424 settingsBuffer[IDX_SETTINGS_HEADER_TABLE_SIZE] =
425 val;
426 break;
427 case IDX_SETTINGS_ENABLE_PUSH:
428 flags |= (1 << IDX_SETTINGS_ENABLE_PUSH);
429 settingsBuffer[IDX_SETTINGS_ENABLE_PUSH] = val;
430 break;
431 case IDX_SETTINGS_INITIAL_WINDOW_SIZE:
432 flags |= (1 << IDX_SETTINGS_INITIAL_WINDOW_SIZE);
433 settingsBuffer[IDX_SETTINGS_INITIAL_WINDOW_SIZE] =
434 val;
435 break;
436 case IDX_SETTINGS_MAX_FRAME_SIZE:
437 flags |= (1 << IDX_SETTINGS_MAX_FRAME_SIZE);
438 settingsBuffer[IDX_SETTINGS_MAX_FRAME_SIZE] =
439 val;
440 break;
441 case IDX_SETTINGS_MAX_CONCURRENT_STREAMS:
442 flags |= (1 << IDX_SETTINGS_MAX_CONCURRENT_STREAMS);
443 settingsBuffer[IDX_SETTINGS_MAX_CONCURRENT_STREAMS] = val;
444 break;
445 case IDX_SETTINGS_MAX_HEADER_LIST_SIZE:
446 flags |= (1 << IDX_SETTINGS_MAX_HEADER_LIST_SIZE);
447 settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE] =
448 val;
449 break;
450 case IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL:
451 flags |= (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL);
452 settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL] = val;
453 break;

Callers 2

submitSettingsFunction · 0.85
getPackedSettingsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected