@encharm/cws 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bindings/cws_linux_108.node +0 -0
- package/dist/bindings/cws_linux_64.node +0 -0
- package/dist/bindings/cws_linux_72.node +0 -0
- package/dist/bindings/cws_linux_79.node +0 -0
- package/dist/bindings/cws_linux_83.node +0 -0
- package/dist/bindings/cws_linux_93.node +0 -0
- package/dist/bindings/cws_win32_64.node +0 -0
- package/dist/bindings/cws_win32_72.node +0 -0
- package/dist/bindings/cws_win32_79.node +0 -0
- package/dist/bindings/cws_win32_83.node +0 -0
- package/dist/bindings/cws_win32_93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +24 -2
- package/src/HTTPSocket.cpp +1 -1
- package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
- package/src/headers/18/aliased_struct-inl.h +54 -0
- package/src/headers/18/aliased_struct.h +63 -0
- package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/async_wrap.h +26 -2
- package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
- package/src/headers/18/base64.h +69 -0
- package/src/headers/{12 → 18}/base_object-inl.h +46 -25
- package/src/headers/{12 → 18}/base_object.h +82 -17
- package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
- package/src/headers/{12 → 18}/callback_queue.h +13 -5
- package/src/headers/18/cares_wrap.h +523 -0
- package/src/headers/{12 → 18}/connect_wrap.h +0 -0
- package/src/headers/{12 → 18}/connection_wrap.h +0 -0
- package/src/headers/18/crypto/crypto_aes.h +89 -0
- package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
- package/src/headers/18/crypto/crypto_cipher.h +291 -0
- package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
- package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
- package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
- package/src/headers/18/crypto/crypto_context.h +147 -0
- package/src/headers/18/crypto/crypto_dh.h +156 -0
- package/src/headers/18/crypto/crypto_dsa.h +77 -0
- package/src/headers/18/crypto/crypto_ec.h +170 -0
- package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
- package/src/headers/18/crypto/crypto_hash.h +89 -0
- package/src/headers/18/crypto/crypto_hkdf.h +65 -0
- package/src/headers/18/crypto/crypto_hmac.h +94 -0
- package/src/headers/18/crypto/crypto_keygen.h +305 -0
- package/src/headers/18/crypto/crypto_keys.h +420 -0
- package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
- package/src/headers/18/crypto/crypto_random.h +130 -0
- package/src/headers/18/crypto/crypto_rsa.h +141 -0
- package/src/headers/18/crypto/crypto_scrypt.h +87 -0
- package/src/headers/18/crypto/crypto_sig.h +168 -0
- package/src/headers/18/crypto/crypto_spkac.h +21 -0
- package/src/headers/18/crypto/crypto_timing.h +20 -0
- package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
- package/src/headers/18/crypto/crypto_util.h +791 -0
- package/src/headers/18/crypto/crypto_x509.h +143 -0
- package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
- package/src/headers/{13 → 18}/debug_utils.h +7 -4
- package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
- package/src/headers/{12 → 18}/env-inl.h +397 -304
- package/src/headers/{12 → 18}/env.h +397 -172
- package/src/headers/{12 → 18}/handle_wrap.h +7 -3
- package/src/headers/18/histogram-inl.h +107 -0
- package/src/headers/18/histogram.h +239 -0
- package/src/headers/{13 → 18}/inspector_agent.h +4 -7
- package/src/headers/{12 → 18}/inspector_io.h +0 -0
- package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
- package/src/headers/{12 → 18}/inspector_socket.h +0 -0
- package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
- package/src/headers/18/js_native_api.h +571 -0
- package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
- package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
- package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
- package/src/headers/{12 → 18}/js_stream.h +0 -0
- package/src/headers/{12 → 18}/json_utils.h +0 -0
- package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
- package/src/headers/{13 → 18}/memory_tracker.h +0 -7
- package/src/headers/{13 → 18}/module_wrap.h +24 -7
- package/src/headers/{13 → 18}/node.h +329 -68
- package/src/headers/18/node_api.h +288 -0
- package/src/headers/18/node_api_internals.h +38 -0
- package/src/headers/{12 → 18}/node_api_types.h +12 -9
- package/src/headers/{12 → 18}/node_binding.h +0 -0
- package/src/headers/18/node_blob.h +191 -0
- package/src/headers/18/node_bob-inl.h +37 -0
- package/src/headers/18/node_bob.h +111 -0
- package/src/headers/{13 → 18}/node_buffer.h +0 -0
- package/src/headers/{13 → 18}/node_constants.h +5 -1
- package/src/headers/{12 → 18}/node_context_data.h +5 -0
- package/src/headers/{12 → 18}/node_contextify.h +37 -2
- package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
- package/src/headers/{12 → 18}/node_dir.h +0 -0
- package/src/headers/{12 → 18}/node_dtrace.h +0 -0
- package/src/headers/{12 → 18}/node_errors.h +90 -24
- package/src/headers/18/node_external_reference.h +145 -0
- package/src/headers/{13 → 18}/node_file-inl.h +38 -21
- package/src/headers/{12 → 18}/node_file.h +74 -13
- package/src/headers/{13 → 18}/node_http2.h +365 -269
- package/src/headers/{12 → 18}/node_http2_state.h +40 -50
- package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
- package/src/headers/{13 → 18}/node_http_common.h +24 -20
- package/src/headers/{13 → 18}/node_i18n.h +2 -1
- package/src/headers/{12 → 18}/node_internals.h +39 -41
- package/src/headers/{13 → 18}/node_main_instance.h +15 -18
- package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
- package/src/headers/{12 → 18}/node_mem.h +1 -1
- package/src/headers/{13 → 18}/node_messaging.h +170 -23
- package/src/headers/{12 → 18}/node_metadata.h +17 -4
- package/src/headers/{12 → 18}/node_mutex.h +77 -1
- package/src/headers/{12 → 18}/node_native_module.h +11 -1
- package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
- package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
- package/src/headers/{13 → 18}/node_options-inl.h +51 -21
- package/src/headers/{13 → 18}/node_options.h +46 -14
- package/src/headers/18/node_perf.h +168 -0
- package/src/headers/{12 → 18}/node_perf_common.h +16 -22
- package/src/headers/{12 → 18}/node_platform.h +21 -16
- package/src/headers/18/node_process-inl.h +26 -0
- package/src/headers/18/node_process.h +97 -0
- package/src/headers/{13 → 18}/node_report.h +2 -2
- package/src/headers/{13 → 18}/node_revert.h +10 -0
- package/src/headers/{12 → 18}/node_root_certs.h +439 -651
- package/src/headers/18/node_snapshot_builder.h +43 -0
- package/src/headers/18/node_snapshotable.h +130 -0
- package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
- package/src/headers/18/node_sockaddr.h +405 -0
- package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
- package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
- package/src/headers/{13 → 18}/node_url.h +18 -1
- package/src/headers/18/node_v8.h +41 -0
- package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
- package/src/headers/{13 → 18}/node_version.h +7 -7
- package/src/headers/{12 → 18}/node_wasi.h +0 -0
- package/src/headers/18/node_wasm_web_api.h +55 -0
- package/src/headers/{13 → 18}/node_watchdog.h +0 -0
- package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
- package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
- package/src/headers/{13 → 18}/node_worker.h +24 -17
- package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
- package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/req_wrap.h +1 -1
- package/src/headers/{12 → 18}/spawn_sync.h +0 -0
- package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
- package/src/headers/{13 → 18}/stream_base.h +29 -3
- package/src/headers/{13 → 18}/stream_pipe.h +8 -3
- package/src/headers/{12 → 18}/stream_wrap.h +4 -1
- package/src/headers/{13 → 18}/string_bytes.h +0 -7
- package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
- package/src/headers/{10 → 18}/string_decoder.h +0 -0
- package/src/headers/{13 → 18}/string_search.h +2 -2
- package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
- package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
- package/src/headers/18/timer_wrap-inl.h +32 -0
- package/src/headers/18/timer_wrap.h +85 -0
- package/src/headers/{13 → 18}/tracing/agent.h +1 -1
- package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
- package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
- package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
- package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
- package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
- package/src/headers/{13 → 18}/tty_wrap.h +2 -1
- package/src/headers/{13 → 18}/udp_wrap.h +5 -0
- package/src/headers/{13 → 18}/util-inl.h +69 -15
- package/src/headers/{13 → 18}/util.h +93 -31
- package/src/headers/18/v8-fast-api-calls.h +939 -0
- package/src/headers/{12 → 18}/v8abbr.h +2 -2
- package/src/headers/10/aliased_buffer.h +0 -241
- package/src/headers/10/async_wrap-inl.h +0 -106
- package/src/headers/10/async_wrap.h +0 -218
- package/src/headers/10/base64.h +0 -197
- package/src/headers/10/base_object-inl.h +0 -132
- package/src/headers/10/base_object.h +0 -115
- package/src/headers/10/connect_wrap.h +0 -28
- package/src/headers/10/connection_wrap.h +0 -30
- package/src/headers/10/debug_utils.h +0 -128
- package/src/headers/10/env-inl.h +0 -906
- package/src/headers/10/env.h +0 -1046
- package/src/headers/10/handle_wrap.h +0 -114
- package/src/headers/10/inspector_agent.h +0 -137
- package/src/headers/10/inspector_io.h +0 -97
- package/src/headers/10/inspector_socket.h +0 -59
- package/src/headers/10/inspector_socket_server.h +0 -104
- package/src/headers/10/js_stream.h +0 -57
- package/src/headers/10/memory_tracker-inl.h +0 -318
- package/src/headers/10/memory_tracker.h +0 -246
- package/src/headers/10/module_wrap.h +0 -100
- package/src/headers/10/node.h +0 -863
- package/src/headers/10/node_api.h +0 -752
- package/src/headers/10/node_api_types.h +0 -171
- package/src/headers/10/node_buffer.h +0 -90
- package/src/headers/10/node_code_cache.h +0 -17
- package/src/headers/10/node_constants.h +0 -74
- package/src/headers/10/node_context_data.h +0 -39
- package/src/headers/10/node_contextify.h +0 -141
- package/src/headers/10/node_counters.h +0 -59
- package/src/headers/10/node_crypto.h +0 -699
- package/src/headers/10/node_crypto_bio.h +0 -177
- package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
- package/src/headers/10/node_crypto_clienthello.h +0 -131
- package/src/headers/10/node_crypto_groups.h +0 -416
- package/src/headers/10/node_dtrace.h +0 -84
- package/src/headers/10/node_errors.h +0 -118
- package/src/headers/10/node_file.h +0 -373
- package/src/headers/10/node_http2.h +0 -1304
- package/src/headers/10/node_http2_state.h +0 -158
- package/src/headers/10/node_i18n.h +0 -69
- package/src/headers/10/node_internals.h +0 -952
- package/src/headers/10/node_javascript.h +0 -41
- package/src/headers/10/node_messaging.h +0 -219
- package/src/headers/10/node_mutex.h +0 -191
- package/src/headers/10/node_object_wrap.h +0 -130
- package/src/headers/10/node_options-inl.h +0 -444
- package/src/headers/10/node_options.h +0 -397
- package/src/headers/10/node_perf.h +0 -134
- package/src/headers/10/node_perf_common.h +0 -96
- package/src/headers/10/node_persistent.h +0 -30
- package/src/headers/10/node_platform.h +0 -170
- package/src/headers/10/node_revert.h +0 -75
- package/src/headers/10/node_root_certs.h +0 -3393
- package/src/headers/10/node_stat_watcher.h +0 -65
- package/src/headers/10/node_url.h +0 -193
- package/src/headers/10/node_version.h +0 -120
- package/src/headers/10/node_watchdog.h +0 -114
- package/src/headers/10/node_worker.h +0 -94
- package/src/headers/10/pipe_wrap.h +0 -76
- package/src/headers/10/req_wrap-inl.h +0 -166
- package/src/headers/10/req_wrap.h +0 -61
- package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
- package/src/headers/10/spawn_sync.h +0 -240
- package/src/headers/10/stream_base-inl.h +0 -458
- package/src/headers/10/stream_base.h +0 -378
- package/src/headers/10/stream_pipe.h +0 -72
- package/src/headers/10/stream_wrap.h +0 -130
- package/src/headers/10/string_bytes.h +0 -126
- package/src/headers/10/string_decoder-inl.h +0 -38
- package/src/headers/10/string_search.h +0 -620
- package/src/headers/10/tcp_wrap.h +0 -99
- package/src/headers/10/tls_wrap.h +0 -195
- package/src/headers/10/tracing/agent.h +0 -178
- package/src/headers/10/tracing/node_trace_buffer.h +0 -83
- package/src/headers/10/tracing/node_trace_writer.h +0 -75
- package/src/headers/10/tracing/trace_event.h +0 -706
- package/src/headers/10/tracing/trace_event_common.h +0 -1102
- package/src/headers/10/tracing/traced_value.h +0 -68
- package/src/headers/10/tty_wrap.h +0 -63
- package/src/headers/10/udp_wrap.h +0 -102
- package/src/headers/10/util-inl.h +0 -459
- package/src/headers/10/util.h +0 -508
- package/src/headers/10/v8abbr.h +0 -121
- package/src/headers/12/aliased_buffer.h +0 -263
- package/src/headers/12/debug_utils.h +0 -181
- package/src/headers/12/histogram-inl.h +0 -83
- package/src/headers/12/histogram.h +0 -98
- package/src/headers/12/http_parser_adaptor.h +0 -24
- package/src/headers/12/inspector_agent.h +0 -147
- package/src/headers/12/inspector_profiler.h +0 -137
- package/src/headers/12/js_native_api.h +0 -541
- package/src/headers/12/js_native_api_types.h +0 -139
- package/src/headers/12/memory_tracker-inl.h +0 -339
- package/src/headers/12/memory_tracker.h +0 -283
- package/src/headers/12/module_wrap.h +0 -99
- package/src/headers/12/node.h +0 -887
- package/src/headers/12/node_api.h +0 -239
- package/src/headers/12/node_buffer.h +0 -92
- package/src/headers/12/node_constants.h +0 -80
- package/src/headers/12/node_crypto.h +0 -800
- package/src/headers/12/node_crypto_bio.h +0 -195
- package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/12/node_crypto_clienthello.h +0 -132
- package/src/headers/12/node_file-inl.h +0 -289
- package/src/headers/12/node_http2.h +0 -1311
- package/src/headers/12/node_http_parser_impl.h +0 -994
- package/src/headers/12/node_i18n.h +0 -144
- package/src/headers/12/node_main_instance.h +0 -97
- package/src/headers/12/node_messaging.h +0 -227
- package/src/headers/12/node_native_module_env.h +0 -65
- package/src/headers/12/node_options-inl.h +0 -447
- package/src/headers/12/node_options.h +0 -479
- package/src/headers/12/node_perf.h +0 -181
- package/src/headers/12/node_process.h +0 -41
- package/src/headers/12/node_report.h +0 -47
- package/src/headers/12/node_revert.h +0 -78
- package/src/headers/12/node_sockaddr.h +0 -123
- package/src/headers/12/node_url.h +0 -188
- package/src/headers/12/node_version.h +0 -98
- package/src/headers/12/node_watchdog.h +0 -152
- package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/12/node_win32_etw_provider.h +0 -99
- package/src/headers/12/node_worker.h +0 -142
- package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
- package/src/headers/12/stream_base-inl.h +0 -323
- package/src/headers/12/stream_base.h +0 -431
- package/src/headers/12/stream_pipe.h +0 -72
- package/src/headers/12/string_bytes.h +0 -142
- package/src/headers/12/string_decoder.h +0 -50
- package/src/headers/12/string_search.h +0 -638
- package/src/headers/12/tls_wrap.h +0 -221
- package/src/headers/12/tracing/agent.h +0 -195
- package/src/headers/12/tracing/trace_event.h +0 -710
- package/src/headers/12/tty_wrap.h +0 -64
- package/src/headers/12/udp_wrap.h +0 -222
- package/src/headers/12/util-inl.h +0 -529
- package/src/headers/12/util.h +0 -765
- package/src/headers/13/async_wrap-inl.h +0 -94
- package/src/headers/13/async_wrap.h +0 -224
- package/src/headers/13/base64.h +0 -197
- package/src/headers/13/base_object-inl.h +0 -353
- package/src/headers/13/base_object.h +0 -229
- package/src/headers/13/connect_wrap.h +0 -26
- package/src/headers/13/connection_wrap.h +0 -30
- package/src/headers/13/debug_utils-inl.h +0 -223
- package/src/headers/13/diagnosticfilename-inl.h +0 -33
- package/src/headers/13/env-inl.h +0 -1293
- package/src/headers/13/env.h +0 -1469
- package/src/headers/13/handle_wrap.h +0 -117
- package/src/headers/13/histogram-inl.h +0 -83
- package/src/headers/13/histogram.h +0 -98
- package/src/headers/13/inspector_io.h +0 -78
- package/src/headers/13/inspector_socket.h +0 -60
- package/src/headers/13/inspector_socket_server.h +0 -110
- package/src/headers/13/js_native_api.h +0 -541
- package/src/headers/13/js_native_api_v8.h +0 -303
- package/src/headers/13/js_native_api_v8_internals.h +0 -38
- package/src/headers/13/js_stream.h +0 -52
- package/src/headers/13/json_utils.h +0 -160
- package/src/headers/13/node_api.h +0 -239
- package/src/headers/13/node_api_types.h +0 -44
- package/src/headers/13/node_binding.h +0 -99
- package/src/headers/13/node_context_data.h +0 -39
- package/src/headers/13/node_contextify.h +0 -161
- package/src/headers/13/node_crypto.h +0 -800
- package/src/headers/13/node_crypto_common.h +0 -138
- package/src/headers/13/node_crypto_groups.h +0 -415
- package/src/headers/13/node_dir.h +0 -52
- package/src/headers/13/node_dtrace.h +0 -86
- package/src/headers/13/node_errors.h +0 -210
- package/src/headers/13/node_file.h +0 -364
- package/src/headers/13/node_http2_state.h +0 -144
- package/src/headers/13/node_internals.h +0 -405
- package/src/headers/13/node_mem-inl.h +0 -112
- package/src/headers/13/node_mem.h +0 -41
- package/src/headers/13/node_metadata.h +0 -109
- package/src/headers/13/node_mutex.h +0 -247
- package/src/headers/13/node_native_module.h +0 -99
- package/src/headers/13/node_object_wrap.h +0 -132
- package/src/headers/13/node_perf.h +0 -181
- package/src/headers/13/node_perf_common.h +0 -97
- package/src/headers/13/node_platform.h +0 -190
- package/src/headers/13/node_process.h +0 -41
- package/src/headers/13/node_root_certs.h +0 -3424
- package/src/headers/13/node_sockaddr-inl.h +0 -170
- package/src/headers/13/node_sockaddr.h +0 -123
- package/src/headers/13/node_stat_watcher.h +0 -66
- package/src/headers/13/node_union_bytes.h +0 -103
- package/src/headers/13/node_v8_platform-inl.h +0 -184
- package/src/headers/13/node_wasi.h +0 -108
- package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/13/node_win32_etw_provider.h +0 -99
- package/src/headers/13/pipe_wrap.h +0 -78
- package/src/headers/13/req_wrap-inl.h +0 -170
- package/src/headers/13/req_wrap.h +0 -77
- package/src/headers/13/spawn_sync.h +0 -242
- package/src/headers/13/stream_wrap.h +0 -130
- package/src/headers/13/string_decoder-inl.h +0 -37
- package/src/headers/13/string_decoder.h +0 -50
- package/src/headers/13/tcp_wrap.h +0 -101
- package/src/headers/13/threadpoolwork-inl.h +0 -57
- package/src/headers/13/tracing/node_trace_buffer.h +0 -83
- package/src/headers/13/tracing/node_trace_writer.h +0 -75
- package/src/headers/13/tracing/trace_event_common.h +0 -1109
- package/src/headers/13/tracing/traced_value.h +0 -70
- package/src/headers/13/v8abbr.h +0 -124
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
#include "aliased_buffer.h"
|
|
7
7
|
|
|
8
|
+
struct nghttp2_rcbuf;
|
|
9
|
+
|
|
8
10
|
namespace node {
|
|
9
11
|
namespace http2 {
|
|
10
12
|
|
|
@@ -56,13 +58,6 @@ namespace http2 {
|
|
|
56
58
|
IDX_OPTIONS_FLAGS
|
|
57
59
|
};
|
|
58
60
|
|
|
59
|
-
enum Http2PaddingBufferFields {
|
|
60
|
-
PADDING_BUF_FRAME_LENGTH,
|
|
61
|
-
PADDING_BUF_MAX_PAYLOAD_LENGTH,
|
|
62
|
-
PADDING_BUF_RETURN_VALUE,
|
|
63
|
-
PADDING_BUF_FIELD_COUNT
|
|
64
|
-
};
|
|
65
|
-
|
|
66
61
|
enum Http2StreamStatisticsIndex {
|
|
67
62
|
IDX_STREAM_STATS_ID,
|
|
68
63
|
IDX_STREAM_STATS_TIMETOFIRSTBYTE,
|
|
@@ -86,58 +81,54 @@ namespace http2 {
|
|
|
86
81
|
IDX_SESSION_STATS_COUNT
|
|
87
82
|
};
|
|
88
83
|
|
|
89
|
-
class Http2State {
|
|
84
|
+
class Http2State : public BaseObject {
|
|
90
85
|
public:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
offsetof(http2_state_internal, options_buffer),
|
|
123
|
-
IDX_OPTIONS_FLAGS + 1,
|
|
124
|
-
root_buffer),
|
|
125
|
-
settings_buffer(
|
|
126
|
-
isolate,
|
|
127
|
-
offsetof(http2_state_internal, settings_buffer),
|
|
128
|
-
IDX_SETTINGS_COUNT + 1,
|
|
129
|
-
root_buffer) {
|
|
130
|
-
}
|
|
86
|
+
Http2State(Environment* env, v8::Local<v8::Object> obj)
|
|
87
|
+
: BaseObject(env, obj),
|
|
88
|
+
root_buffer(env->isolate(), sizeof(http2_state_internal)),
|
|
89
|
+
session_state_buffer(
|
|
90
|
+
env->isolate(),
|
|
91
|
+
offsetof(http2_state_internal, session_state_buffer),
|
|
92
|
+
IDX_SESSION_STATE_COUNT,
|
|
93
|
+
root_buffer),
|
|
94
|
+
stream_state_buffer(
|
|
95
|
+
env->isolate(),
|
|
96
|
+
offsetof(http2_state_internal, stream_state_buffer),
|
|
97
|
+
IDX_STREAM_STATE_COUNT,
|
|
98
|
+
root_buffer),
|
|
99
|
+
stream_stats_buffer(
|
|
100
|
+
env->isolate(),
|
|
101
|
+
offsetof(http2_state_internal, stream_stats_buffer),
|
|
102
|
+
IDX_STREAM_STATS_COUNT,
|
|
103
|
+
root_buffer),
|
|
104
|
+
session_stats_buffer(
|
|
105
|
+
env->isolate(),
|
|
106
|
+
offsetof(http2_state_internal, session_stats_buffer),
|
|
107
|
+
IDX_SESSION_STATS_COUNT,
|
|
108
|
+
root_buffer),
|
|
109
|
+
options_buffer(env->isolate(),
|
|
110
|
+
offsetof(http2_state_internal, options_buffer),
|
|
111
|
+
IDX_OPTIONS_FLAGS + 1,
|
|
112
|
+
root_buffer),
|
|
113
|
+
settings_buffer(env->isolate(),
|
|
114
|
+
offsetof(http2_state_internal, settings_buffer),
|
|
115
|
+
IDX_SETTINGS_COUNT + 1,
|
|
116
|
+
root_buffer) {}
|
|
131
117
|
|
|
132
118
|
AliasedUint8Array root_buffer;
|
|
133
119
|
AliasedFloat64Array session_state_buffer;
|
|
134
120
|
AliasedFloat64Array stream_state_buffer;
|
|
135
121
|
AliasedFloat64Array stream_stats_buffer;
|
|
136
122
|
AliasedFloat64Array session_stats_buffer;
|
|
137
|
-
AliasedUint32Array padding_buffer;
|
|
138
123
|
AliasedUint32Array options_buffer;
|
|
139
124
|
AliasedUint32Array settings_buffer;
|
|
140
125
|
|
|
126
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
127
|
+
SET_SELF_SIZE(Http2State)
|
|
128
|
+
SET_MEMORY_INFO_NAME(Http2State)
|
|
129
|
+
|
|
130
|
+
static constexpr FastStringKey type_name { "http2" };
|
|
131
|
+
|
|
141
132
|
private:
|
|
142
133
|
struct http2_state_internal {
|
|
143
134
|
// doubles first so that they are always sizeof(double)-aligned
|
|
@@ -145,7 +136,6 @@ class Http2State {
|
|
|
145
136
|
double stream_state_buffer[IDX_STREAM_STATE_COUNT];
|
|
146
137
|
double stream_stats_buffer[IDX_STREAM_STATS_COUNT];
|
|
147
138
|
double session_stats_buffer[IDX_SESSION_STATS_COUNT];
|
|
148
|
-
uint32_t padding_buffer[PADDING_BUF_FIELD_COUNT];
|
|
149
139
|
uint32_t options_buffer[IDX_OPTIONS_FLAGS + 1];
|
|
150
140
|
uint32_t settings_buffer[IDX_SETTINGS_COUNT + 1];
|
|
151
141
|
};
|
|
@@ -31,8 +31,7 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
|
|
|
31
31
|
count_ * sizeof(nv_t) +
|
|
32
32
|
header_string_len);
|
|
33
33
|
|
|
34
|
-
char* start =
|
|
35
|
-
RoundUp(reinterpret_cast<uintptr_t>(*buf_), alignof(nv_t)));
|
|
34
|
+
char* start = AlignUp(buf_.out(), alignof(nv_t));
|
|
36
35
|
char* header_contents = start + (count_ * sizeof(nv_t));
|
|
37
36
|
nv_t* const nva = reinterpret_cast<nv_t*>(start);
|
|
38
37
|
|
|
@@ -56,13 +55,14 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
|
|
|
56
55
|
return;
|
|
57
56
|
}
|
|
58
57
|
|
|
59
|
-
nva[n].flags = T::kNoneFlag;
|
|
60
58
|
nva[n].name = reinterpret_cast<uint8_t*>(p);
|
|
61
59
|
nva[n].namelen = strlen(p);
|
|
62
60
|
p += nva[n].namelen + 1;
|
|
63
61
|
nva[n].value = reinterpret_cast<uint8_t*>(p);
|
|
64
62
|
nva[n].valuelen = strlen(p);
|
|
65
63
|
p += nva[n].valuelen + 1;
|
|
64
|
+
nva[n].flags = *p;
|
|
65
|
+
p++;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -76,6 +76,14 @@ size_t GetServerMaxHeaderPairs(size_t max_header_pairs) {
|
|
|
76
76
|
return std::max(max_header_pairs, min_header_pairs);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
template <typename allocator_t>
|
|
80
|
+
std::string NgHeaderBase<allocator_t>::ToString() const {
|
|
81
|
+
std::string ret = name();
|
|
82
|
+
ret += " = ";
|
|
83
|
+
ret += value();
|
|
84
|
+
return ret;
|
|
85
|
+
}
|
|
86
|
+
|
|
79
87
|
template <typename T>
|
|
80
88
|
bool NgHeader<T>::IsZeroLength(
|
|
81
89
|
NgHeader<T>::rcbuf_t* name,
|
|
@@ -123,7 +131,8 @@ NgHeader<T>::NgHeader(
|
|
|
123
131
|
|
|
124
132
|
template <typename T>
|
|
125
133
|
NgHeader<T>::NgHeader(NgHeader<T>&& other) noexcept
|
|
126
|
-
:
|
|
134
|
+
: env_(other.env_),
|
|
135
|
+
name_(std::move(other.name_)),
|
|
127
136
|
value_(std::move(other.value_)),
|
|
128
137
|
token_(other.token_),
|
|
129
138
|
flags_(other.flags_) {
|
|
@@ -132,6 +141,12 @@ NgHeader<T>::NgHeader(NgHeader<T>&& other) noexcept
|
|
|
132
141
|
other.env_ = nullptr;
|
|
133
142
|
}
|
|
134
143
|
|
|
144
|
+
template <typename T>
|
|
145
|
+
void NgHeader<T>::MemoryInfo(MemoryTracker* tracker) const {
|
|
146
|
+
tracker->TrackField("name", name_);
|
|
147
|
+
tracker->TrackField("value", value_);
|
|
148
|
+
}
|
|
149
|
+
|
|
135
150
|
template <typename T>
|
|
136
151
|
v8::MaybeLocal<v8::String> NgHeader<T>::GetName(
|
|
137
152
|
NgHeader<T>::allocator_t* allocator) const {
|
|
@@ -143,7 +158,7 @@ v8::MaybeLocal<v8::String> NgHeader<T>::GetName(
|
|
|
143
158
|
// If header_name is not nullptr, then it is a known header with
|
|
144
159
|
// a statically defined name. We can safely internalize it here.
|
|
145
160
|
if (header_name != nullptr) {
|
|
146
|
-
auto& static_str_map = env_->isolate_data()->
|
|
161
|
+
auto& static_str_map = env_->isolate_data()->static_str_map;
|
|
147
162
|
v8::Eternal<v8::String> eternal = static_str_map[header_name];
|
|
148
163
|
if (eternal.IsEmpty()) {
|
|
149
164
|
v8::Local<v8::String> str = OneByteString(env_->isolate(), header_name);
|
|
@@ -176,6 +191,11 @@ size_t NgHeader<T>::length() const {
|
|
|
176
191
|
return name_.len() + value_.len();
|
|
177
192
|
}
|
|
178
193
|
|
|
194
|
+
template <typename T>
|
|
195
|
+
uint8_t NgHeader<T>::flags() const {
|
|
196
|
+
return flags_;
|
|
197
|
+
}
|
|
198
|
+
|
|
179
199
|
} // namespace node
|
|
180
200
|
|
|
181
201
|
#endif // SRC_NODE_HTTP_COMMON_INL_H_
|
|
@@ -196,7 +196,7 @@ enum http_status_codes {
|
|
|
196
196
|
// Unlike the HTTP/1 implementation, the HTTP/2 implementation is not limited
|
|
197
197
|
// to a fixed number of known supported HTTP methods. These constants, therefore
|
|
198
198
|
// are provided strictly as a convenience to users and are exposed via the
|
|
199
|
-
// require('http2').constants object.
|
|
199
|
+
// require('node:http2').constants object.
|
|
200
200
|
#define HTTP_KNOWN_METHODS(V) \
|
|
201
201
|
V(ACL, "ACL") \
|
|
202
202
|
V(BASELINE_CONTROL, "BASELINE-CONTROL") \
|
|
@@ -270,7 +270,7 @@ class NgHeaders {
|
|
|
270
270
|
MaybeStackBuffer<char, 3000> buf_;
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
-
// The ng libraries
|
|
273
|
+
// The ng libraries use nearly identical
|
|
274
274
|
// reference counted structures for retaining header name and value
|
|
275
275
|
// information in memory until the application is done with it.
|
|
276
276
|
// The NgRcBufPointer is an intelligent pointer capable of working
|
|
@@ -409,7 +409,7 @@ class NgRcBufPointer : public MemoryRetainer {
|
|
|
409
409
|
NgRcBufPointer<T> ptr) {
|
|
410
410
|
Environment* env = allocator->env();
|
|
411
411
|
if (ptr.IsStatic()) {
|
|
412
|
-
auto& static_str_map = env->isolate_data()->
|
|
412
|
+
auto& static_str_map = env->isolate_data()->static_str_map;
|
|
413
413
|
const char* header_name = reinterpret_cast<const char*>(ptr.data());
|
|
414
414
|
v8::Eternal<v8::String>& eternal = static_str_map[header_name];
|
|
415
415
|
if (eternal.IsEmpty()) {
|
|
@@ -453,6 +453,17 @@ class NgRcBufPointer : public MemoryRetainer {
|
|
|
453
453
|
bool internalizable_ = false;
|
|
454
454
|
};
|
|
455
455
|
|
|
456
|
+
template <typename allocator_t>
|
|
457
|
+
struct NgHeaderBase : public MemoryRetainer {
|
|
458
|
+
virtual v8::MaybeLocal<v8::String> GetName(allocator_t* allocator) const = 0;
|
|
459
|
+
virtual v8::MaybeLocal<v8::String> GetValue(allocator_t* allocator) const = 0;
|
|
460
|
+
virtual std::string name() const = 0;
|
|
461
|
+
virtual std::string value() const = 0;
|
|
462
|
+
virtual size_t length() const = 0;
|
|
463
|
+
virtual uint8_t flags() const = 0;
|
|
464
|
+
virtual std::string ToString() const;
|
|
465
|
+
};
|
|
466
|
+
|
|
456
467
|
// The ng libraries use nearly identical structs to represent
|
|
457
468
|
// received http headers. The NgHeader class wraps those in a
|
|
458
469
|
// consistent way and allows converting the name and value to
|
|
@@ -461,7 +472,7 @@ class NgRcBufPointer : public MemoryRetainer {
|
|
|
461
472
|
// memory tracking, and implementation of static utility functions.
|
|
462
473
|
// See Http2HeaderTraits in node_http2.h for an example.
|
|
463
474
|
template <typename T>
|
|
464
|
-
class NgHeader : public
|
|
475
|
+
class NgHeader final : public NgHeaderBase<typename T::allocator_t> {
|
|
465
476
|
public:
|
|
466
477
|
typedef typename T::rcbufferpointer_t rcbufferpointer_t;
|
|
467
478
|
typedef typename T::rcbufferpointer_t::rcbuf_t rcbuf_t;
|
|
@@ -487,28 +498,21 @@ class NgHeader : public MemoryRetainer {
|
|
|
487
498
|
// object to the v8 string. Once the v8 string is garbage collected,
|
|
488
499
|
// the reference counter will be decremented.
|
|
489
500
|
|
|
490
|
-
inline v8::MaybeLocal<v8::String> GetName(
|
|
491
|
-
|
|
501
|
+
inline v8::MaybeLocal<v8::String> GetName(
|
|
502
|
+
allocator_t* allocator) const override;
|
|
503
|
+
inline v8::MaybeLocal<v8::String> GetValue(
|
|
504
|
+
allocator_t* allocator) const override;
|
|
492
505
|
|
|
493
|
-
inline std::string name() const;
|
|
494
|
-
inline std::string value() const;
|
|
495
|
-
inline size_t length() const;
|
|
506
|
+
inline std::string name() const override;
|
|
507
|
+
inline std::string value() const override;
|
|
508
|
+
inline size_t length() const override;
|
|
509
|
+
inline uint8_t flags() const override;
|
|
496
510
|
|
|
497
|
-
void MemoryInfo(MemoryTracker* tracker) const override
|
|
498
|
-
tracker->TrackField("name", name_);
|
|
499
|
-
tracker->TrackField("value", value_);
|
|
500
|
-
}
|
|
511
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
501
512
|
|
|
502
513
|
SET_MEMORY_INFO_NAME(NgHeader)
|
|
503
514
|
SET_SELF_SIZE(NgHeader)
|
|
504
515
|
|
|
505
|
-
std::string ToString() const {
|
|
506
|
-
std::string ret = name();
|
|
507
|
-
ret += " = ";
|
|
508
|
-
ret += value();
|
|
509
|
-
return ret;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
516
|
private:
|
|
513
517
|
Environment* env_;
|
|
514
518
|
rcbufferpointer_t name_;
|
|
@@ -36,11 +36,12 @@
|
|
|
36
36
|
#include <string>
|
|
37
37
|
|
|
38
38
|
namespace node {
|
|
39
|
-
|
|
40
39
|
namespace i18n {
|
|
41
40
|
|
|
42
41
|
bool InitializeICUDirectory(const std::string& path);
|
|
43
42
|
|
|
43
|
+
void SetDefaultTimeZone(const char* tzid);
|
|
44
|
+
|
|
44
45
|
enum idna_mode {
|
|
45
46
|
// Default mode for maximum compatibility.
|
|
46
47
|
IDNA_DEFAULT,
|
|
@@ -39,11 +39,6 @@
|
|
|
39
39
|
#include <string>
|
|
40
40
|
#include <vector>
|
|
41
41
|
|
|
42
|
-
// Custom constants used by both node_constants.cc and node_zlib.cc
|
|
43
|
-
#define Z_MIN_WINDOWBITS 8
|
|
44
|
-
#define Z_MAX_WINDOWBITS 15
|
|
45
|
-
#define Z_DEFAULT_WINDOWBITS 15
|
|
46
|
-
|
|
47
42
|
struct sockaddr;
|
|
48
43
|
|
|
49
44
|
namespace node {
|
|
@@ -55,7 +50,6 @@ class NativeModuleLoader;
|
|
|
55
50
|
namespace per_process {
|
|
56
51
|
extern Mutex env_var_mutex;
|
|
57
52
|
extern uint64_t node_start_time;
|
|
58
|
-
extern bool v8_is_profiling;
|
|
59
53
|
} // namespace per_process
|
|
60
54
|
|
|
61
55
|
// Forward declaration
|
|
@@ -64,7 +58,7 @@ class Environment;
|
|
|
64
58
|
// Convert a struct sockaddr to a { address: '1.2.3.4', port: 1234 } JS object.
|
|
65
59
|
// Sets address and port properties on the info object and returns it.
|
|
66
60
|
// If |info| is omitted, a new object is returned.
|
|
67
|
-
v8::
|
|
61
|
+
v8::MaybeLocal<v8::Object> AddressToJS(
|
|
68
62
|
Environment* env,
|
|
69
63
|
const sockaddr* addr,
|
|
70
64
|
v8::Local<v8::Object> info = v8::Local<v8::Object>());
|
|
@@ -91,22 +85,15 @@ void PrintCaughtException(v8::Isolate* isolate,
|
|
|
91
85
|
const v8::TryCatch& try_catch);
|
|
92
86
|
|
|
93
87
|
void ResetStdio(); // Safe to call more than once and from signal handlers.
|
|
94
|
-
void SignalExit(int signo);
|
|
95
88
|
#ifdef __POSIX__
|
|
96
|
-
void
|
|
97
|
-
void (*handler)(int signal),
|
|
98
|
-
bool reset_handler = false);
|
|
89
|
+
void SignalExit(int signal, siginfo_t* info, void* ucontext);
|
|
99
90
|
#endif
|
|
100
91
|
|
|
101
92
|
std::string GetProcessTitle(const char* default_title);
|
|
102
93
|
std::string GetHumanReadableProcessName();
|
|
103
94
|
|
|
104
|
-
|
|
105
|
-
bool InitializePrimordials(v8::Local<v8::Context> context);
|
|
106
|
-
|
|
107
|
-
namespace task_queue {
|
|
108
|
-
void PromiseRejectCallback(v8::PromiseRejectMessage message);
|
|
109
|
-
} // namespace task_queue
|
|
95
|
+
v8::Maybe<bool> InitializeContextRuntime(v8::Local<v8::Context> context);
|
|
96
|
+
v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
|
|
110
97
|
|
|
111
98
|
class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
|
112
99
|
public:
|
|
@@ -115,7 +102,7 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
|
|
|
115
102
|
void* Allocate(size_t size) override; // Defined in src/node.cc
|
|
116
103
|
void* AllocateUninitialized(size_t size) override;
|
|
117
104
|
void Free(void* data, size_t size) override;
|
|
118
|
-
|
|
105
|
+
void* Reallocate(void* data, size_t old_size, size_t size) override;
|
|
119
106
|
virtual void RegisterPointer(void* data, size_t size) {
|
|
120
107
|
total_mem_usage_.fetch_add(size, std::memory_order_relaxed);
|
|
121
108
|
}
|
|
@@ -163,8 +150,7 @@ v8::MaybeLocal<v8::Object> New(Environment* env,
|
|
|
163
150
|
// ArrayBuffer::Allocator().
|
|
164
151
|
v8::MaybeLocal<v8::Object> New(Environment* env,
|
|
165
152
|
char* data,
|
|
166
|
-
size_t length
|
|
167
|
-
bool uses_malloc);
|
|
153
|
+
size_t length);
|
|
168
154
|
// Creates a Buffer instance over an existing ArrayBuffer.
|
|
169
155
|
v8::MaybeLocal<v8::Uint8Array> New(Environment* env,
|
|
170
156
|
v8::Local<v8::ArrayBuffer> ab,
|
|
@@ -186,7 +172,7 @@ static v8::MaybeLocal<v8::Object> New(Environment* env,
|
|
|
186
172
|
const size_t len_in_bytes = buf->length() * sizeof(buf->out()[0]);
|
|
187
173
|
|
|
188
174
|
if (buf->IsAllocated())
|
|
189
|
-
ret = New(env, src, len_in_bytes
|
|
175
|
+
ret = New(env, src, len_in_bytes);
|
|
190
176
|
else if (!buf->IsInvalidated())
|
|
191
177
|
ret = Copy(env, src, len_in_bytes);
|
|
192
178
|
|
|
@@ -209,6 +195,12 @@ v8::MaybeLocal<v8::Value> InternalMakeCallback(
|
|
|
209
195
|
v8::Local<v8::Value> argv[],
|
|
210
196
|
async_context asyncContext);
|
|
211
197
|
|
|
198
|
+
v8::MaybeLocal<v8::Value> MakeSyncCallback(v8::Isolate* isolate,
|
|
199
|
+
v8::Local<v8::Object> recv,
|
|
200
|
+
v8::Local<v8::Function> callback,
|
|
201
|
+
int argc,
|
|
202
|
+
v8::Local<v8::Value> argv[]);
|
|
203
|
+
|
|
212
204
|
class InternalCallbackScope {
|
|
213
205
|
public:
|
|
214
206
|
enum Flags {
|
|
@@ -291,7 +283,7 @@ class ThreadPoolWork {
|
|
|
291
283
|
|
|
292
284
|
#if defined(__POSIX__) && !defined(__ANDROID__) && !defined(__CloudABI__)
|
|
293
285
|
#define NODE_IMPLEMENTS_POSIX_CREDENTIALS 1
|
|
294
|
-
#endif // __POSIX__ && !defined(__ANDROID__) && !defined(__CloudABI__)
|
|
286
|
+
#endif // defined(__POSIX__) && !defined(__ANDROID__) && !defined(__CloudABI__)
|
|
295
287
|
|
|
296
288
|
namespace credentials {
|
|
297
289
|
bool SafeGetenv(const char* key, std::string* text, Environment* env = nullptr);
|
|
@@ -301,8 +293,10 @@ void DefineZlibConstants(v8::Local<v8::Object> target);
|
|
|
301
293
|
v8::Isolate* NewIsolate(v8::Isolate::CreateParams* params,
|
|
302
294
|
uv_loop_t* event_loop,
|
|
303
295
|
MultiIsolatePlatform* platform);
|
|
296
|
+
// This overload automatically picks the right 'main_script_id' if no callback
|
|
297
|
+
// was provided by the embedder.
|
|
304
298
|
v8::MaybeLocal<v8::Value> StartExecution(Environment* env,
|
|
305
|
-
|
|
299
|
+
StartExecutionCallback cb = nullptr);
|
|
306
300
|
v8::MaybeLocal<v8::Object> GetPerContextExports(v8::Local<v8::Context> context);
|
|
307
301
|
v8::MaybeLocal<v8::Value> ExecuteBootstrapper(
|
|
308
302
|
Environment* env,
|
|
@@ -317,8 +311,23 @@ struct InitializationResult {
|
|
|
317
311
|
std::vector<std::string> exec_args;
|
|
318
312
|
bool early_return = false;
|
|
319
313
|
};
|
|
320
|
-
|
|
321
|
-
|
|
314
|
+
|
|
315
|
+
enum InitializationSettingsFlags : uint64_t {
|
|
316
|
+
kDefaultInitialization = 1 << 0,
|
|
317
|
+
kInitializeV8 = 1 << 1,
|
|
318
|
+
kRunPlatformInit = 1 << 2,
|
|
319
|
+
kInitOpenSSL = 1 << 3
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
// TODO(codebytere): eventually document and expose to embedders.
|
|
323
|
+
InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(int argc,
|
|
324
|
+
char** argv);
|
|
325
|
+
InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(
|
|
326
|
+
int argc,
|
|
327
|
+
char** argv,
|
|
328
|
+
InitializationSettingsFlags flags,
|
|
329
|
+
ProcessFlags::Flags process_flags = ProcessFlags::kNoFlags);
|
|
330
|
+
void NODE_EXTERN_PRIVATE TearDownOncePerProcess();
|
|
322
331
|
void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s);
|
|
323
332
|
void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s);
|
|
324
333
|
void SetIsolateCreateParamsForNode(v8::Isolate::CreateParams* params);
|
|
@@ -370,22 +379,9 @@ class DiagnosticFilename {
|
|
|
370
379
|
std::string filename_;
|
|
371
380
|
};
|
|
372
381
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
const char* name,
|
|
377
|
-
void* id) : category_(category), name_(name), id_(id) {
|
|
378
|
-
TRACE_EVENT_NESTABLE_ASYNC_BEGIN0(category_, name_, id_);
|
|
379
|
-
}
|
|
380
|
-
~TraceEventScope() {
|
|
381
|
-
TRACE_EVENT_NESTABLE_ASYNC_END0(category_, name_, id_);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
private:
|
|
385
|
-
const char* category_;
|
|
386
|
-
const char* name_;
|
|
387
|
-
void* id_;
|
|
388
|
-
};
|
|
382
|
+
namespace heap {
|
|
383
|
+
v8::Maybe<void> WriteSnapshot(Environment* env, const char* filename);
|
|
384
|
+
}
|
|
389
385
|
|
|
390
386
|
namespace heap {
|
|
391
387
|
|
|
@@ -401,6 +397,8 @@ namespace fs {
|
|
|
401
397
|
std::string Basename(const std::string& str, const std::string& extension);
|
|
402
398
|
} // namespace fs
|
|
403
399
|
|
|
400
|
+
node_module napi_module_to_node_module(const napi_module* mod);
|
|
401
|
+
|
|
404
402
|
} // namespace node
|
|
405
403
|
|
|
406
404
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
|
|
14
14
|
namespace node {
|
|
15
15
|
|
|
16
|
+
class ExternalReferenceRegistry;
|
|
17
|
+
struct EnvSerializeInfo;
|
|
18
|
+
struct SnapshotData;
|
|
19
|
+
|
|
16
20
|
// TODO(joyeecheung): align this with the Worker/WorkerThreadData class.
|
|
17
21
|
// We may be able to create an abstract class to reuse some of the routines.
|
|
18
22
|
class NodeMainInstance {
|
|
@@ -45,30 +49,22 @@ class NodeMainInstance {
|
|
|
45
49
|
void Dispose();
|
|
46
50
|
|
|
47
51
|
// Create a main instance that owns the isolate
|
|
48
|
-
NodeMainInstance(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const std::vector<std::string>& exec_args,
|
|
54
|
-
const std::vector<size_t>* per_isolate_data_indexes = nullptr);
|
|
52
|
+
NodeMainInstance(const SnapshotData* snapshot_data,
|
|
53
|
+
uv_loop_t* event_loop,
|
|
54
|
+
MultiIsolatePlatform* platform,
|
|
55
|
+
const std::vector<std::string>& args,
|
|
56
|
+
const std::vector<std::string>& exec_args);
|
|
55
57
|
~NodeMainInstance();
|
|
56
58
|
|
|
57
59
|
// Start running the Node.js instances, return the exit code when finished.
|
|
58
60
|
int Run();
|
|
61
|
+
void Run(int* exit_code, Environment* env);
|
|
59
62
|
|
|
60
63
|
IsolateData* isolate_data() { return isolate_data_.get(); }
|
|
61
64
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
std::unique_ptr<Environment> CreateMainEnvironment(int* exit_code);
|
|
65
|
-
|
|
66
|
-
// If nullptr is returned, the binary is not built with embedded
|
|
67
|
-
// snapshot.
|
|
68
|
-
static const std::vector<size_t>* GetIsolateDataIndexes();
|
|
69
|
-
static v8::StartupData* GetEmbeddedSnapshotBlob();
|
|
65
|
+
DeleteFnPtr<Environment, FreeEnvironment> CreateMainEnvironment(
|
|
66
|
+
int* exit_code);
|
|
70
67
|
|
|
71
|
-
static const size_t kNodeContextIndex = 0;
|
|
72
68
|
NodeMainInstance(const NodeMainInstance&) = delete;
|
|
73
69
|
NodeMainInstance& operator=(const NodeMainInstance&) = delete;
|
|
74
70
|
NodeMainInstance(NodeMainInstance&&) = delete;
|
|
@@ -81,14 +77,15 @@ class NodeMainInstance {
|
|
|
81
77
|
const std::vector<std::string>& args,
|
|
82
78
|
const std::vector<std::string>& exec_args);
|
|
83
79
|
|
|
80
|
+
static std::unique_ptr<ExternalReferenceRegistry> registry_;
|
|
84
81
|
std::vector<std::string> args_;
|
|
85
82
|
std::vector<std::string> exec_args_;
|
|
86
83
|
std::unique_ptr<ArrayBufferAllocator> array_buffer_allocator_;
|
|
87
84
|
v8::Isolate* isolate_;
|
|
88
85
|
MultiIsolatePlatform* platform_;
|
|
89
86
|
std::unique_ptr<IsolateData> isolate_data_;
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
std::unique_ptr<v8::Isolate::CreateParams> isolate_params_;
|
|
88
|
+
const SnapshotData* snapshot_data_ = nullptr;
|
|
92
89
|
};
|
|
93
90
|
|
|
94
91
|
} // namespace node
|
|
File without changes
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
namespace node {
|
|
9
9
|
namespace mem {
|
|
10
10
|
|
|
11
|
-
//
|
|
11
|
+
// nghttp2 allows custom allocators that
|
|
12
12
|
// follow exactly the same structure and behavior, but
|
|
13
13
|
// use different struct names. To allow for code re-use,
|
|
14
14
|
// the NgLibMemoryManager template class can be used for both.
|