@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
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "node.h"
|
|
4
|
-
#include "node_buffer.h"
|
|
5
|
-
#include "uv.h"
|
|
6
|
-
#include "util.h"
|
|
7
|
-
|
|
8
|
-
#ifndef _WIN32
|
|
9
|
-
#include <sys/types.h>
|
|
10
|
-
#include <unistd.h>
|
|
11
|
-
#endif
|
|
12
|
-
|
|
13
|
-
#include <iomanip>
|
|
14
|
-
|
|
15
|
-
namespace report {
|
|
16
|
-
|
|
17
|
-
// Function declarations - functions in src/node_report.cc
|
|
18
|
-
std::string TriggerNodeReport(v8::Isolate* isolate,
|
|
19
|
-
node::Environment* env,
|
|
20
|
-
const char* message,
|
|
21
|
-
const char* trigger,
|
|
22
|
-
const std::string& name,
|
|
23
|
-
v8::Local<v8::String> stackstr);
|
|
24
|
-
void GetNodeReport(v8::Isolate* isolate,
|
|
25
|
-
node::Environment* env,
|
|
26
|
-
const char* message,
|
|
27
|
-
const char* trigger,
|
|
28
|
-
v8::Local<v8::String> stackstr,
|
|
29
|
-
std::ostream& out);
|
|
30
|
-
|
|
31
|
-
// Function declarations - utility functions in src/node_report_utils.cc
|
|
32
|
-
void WalkHandle(uv_handle_t* h, void* arg);
|
|
33
|
-
|
|
34
|
-
template <typename T>
|
|
35
|
-
std::string ValueToHexString(T value) {
|
|
36
|
-
std::stringstream hex;
|
|
37
|
-
|
|
38
|
-
hex << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex <<
|
|
39
|
-
value;
|
|
40
|
-
return hex.str();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Function declarations - export functions in src/node_report_module.cc
|
|
44
|
-
void WriteReport(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
45
|
-
void GetReport(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
46
|
-
|
|
47
|
-
} // namespace report
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_REVERT_H_
|
|
2
|
-
#define SRC_NODE_REVERT_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "node.h"
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Note that it is expected for this list to vary across specific LTS and
|
|
10
|
-
* Stable versions! Only CVE's whose fixes require *breaking* changes within
|
|
11
|
-
* a given LTS or Stable may be added to this list, and only with TSC
|
|
12
|
-
* consensus.
|
|
13
|
-
*
|
|
14
|
-
* For *master* this list should always be empty!
|
|
15
|
-
**/
|
|
16
|
-
namespace node {
|
|
17
|
-
|
|
18
|
-
#define SECURITY_REVERSIONS(XX) \
|
|
19
|
-
XX(CVE_2019_9512, "CVE-2019-9512", "HTTP/2 Ping/Settings Flood") \
|
|
20
|
-
XX(CVE_2019_9514, "CVE-2019-9514", "HTTP/2 Reset Flood") \
|
|
21
|
-
XX(CVE_2019_9516, "CVE-2019-9516", "HTTP/2 0-Length Headers Leak") \
|
|
22
|
-
XX(CVE_2019_9518, "CVE-2019-9518", "HTTP/2 Empty DATA Frame Flooding") \
|
|
23
|
-
// XX(CVE_2016_PEND, "CVE-2016-PEND", "Vulnerability Title")
|
|
24
|
-
// TODO(addaleax): Remove all of the above before Node.js 13 as the comment
|
|
25
|
-
// at the start of the file indicates.
|
|
26
|
-
|
|
27
|
-
enum reversion {
|
|
28
|
-
#define V(code, ...) SECURITY_REVERT_##code,
|
|
29
|
-
SECURITY_REVERSIONS(V)
|
|
30
|
-
#undef V
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
namespace per_process {
|
|
34
|
-
extern unsigned int reverted_cve;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
inline const char* RevertMessage(const reversion cve) {
|
|
38
|
-
#define V(code, label, msg) case SECURITY_REVERT_##code: return label ": " msg;
|
|
39
|
-
switch (cve) {
|
|
40
|
-
SECURITY_REVERSIONS(V)
|
|
41
|
-
default:
|
|
42
|
-
return "Unknown";
|
|
43
|
-
}
|
|
44
|
-
#undef V
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
inline void Revert(const reversion cve) {
|
|
48
|
-
per_process::reverted_cve |= 1 << cve;
|
|
49
|
-
printf("SECURITY WARNING: Reverting %s\n", RevertMessage(cve));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
inline void Revert(const char* cve, std::string* error) {
|
|
53
|
-
#define V(code, label, _) \
|
|
54
|
-
if (strcmp(cve, label) == 0) return Revert(SECURITY_REVERT_##code);
|
|
55
|
-
SECURITY_REVERSIONS(V)
|
|
56
|
-
#undef V
|
|
57
|
-
*error = "Error: Attempt to revert an unknown CVE [";
|
|
58
|
-
*error += cve;
|
|
59
|
-
*error += ']';
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
inline bool IsReverted(const reversion cve) {
|
|
63
|
-
return per_process::reverted_cve & (1 << cve);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
inline bool IsReverted(const char* cve) {
|
|
67
|
-
#define V(code, label, _) \
|
|
68
|
-
if (strcmp(cve, label) == 0) return IsReverted(SECURITY_REVERT_##code);
|
|
69
|
-
SECURITY_REVERSIONS(V)
|
|
70
|
-
return false;
|
|
71
|
-
#undef V
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
} // namespace node
|
|
75
|
-
|
|
76
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
77
|
-
|
|
78
|
-
#endif // SRC_NODE_REVERT_H_
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_SOCKADDR_H_
|
|
2
|
-
#define SRC_NODE_SOCKADDR_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "memory_tracker.h"
|
|
7
|
-
#include "node.h"
|
|
8
|
-
#include "uv.h"
|
|
9
|
-
#include "v8.h"
|
|
10
|
-
|
|
11
|
-
#include <string>
|
|
12
|
-
#include <unordered_map>
|
|
13
|
-
|
|
14
|
-
namespace node {
|
|
15
|
-
|
|
16
|
-
class Environment;
|
|
17
|
-
|
|
18
|
-
class SocketAddress : public MemoryRetainer {
|
|
19
|
-
public:
|
|
20
|
-
struct Hash {
|
|
21
|
-
size_t operator()(const SocketAddress& addr) const;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
inline bool operator==(const SocketAddress& other) const;
|
|
25
|
-
inline bool operator!=(const SocketAddress& other) const;
|
|
26
|
-
|
|
27
|
-
inline static bool is_numeric_host(const char* hostname);
|
|
28
|
-
inline static bool is_numeric_host(const char* hostname, int family);
|
|
29
|
-
|
|
30
|
-
// Returns true if converting {family, host, port} to *addr succeeded.
|
|
31
|
-
static bool ToSockAddr(
|
|
32
|
-
int32_t family,
|
|
33
|
-
const char* host,
|
|
34
|
-
uint32_t port,
|
|
35
|
-
sockaddr_storage* addr);
|
|
36
|
-
|
|
37
|
-
// Returns true if converting {family, host, port} to *addr succeeded.
|
|
38
|
-
static bool New(
|
|
39
|
-
int32_t family,
|
|
40
|
-
const char* host,
|
|
41
|
-
uint32_t port,
|
|
42
|
-
SocketAddress* addr);
|
|
43
|
-
|
|
44
|
-
static bool New(
|
|
45
|
-
const char* host,
|
|
46
|
-
uint32_t port,
|
|
47
|
-
SocketAddress* addr);
|
|
48
|
-
|
|
49
|
-
// Returns the port for an IPv4 or IPv6 address.
|
|
50
|
-
inline static int GetPort(const sockaddr* addr);
|
|
51
|
-
inline static int GetPort(const sockaddr_storage* addr);
|
|
52
|
-
|
|
53
|
-
// Returns the numeric host as a string for an IPv4 or IPv6 address.
|
|
54
|
-
inline static std::string GetAddress(const sockaddr* addr);
|
|
55
|
-
inline static std::string GetAddress(const sockaddr_storage* addr);
|
|
56
|
-
|
|
57
|
-
// Returns the struct length for an IPv4, IPv6 or UNIX domain.
|
|
58
|
-
inline static size_t GetLength(const sockaddr* addr);
|
|
59
|
-
inline static size_t GetLength(const sockaddr_storage* addr);
|
|
60
|
-
|
|
61
|
-
SocketAddress() = default;
|
|
62
|
-
|
|
63
|
-
inline explicit SocketAddress(const sockaddr* addr);
|
|
64
|
-
inline SocketAddress(const SocketAddress& addr);
|
|
65
|
-
inline SocketAddress& operator=(const sockaddr* other);
|
|
66
|
-
inline SocketAddress& operator=(const SocketAddress& other);
|
|
67
|
-
|
|
68
|
-
inline const sockaddr& operator*() const;
|
|
69
|
-
inline const sockaddr* operator->() const;
|
|
70
|
-
|
|
71
|
-
inline const sockaddr* data() const;
|
|
72
|
-
inline const uint8_t* raw() const;
|
|
73
|
-
inline sockaddr* storage();
|
|
74
|
-
inline size_t length() const;
|
|
75
|
-
|
|
76
|
-
inline int family() const;
|
|
77
|
-
inline std::string address() const;
|
|
78
|
-
inline int port() const;
|
|
79
|
-
|
|
80
|
-
// If the SocketAddress is an IPv6 address, returns the
|
|
81
|
-
// current value of the IPv6 flow label, if set. Otherwise
|
|
82
|
-
// returns 0.
|
|
83
|
-
inline uint32_t flow_label() const;
|
|
84
|
-
|
|
85
|
-
// If the SocketAddress is an IPv6 address, sets the
|
|
86
|
-
// current value of the IPv6 flow label. If not an
|
|
87
|
-
// IPv6 address, set_flow_label is a non-op. It
|
|
88
|
-
// is important to note that the flow label,
|
|
89
|
-
// while represented as an uint32_t, the flow
|
|
90
|
-
// label is strictly limited to 20 bits, and
|
|
91
|
-
// this will assert if any value larger than
|
|
92
|
-
// 20-bits is specified.
|
|
93
|
-
inline void set_flow_label(uint32_t label = 0);
|
|
94
|
-
|
|
95
|
-
inline void Update(uint8_t* data, size_t len);
|
|
96
|
-
|
|
97
|
-
static SocketAddress FromSockName(const uv_udp_t& handle);
|
|
98
|
-
static SocketAddress FromSockName(const uv_tcp_t& handle);
|
|
99
|
-
static SocketAddress FromPeerName(const uv_udp_t& handle);
|
|
100
|
-
static SocketAddress FromPeerName(const uv_tcp_t& handle);
|
|
101
|
-
|
|
102
|
-
inline v8::Local<v8::Object> ToJS(
|
|
103
|
-
Environment* env,
|
|
104
|
-
v8::Local<v8::Object> obj = v8::Local<v8::Object>()) const;
|
|
105
|
-
|
|
106
|
-
inline std::string ToString() const;
|
|
107
|
-
|
|
108
|
-
SET_NO_MEMORY_INFO()
|
|
109
|
-
SET_MEMORY_INFO_NAME(SocketAddress)
|
|
110
|
-
SET_SELF_SIZE(SocketAddress)
|
|
111
|
-
|
|
112
|
-
template <typename T>
|
|
113
|
-
using Map = std::unordered_map<SocketAddress, T, Hash>;
|
|
114
|
-
|
|
115
|
-
private:
|
|
116
|
-
sockaddr_storage address_;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
} // namespace node
|
|
120
|
-
|
|
121
|
-
#endif // NOE_WANT_INTERNALS
|
|
122
|
-
|
|
123
|
-
#endif // SRC_NODE_SOCKADDR_H_
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_URL_H_
|
|
2
|
-
#define SRC_NODE_URL_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "node.h"
|
|
7
|
-
|
|
8
|
-
#include <string>
|
|
9
|
-
|
|
10
|
-
namespace node {
|
|
11
|
-
namespace url {
|
|
12
|
-
|
|
13
|
-
#define PARSESTATES(XX) \
|
|
14
|
-
XX(kSchemeStart) \
|
|
15
|
-
XX(kScheme) \
|
|
16
|
-
XX(kNoScheme) \
|
|
17
|
-
XX(kSpecialRelativeOrAuthority) \
|
|
18
|
-
XX(kPathOrAuthority) \
|
|
19
|
-
XX(kRelative) \
|
|
20
|
-
XX(kRelativeSlash) \
|
|
21
|
-
XX(kSpecialAuthoritySlashes) \
|
|
22
|
-
XX(kSpecialAuthorityIgnoreSlashes) \
|
|
23
|
-
XX(kAuthority) \
|
|
24
|
-
XX(kHost) \
|
|
25
|
-
XX(kHostname) \
|
|
26
|
-
XX(kPort) \
|
|
27
|
-
XX(kFile) \
|
|
28
|
-
XX(kFileSlash) \
|
|
29
|
-
XX(kFileHost) \
|
|
30
|
-
XX(kPathStart) \
|
|
31
|
-
XX(kPath) \
|
|
32
|
-
XX(kCannotBeBase) \
|
|
33
|
-
XX(kQuery) \
|
|
34
|
-
XX(kFragment)
|
|
35
|
-
|
|
36
|
-
#define FLAGS(XX) \
|
|
37
|
-
XX(URL_FLAGS_NONE, 0) \
|
|
38
|
-
XX(URL_FLAGS_FAILED, 0x01) \
|
|
39
|
-
XX(URL_FLAGS_CANNOT_BE_BASE, 0x02) \
|
|
40
|
-
XX(URL_FLAGS_INVALID_PARSE_STATE, 0x04) \
|
|
41
|
-
XX(URL_FLAGS_TERMINATED, 0x08) \
|
|
42
|
-
XX(URL_FLAGS_SPECIAL, 0x10) \
|
|
43
|
-
XX(URL_FLAGS_HAS_USERNAME, 0x20) \
|
|
44
|
-
XX(URL_FLAGS_HAS_PASSWORD, 0x40) \
|
|
45
|
-
XX(URL_FLAGS_HAS_HOST, 0x80) \
|
|
46
|
-
XX(URL_FLAGS_HAS_PATH, 0x100) \
|
|
47
|
-
XX(URL_FLAGS_HAS_QUERY, 0x200) \
|
|
48
|
-
XX(URL_FLAGS_HAS_FRAGMENT, 0x400) \
|
|
49
|
-
XX(URL_FLAGS_IS_DEFAULT_SCHEME_PORT, 0x800) \
|
|
50
|
-
|
|
51
|
-
enum url_parse_state {
|
|
52
|
-
kUnknownState = -1,
|
|
53
|
-
#define XX(name) name,
|
|
54
|
-
PARSESTATES(XX)
|
|
55
|
-
#undef XX
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
enum url_flags {
|
|
59
|
-
#define XX(name, val) name = val,
|
|
60
|
-
FLAGS(XX)
|
|
61
|
-
#undef XX
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
struct url_data {
|
|
65
|
-
int32_t flags = URL_FLAGS_NONE;
|
|
66
|
-
int port = -1;
|
|
67
|
-
std::string scheme;
|
|
68
|
-
std::string username;
|
|
69
|
-
std::string password;
|
|
70
|
-
std::string host;
|
|
71
|
-
std::string query;
|
|
72
|
-
std::string fragment;
|
|
73
|
-
std::vector<std::string> path;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
class URL {
|
|
77
|
-
public:
|
|
78
|
-
static void Parse(const char* input,
|
|
79
|
-
size_t len,
|
|
80
|
-
enum url_parse_state state_override,
|
|
81
|
-
struct url_data* url,
|
|
82
|
-
bool has_url,
|
|
83
|
-
const struct url_data* base,
|
|
84
|
-
bool has_base);
|
|
85
|
-
|
|
86
|
-
URL(const char* input, const size_t len) {
|
|
87
|
-
Parse(input, len, kUnknownState, &context_, false, nullptr, false);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
URL(const char* input, const size_t len, const URL* base) {
|
|
91
|
-
if (base != nullptr)
|
|
92
|
-
Parse(input, len, kUnknownState,
|
|
93
|
-
&context_, false,
|
|
94
|
-
&(base->context_), true);
|
|
95
|
-
else
|
|
96
|
-
Parse(input, len, kUnknownState, &context_, false, nullptr, false);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
URL(const char* input, const size_t len,
|
|
100
|
-
const char* base, const size_t baselen) {
|
|
101
|
-
if (base != nullptr && baselen > 0) {
|
|
102
|
-
URL _base(base, baselen);
|
|
103
|
-
Parse(input, len, kUnknownState,
|
|
104
|
-
&context_, false,
|
|
105
|
-
&(_base.context_), true);
|
|
106
|
-
} else {
|
|
107
|
-
Parse(input, len, kUnknownState, &context_, false, nullptr, false);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
explicit URL(const std::string& input) :
|
|
112
|
-
URL(input.c_str(), input.length()) {}
|
|
113
|
-
|
|
114
|
-
URL(const std::string& input, const URL* base) :
|
|
115
|
-
URL(input.c_str(), input.length(), base) {}
|
|
116
|
-
|
|
117
|
-
URL(const std::string& input, const URL& base) :
|
|
118
|
-
URL(input.c_str(), input.length(), &base) {}
|
|
119
|
-
|
|
120
|
-
URL(const std::string& input, const std::string& base) :
|
|
121
|
-
URL(input.c_str(), input.length(), base.c_str(), base.length()) {}
|
|
122
|
-
|
|
123
|
-
int32_t flags() const {
|
|
124
|
-
return context_.flags;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
int port() const {
|
|
128
|
-
return context_.port;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
const std::string& protocol() const {
|
|
132
|
-
return context_.scheme;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const std::string& username() const {
|
|
136
|
-
return context_.username;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const std::string& password() const {
|
|
140
|
-
return context_.password;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
const std::string& host() const {
|
|
144
|
-
return context_.host;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const std::string& query() const {
|
|
148
|
-
return context_.query;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const std::string& fragment() const {
|
|
152
|
-
return context_.fragment;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
std::string path() const {
|
|
156
|
-
std::string ret;
|
|
157
|
-
for (const std::string& element : context_.path) {
|
|
158
|
-
ret += '/' + element;
|
|
159
|
-
}
|
|
160
|
-
return ret;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Get the path of the file: URL in a format consumable by native file system
|
|
164
|
-
// APIs. Returns an empty string if something went wrong.
|
|
165
|
-
std::string ToFilePath() const;
|
|
166
|
-
// Get the file URL from native file system path.
|
|
167
|
-
static URL FromFilePath(const std::string& file_path);
|
|
168
|
-
|
|
169
|
-
v8::MaybeLocal<v8::Value> ToObject(Environment* env) const;
|
|
170
|
-
|
|
171
|
-
URL(const URL&) = default;
|
|
172
|
-
URL& operator=(const URL&) = default;
|
|
173
|
-
URL(URL&&) = default;
|
|
174
|
-
URL& operator=(URL&&) = default;
|
|
175
|
-
|
|
176
|
-
URL() : URL("") {}
|
|
177
|
-
|
|
178
|
-
private:
|
|
179
|
-
struct url_data context_;
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
} // namespace url
|
|
183
|
-
|
|
184
|
-
} // namespace node
|
|
185
|
-
|
|
186
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
187
|
-
|
|
188
|
-
#endif // SRC_NODE_URL_H_
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
-
// copy of this software and associated documentation files (the
|
|
5
|
-
// "Software"), to deal in the Software without restriction, including
|
|
6
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
-
// following conditions:
|
|
10
|
-
//
|
|
11
|
-
// The above copyright notice and this permission notice shall be included
|
|
12
|
-
// in all copies or substantial portions of the Software.
|
|
13
|
-
//
|
|
14
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
#ifndef SRC_NODE_VERSION_H_
|
|
23
|
-
#define SRC_NODE_VERSION_H_
|
|
24
|
-
|
|
25
|
-
#define NODE_MAJOR_VERSION 12
|
|
26
|
-
#define NODE_MINOR_VERSION 18
|
|
27
|
-
#define NODE_PATCH_VERSION 2
|
|
28
|
-
|
|
29
|
-
#define NODE_VERSION_IS_LTS 1
|
|
30
|
-
#define NODE_VERSION_LTS_CODENAME "Erbium"
|
|
31
|
-
|
|
32
|
-
#define NODE_VERSION_IS_RELEASE 1
|
|
33
|
-
|
|
34
|
-
#ifndef NODE_STRINGIFY
|
|
35
|
-
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
|
|
36
|
-
#define NODE_STRINGIFY_HELPER(n) #n
|
|
37
|
-
#endif
|
|
38
|
-
|
|
39
|
-
#ifndef NODE_RELEASE
|
|
40
|
-
#define NODE_RELEASE "node"
|
|
41
|
-
#endif
|
|
42
|
-
|
|
43
|
-
#ifndef NODE_TAG
|
|
44
|
-
# if NODE_VERSION_IS_RELEASE
|
|
45
|
-
# define NODE_TAG ""
|
|
46
|
-
# else
|
|
47
|
-
# define NODE_TAG "-pre"
|
|
48
|
-
# endif
|
|
49
|
-
#else
|
|
50
|
-
// NODE_TAG is passed without quotes when rc.exe is run from msbuild
|
|
51
|
-
# define NODE_EXE_VERSION NODE_STRINGIFY(NODE_MAJOR_VERSION) "." \
|
|
52
|
-
NODE_STRINGIFY(NODE_MINOR_VERSION) "." \
|
|
53
|
-
NODE_STRINGIFY(NODE_PATCH_VERSION) \
|
|
54
|
-
NODE_STRINGIFY(NODE_TAG)
|
|
55
|
-
#endif
|
|
56
|
-
|
|
57
|
-
# define NODE_VERSION_STRING NODE_STRINGIFY(NODE_MAJOR_VERSION) "." \
|
|
58
|
-
NODE_STRINGIFY(NODE_MINOR_VERSION) "." \
|
|
59
|
-
NODE_STRINGIFY(NODE_PATCH_VERSION) \
|
|
60
|
-
NODE_TAG
|
|
61
|
-
#ifndef NODE_EXE_VERSION
|
|
62
|
-
# define NODE_EXE_VERSION NODE_VERSION_STRING
|
|
63
|
-
#endif
|
|
64
|
-
|
|
65
|
-
#define NODE_VERSION "v" NODE_VERSION_STRING
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
#define NODE_VERSION_AT_LEAST(major, minor, patch) \
|
|
69
|
-
(( (major) < NODE_MAJOR_VERSION) \
|
|
70
|
-
|| ((major) == NODE_MAJOR_VERSION && (minor) < NODE_MINOR_VERSION) \
|
|
71
|
-
|| ((major) == NODE_MAJOR_VERSION && \
|
|
72
|
-
(minor) == NODE_MINOR_VERSION && (patch) <= NODE_PATCH_VERSION))
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Node.js will refuse to load modules that weren't compiled against its own
|
|
76
|
-
* module ABI number, exposed as the process.versions.modules property.
|
|
77
|
-
*
|
|
78
|
-
* Node.js will refuse to load modules with a non-matching ABI version. The
|
|
79
|
-
* version number here should be changed whenever an ABI-incompatible API change
|
|
80
|
-
* is made in the C++ side, including in V8 or other dependencies.
|
|
81
|
-
*
|
|
82
|
-
* Node.js will not change the module version during a Major release line
|
|
83
|
-
* We will, at times update the version of V8 shipped in the release line
|
|
84
|
-
* if it can be made ABI compatible with the previous version.
|
|
85
|
-
*
|
|
86
|
-
* The registry of used NODE_MODULE_VERSION numbers is located at
|
|
87
|
-
* https://github.com/nodejs/node/blob/master/doc/abi_version_registry.json
|
|
88
|
-
* Extenders, embedders and other consumers of Node.js that require ABI
|
|
89
|
-
* version matching should open a pull request to reserve a number in this
|
|
90
|
-
* registry.
|
|
91
|
-
*/
|
|
92
|
-
#define NODE_MODULE_VERSION 72
|
|
93
|
-
|
|
94
|
-
// The NAPI_VERSION provided by this version of the runtime. This is the version
|
|
95
|
-
// which the Node binary being built supports.
|
|
96
|
-
#define NAPI_VERSION 6
|
|
97
|
-
|
|
98
|
-
#endif // SRC_NODE_VERSION_H_
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
-
// copy of this software and associated documentation files (the
|
|
5
|
-
// "Software"), to deal in the Software without restriction, including
|
|
6
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
-
// following conditions:
|
|
10
|
-
//
|
|
11
|
-
// The above copyright notice and this permission notice shall be included
|
|
12
|
-
// in all copies or substantial portions of the Software.
|
|
13
|
-
//
|
|
14
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
#ifndef SRC_NODE_WATCHDOG_H_
|
|
23
|
-
#define SRC_NODE_WATCHDOG_H_
|
|
24
|
-
|
|
25
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
-
|
|
27
|
-
#include <vector>
|
|
28
|
-
#include "handle_wrap.h"
|
|
29
|
-
#include "memory_tracker-inl.h"
|
|
30
|
-
#include "node_mutex.h"
|
|
31
|
-
#include "uv.h"
|
|
32
|
-
#include "v8.h"
|
|
33
|
-
|
|
34
|
-
#ifdef __POSIX__
|
|
35
|
-
#include <pthread.h>
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
namespace node {
|
|
39
|
-
|
|
40
|
-
enum class SignalPropagation {
|
|
41
|
-
kContinuePropagation,
|
|
42
|
-
kStopPropagation,
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
class Watchdog {
|
|
46
|
-
public:
|
|
47
|
-
explicit Watchdog(v8::Isolate* isolate,
|
|
48
|
-
uint64_t ms,
|
|
49
|
-
bool* timed_out = nullptr);
|
|
50
|
-
~Watchdog();
|
|
51
|
-
v8::Isolate* isolate() { return isolate_; }
|
|
52
|
-
|
|
53
|
-
private:
|
|
54
|
-
static void Run(void* arg);
|
|
55
|
-
static void Timer(uv_timer_t* timer);
|
|
56
|
-
|
|
57
|
-
v8::Isolate* isolate_;
|
|
58
|
-
uv_thread_t thread_;
|
|
59
|
-
uv_loop_t loop_;
|
|
60
|
-
uv_async_t async_;
|
|
61
|
-
uv_timer_t timer_;
|
|
62
|
-
bool* timed_out_;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
class SigintWatchdogBase {
|
|
66
|
-
public:
|
|
67
|
-
virtual ~SigintWatchdogBase() = default;
|
|
68
|
-
virtual SignalPropagation HandleSigint() = 0;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
class SigintWatchdog : public SigintWatchdogBase {
|
|
72
|
-
public:
|
|
73
|
-
explicit SigintWatchdog(v8::Isolate* isolate,
|
|
74
|
-
bool* received_signal = nullptr);
|
|
75
|
-
~SigintWatchdog();
|
|
76
|
-
v8::Isolate* isolate() { return isolate_; }
|
|
77
|
-
SignalPropagation HandleSigint() override;
|
|
78
|
-
|
|
79
|
-
private:
|
|
80
|
-
v8::Isolate* isolate_;
|
|
81
|
-
bool* received_signal_;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
class TraceSigintWatchdog : public HandleWrap, public SigintWatchdogBase {
|
|
85
|
-
public:
|
|
86
|
-
static void Init(Environment* env, v8::Local<v8::Object> target);
|
|
87
|
-
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
88
|
-
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
89
|
-
static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
90
|
-
|
|
91
|
-
SignalPropagation HandleSigint() override;
|
|
92
|
-
|
|
93
|
-
inline void MemoryInfo(node::MemoryTracker* tracker) const override {
|
|
94
|
-
tracker->TrackInlineField("handle_", handle_);
|
|
95
|
-
}
|
|
96
|
-
SET_MEMORY_INFO_NAME(TraceSigintWatchdog)
|
|
97
|
-
SET_SELF_SIZE(TraceSigintWatchdog)
|
|
98
|
-
|
|
99
|
-
private:
|
|
100
|
-
enum class SignalFlags { None, FromIdle, FromInterrupt };
|
|
101
|
-
|
|
102
|
-
TraceSigintWatchdog(Environment* env, v8::Local<v8::Object> object);
|
|
103
|
-
void HandleInterrupt();
|
|
104
|
-
|
|
105
|
-
bool interrupting = false;
|
|
106
|
-
uv_async_t handle_;
|
|
107
|
-
SignalFlags signal_flag_ = SignalFlags::None;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
class SigintWatchdogHelper {
|
|
111
|
-
public:
|
|
112
|
-
static SigintWatchdogHelper* GetInstance() { return &instance; }
|
|
113
|
-
void Register(SigintWatchdogBase* watchdog);
|
|
114
|
-
void Unregister(SigintWatchdogBase* watchdog);
|
|
115
|
-
bool HasPendingSignal();
|
|
116
|
-
|
|
117
|
-
int Start();
|
|
118
|
-
bool Stop();
|
|
119
|
-
|
|
120
|
-
private:
|
|
121
|
-
SigintWatchdogHelper();
|
|
122
|
-
~SigintWatchdogHelper();
|
|
123
|
-
|
|
124
|
-
static bool InformWatchdogsAboutSignal();
|
|
125
|
-
static SigintWatchdogHelper instance;
|
|
126
|
-
|
|
127
|
-
int start_stop_count_;
|
|
128
|
-
|
|
129
|
-
Mutex mutex_;
|
|
130
|
-
Mutex list_mutex_;
|
|
131
|
-
std::vector<SigintWatchdogBase*> watchdogs_;
|
|
132
|
-
bool has_pending_signal_;
|
|
133
|
-
|
|
134
|
-
#ifdef __POSIX__
|
|
135
|
-
pthread_t thread_;
|
|
136
|
-
uv_sem_t sem_;
|
|
137
|
-
bool has_running_thread_;
|
|
138
|
-
bool stopping_;
|
|
139
|
-
|
|
140
|
-
static void* RunSigintWatchdog(void* arg);
|
|
141
|
-
static void HandleSignal(int signum);
|
|
142
|
-
#else
|
|
143
|
-
bool watchdog_disabled_;
|
|
144
|
-
static BOOL WINAPI WinCtrlCHandlerRoutine(DWORD dwCtrlType);
|
|
145
|
-
#endif
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
} // namespace node
|
|
149
|
-
|
|
150
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
151
|
-
|
|
152
|
-
#endif // SRC_NODE_WATCHDOG_H_
|