(settings)
| 394 | } |
| 395 | |
| 396 | function 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; |
no outgoing calls
no test coverage detected