Linux v69820.1blu.de 4.15.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
Apache/2.4.58
Server IP : 195.90.215.149 & Your IP : 216.73.217.80
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
include /
nodejs /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
crypto
[ DIR ]
drwxr-xr-x
2024-07-10 10:55
permission
[ DIR ]
drwxr-xr-x
2024-07-10 10:55
tracing
[ DIR ]
drwxr-xr-x
2024-07-10 10:55
acorn_version.h
209
B
-rw-r--r--
2024-04-18 19:08
aliased_buffer-inl.h
7.44
KB
-rw-r--r--
2024-02-13 21:40
aliased_buffer.h
6.05
KB
-rw-r--r--
2024-02-13 21:40
aliased_struct-inl.h
1.32
KB
-rw-r--r--
2024-02-13 21:40
aliased_struct.h
1.44
KB
-rw-r--r--
2024-02-13 21:40
async_wrap-inl.h
2.68
KB
-rw-r--r--
2024-02-13 21:40
async_wrap.h
11.32
KB
-rw-r--r--
2024-02-13 21:40
base64-inl.h
5.76
KB
-rw-r--r--
2024-02-13 21:40
base64.h
1.43
KB
-rw-r--r--
2024-02-13 21:40
base64_version.h
227
B
-rw-r--r--
2024-02-13 21:40
base_object-inl.h
8.94
KB
-rw-r--r--
2024-02-13 21:40
base_object.h
13.3
KB
-rw-r--r--
2024-02-13 21:40
base_object_types.h
3.28
KB
-rw-r--r--
2024-02-13 21:40
blob_serializer_deserializer-inl.h
10.54
KB
-rw-r--r--
2024-02-13 21:40
blob_serializer_deserializer.h
3.56
KB
-rw-r--r--
2024-02-13 21:40
callback_queue-inl.h
2.59
KB
-rw-r--r--
2024-02-13 21:40
callback_queue.h
1.96
KB
-rw-r--r--
2024-02-13 21:40
cares_wrap.h
14.37
KB
-rw-r--r--
2024-04-18 19:08
cjs_module_lexer_version.h
277
B
-rw-r--r--
2024-04-18 19:08
cleanup_queue-inl.h
1.58
KB
-rw-r--r--
2024-02-13 21:40
cleanup_queue.h
2.19
KB
-rw-r--r--
2024-02-13 21:40
connect_wrap.h
584
B
-rw-r--r--
2024-02-13 21:40
connection_wrap.h
686
B
-rw-r--r--
2024-02-13 21:40
debug_utils-inl.h
7.42
KB
-rw-r--r--
2024-02-13 21:40
debug_utils.h
6.77
KB
-rw-r--r--
2024-02-13 21:40
diagnosticfilename-inl.h
768
B
-rw-r--r--
2024-02-13 21:40
env-inl.h
25.59
KB
-rw-r--r--
2024-02-13 21:40
env.h
38.85
KB
-rw-r--r--
2024-02-13 21:40
env_properties.h
33.32
KB
-rw-r--r--
2024-02-13 21:40
handle_wrap.h
4.16
KB
-rw-r--r--
2024-02-13 21:40
histogram-inl.h
2.39
KB
-rw-r--r--
2024-02-13 21:40
histogram.h
7.89
KB
-rw-r--r--
2024-02-13 21:40
inspector_agent.h
4.69
KB
-rw-r--r--
2024-02-13 21:40
inspector_io.h
2.19
KB
-rw-r--r--
2024-02-13 21:40
inspector_profiler.h
4.53
KB
-rw-r--r--
2024-02-13 21:40
inspector_socket.h
1.53
KB
-rw-r--r--
2024-02-13 21:40
inspector_socket_server.h
3.5
KB
-rw-r--r--
2024-02-13 21:40
js_native_api.h
31.22
KB
-rw-r--r--
2024-02-13 21:40
js_native_api_types.h
4.44
KB
-rw-r--r--
2024-02-13 21:40
js_native_api_v8.h
16.83
KB
-rw-r--r--
2024-02-13 21:40
js_native_api_v8_internals.h
1.56
KB
-rw-r--r--
2024-02-13 21:40
js_stream.h
1.35
KB
-rw-r--r--
2024-02-13 21:40
json_utils.h
3.8
KB
-rw-r--r--
2024-02-13 21:40
memory_tracker-inl.h
12.01
KB
-rw-r--r--
2024-02-13 21:40
memory_tracker.h
11.55
KB
-rw-r--r--
2024-02-13 21:40
module_wrap.h
3.72
KB
-rw-r--r--
2024-02-13 21:40
node.h
56.44
KB
-rw-r--r--
2024-02-13 21:40
node_api.h
9.96
KB
-rw-r--r--
2024-02-13 21:40
node_api_internals.h
1.24
KB
-rw-r--r--
2024-02-13 21:40
node_api_types.h
1.57
KB
-rw-r--r--
2024-02-13 21:40
node_binding.h
4.19
KB
-rw-r--r--
2024-02-13 21:40
node_blob.h
5.04
KB
-rw-r--r--
2024-02-13 21:40
node_bob-inl.h
657
B
-rw-r--r--
2024-02-13 21:40
node_bob.h
2.82
KB
-rw-r--r--
2024-02-13 21:40
node_buffer.h
3.6
KB
-rw-r--r--
2024-02-13 21:40
node_builtins.h
5.63
KB
-rw-r--r--
2024-02-13 21:40
node_constants.h
3.67
KB
-rw-r--r--
2024-02-13 21:40
node_context_data.h
2.94
KB
-rw-r--r--
2024-02-13 21:40
node_contextify.h
7.63
KB
-rw-r--r--
2024-02-13 21:40
node_crypto.h
2.27
KB
-rw-r--r--
2024-02-13 21:40
node_dir.h
1.31
KB
-rw-r--r--
2024-02-13 21:40
node_dtrace.h
2.89
KB
-rw-r--r--
2024-02-13 21:40
node_errors.h
16.86
KB
-rw-r--r--
2024-02-13 21:40
node_external_reference.h
7.86
KB
-rw-r--r--
2024-02-13 21:40
node_file-inl.h
12.45
KB
-rw-r--r--
2024-02-13 21:40
node_file.h
14.7
KB
-rw-r--r--
2024-02-13 21:40
node_http2.h
38.61
KB
-rw-r--r--
2024-02-13 21:40
node_http2_state.h
4.76
KB
-rw-r--r--
2024-02-13 21:40
node_http_common-inl.h
5.46
KB
-rw-r--r--
2024-02-13 21:40
node_http_common.h
24.56
KB
-rw-r--r--
2024-02-13 21:40
node_i18n.h
4.34
KB
-rw-r--r--
2024-02-13 21:40
node_internals.h
15.03
KB
-rw-r--r--
2024-02-13 21:40
node_main_instance.h
2.96
KB
-rw-r--r--
2024-02-13 21:40
node_mem-inl.h
3.6
KB
-rw-r--r--
2024-02-13 21:40
node_mem.h
1.27
KB
-rw-r--r--
2024-02-13 21:40
node_messaging.h
14.3
KB
-rw-r--r--
2024-02-13 21:40
node_metadata.h
4.37
KB
-rw-r--r--
2024-02-13 21:40
node_mutex.h
7.78
KB
-rw-r--r--
2024-02-13 21:40
node_object_wrap.h
3.78
KB
-rw-r--r--
2024-02-13 21:40
node_options-inl.h
15.86
KB
-rw-r--r--
2024-02-13 21:40
node_options.h
17.57
KB
-rw-r--r--
2024-02-13 21:40
node_perf.h
4.76
KB
-rw-r--r--
2024-02-13 21:40
node_perf_common.h
2.88
KB
-rw-r--r--
2024-02-13 21:40
node_platform.h
6.19
KB
-rw-r--r--
2024-02-13 21:40
node_process-inl.h
737
B
-rw-r--r--
2024-02-13 21:40
node_process.h
3.36
KB
-rw-r--r--
2024-02-13 21:40
node_realm-inl.h
4.59
KB
-rw-r--r--
2024-02-13 21:40
node_realm.h
5.38
KB
-rw-r--r--
2024-02-13 21:40
node_report.h
994
B
-rw-r--r--
2024-02-13 21:40
node_revert.h
2.09
KB
-rw-r--r--
2024-02-13 21:40
node_root_certs.h
231.49
KB
-rw-r--r--
2024-02-13 21:40
node_sea.h
517
B
-rw-r--r--
2024-02-13 21:40
node_shadow_realm.h
449
B
-rw-r--r--
2024-02-13 21:40
node_snapshot_builder.h
1.21
KB
-rw-r--r--
2024-02-13 21:40
node_snapshotable.h
4.82
KB
-rw-r--r--
2024-02-13 21:40
node_sockaddr-inl.h
7.28
KB
-rw-r--r--
2024-02-13 21:40
node_sockaddr.h
12.91
KB
-rw-r--r--
2024-02-13 21:40
node_stat_watcher.h
2.36
KB
-rw-r--r--
2024-02-13 21:40
node_threadsafe_cow-inl.h
1.28
KB
-rw-r--r--
2024-02-13 21:40
node_threadsafe_cow.h
2.78
KB
-rw-r--r--
2024-02-13 21:40
node_union_bytes.h
1.66
KB
-rw-r--r--
2024-02-13 21:40
node_url.h
2.13
KB
-rw-r--r--
2024-02-13 21:40
node_util.h
1.39
KB
-rw-r--r--
2024-02-13 21:40
node_v8.h
1.67
KB
-rw-r--r--
2024-02-13 21:40
node_v8_platform-inl.h
6.63
KB
-rw-r--r--
2024-02-13 21:40
node_version.h
3.85
KB
-rw-r--r--
2024-04-18 19:08
node_wasi.h
5.21
KB
-rw-r--r--
2024-02-13 21:40
node_wasm_web_api.h
1.78
KB
-rw-r--r--
2024-02-13 21:40
node_watchdog.h
4.32
KB
-rw-r--r--
2024-02-13 21:40
node_win32_etw_provider-inl.h
11.53
KB
-rw-r--r--
2024-02-13 21:40
node_win32_etw_provider.h
3.67
KB
-rw-r--r--
2024-02-13 21:40
node_worker.h
4.92
KB
-rw-r--r--
2024-02-13 21:40
pipe_wrap.h
2.78
KB
-rw-r--r--
2024-02-13 21:40
req_wrap-inl.h
5.43
KB
-rw-r--r--
2024-02-13 21:40
req_wrap.h
2.23
KB
-rw-r--r--
2024-02-13 21:40
spawn_sync.h
6.87
KB
-rw-r--r--
2024-02-13 21:40
stream_base-inl.h
4.93
KB
-rw-r--r--
2024-02-13 21:40
stream_base.h
17.44
KB
-rw-r--r--
2024-02-13 21:40
stream_pipe.h
2.39
KB
-rw-r--r--
2024-02-13 21:40
stream_wrap.h
4.15
KB
-rw-r--r--
2024-02-13 21:40
string_bytes.h
4.69
KB
-rw-r--r--
2024-02-13 21:40
string_decoder-inl.h
858
B
-rw-r--r--
2024-02-13 21:40
string_decoder.h
1.5
KB
-rw-r--r--
2024-02-13 21:40
string_search.h
20.94
KB
-rw-r--r--
2024-02-13 21:40
tcp_wrap.h
3.9
KB
-rw-r--r--
2024-02-13 21:40
threadpoolwork-inl.h
2.58
KB
-rw-r--r--
2024-02-13 21:40
timer_wrap-inl.h
755
B
-rw-r--r--
2024-02-13 21:40
timer_wrap.h
1.79
KB
-rw-r--r--
2024-02-13 21:40
tty_wrap.h
2.27
KB
-rw-r--r--
2024-02-13 21:40
udp_wrap.h
8.5
KB
-rw-r--r--
2024-02-13 21:40
undici_version.h
215
B
-rw-r--r--
2024-04-18 19:08
util-inl.h
19.56
KB
-rw-r--r--
2024-02-13 21:40
util.h
31.46
KB
-rw-r--r--
2024-02-13 21:40
v8abbr.h
5.05
KB
-rw-r--r--
2024-02-13 21:40
Save
Rename
#ifndef SRC_BLOB_SERIALIZER_DESERIALIZER_INL_H_ #define SRC_BLOB_SERIALIZER_DESERIALIZER_INL_H_ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "blob_serializer_deserializer.h" #include <ostream> #include <sstream> #include <string> #include <type_traits> #include <utility> #include "debug_utils-inl.h" // This is related to the blob that is used in snapshots and has nothing to do // with `node_blob.h`. namespace node { struct EnvSerializeInfo; struct PropInfo; struct RealmSerializeInfo; namespace builtins { struct CodeCacheInfo; } // namespace builtins // These operator<< overload declarations are needed because // BlobSerializerDeserializer::ToStr() uses these. std::ostream& operator<<(std::ostream& output, const builtins::CodeCacheInfo& info); std::ostream& operator<<(std::ostream& output, const std::vector<builtins::CodeCacheInfo>& vec); std::ostream& operator<<(std::ostream& output, const std::vector<uint8_t>& vec); std::ostream& operator<<(std::ostream& output, const std::vector<PropInfo>& vec); std::ostream& operator<<(std::ostream& output, const PropInfo& info); std::ostream& operator<<(std::ostream& output, const std::vector<std::string>& vec); std::ostream& operator<<(std::ostream& output, const RealmSerializeInfo& i); std::ostream& operator<<(std::ostream& output, const EnvSerializeInfo& i); template <typename... Args> void BlobSerializerDeserializer::Debug(const char* format, Args&&... args) const { if (is_debug) { FPrintF(stderr, format, std::forward<Args>(args)...); } } template <typename T> std::string BlobSerializerDeserializer::ToStr(const T& arg) const { std::stringstream ss; ss << arg; return ss.str(); } template <typename T> std::string BlobSerializerDeserializer::GetName() const { #define TYPE_LIST(V) \ V(builtins::CodeCacheInfo) \ V(PropInfo) \ V(std::string) #define V(TypeName) \ if constexpr (std::is_same_v<T, TypeName>) { \ return #TypeName; \ } else // NOLINT(readability/braces) TYPE_LIST(V) #undef V if constexpr (std::is_arithmetic_v<T>) { return (std::is_unsigned_v<T> ? "uint" : std::is_integral_v<T> ? "int" : "float") + std::to_string(sizeof(T) * 8) + "_t"; } return ""; } // Helper for reading numeric types. template <typename Impl> template <typename T> T BlobDeserializer<Impl>::ReadArithmetic() { static_assert(std::is_arithmetic_v<T>, "Not an arithmetic type"); T result; ReadArithmetic(&result, 1); return result; } // Layout of vectors: // [ 4/8 bytes ] count // [ ... ] contents (count * size of individual elements) template <typename Impl> template <typename T> std::vector<T> BlobDeserializer<Impl>::ReadVector() { if (is_debug) { std::string name = GetName<T>(); Debug("\nReadVector<%s>()(%d-byte)\n", name.c_str(), sizeof(T)); } size_t count = static_cast<size_t>(ReadArithmetic<size_t>()); if (count == 0) { return std::vector<T>(); } if (is_debug) { Debug("Reading %d vector elements...\n", count); } std::vector<T> result; if constexpr (std::is_arithmetic_v<T>) { result = ReadArithmeticVector<T>(count); } else { result = ReadNonArithmeticVector<T>(count); } if (is_debug) { std::string str = std::is_arithmetic_v<T> ? "" : ToStr(result); std::string name = GetName<T>(); Debug("ReadVector<%s>() read %s\n", name.c_str(), str.c_str()); } return result; } template <typename Impl> std::string BlobDeserializer<Impl>::ReadString() { size_t length = ReadArithmetic<size_t>(); if (is_debug) { Debug("ReadString(), length=%d: ", length); } CHECK_GT(length, 0); // There should be no empty strings. MallocedBuffer<char> buf(length + 1); memcpy(buf.data, sink.data() + read_total, length + 1); std::string result(buf.data, length); // This creates a copy of buf.data. if (is_debug) { Debug("\"%s\", read %zu bytes\n", result.c_str(), length + 1); } read_total += length + 1; return result; } // Helper for reading an array of numeric types. template <typename Impl> template <typename T> void BlobDeserializer<Impl>::ReadArithmetic(T* out, size_t count) { static_assert(std::is_arithmetic_v<T>, "Not an arithmetic type"); DCHECK_GT(count, 0); // Should not read contents for vectors of size 0. if (is_debug) { std::string name = GetName<T>(); Debug("Read<%s>()(%d-byte), count=%d: ", name.c_str(), sizeof(T), count); } size_t size = sizeof(T) * count; memcpy(out, sink.data() + read_total, size); if (is_debug) { std::string str = "{ " + std::to_string(out[0]) + (count > 1 ? ", ... }" : " }"); Debug("%s, read %zu bytes\n", str.c_str(), size); } read_total += size; } // Helper for reading numeric vectors. template <typename Impl> template <typename Number> std::vector<Number> BlobDeserializer<Impl>::ReadArithmeticVector(size_t count) { static_assert(std::is_arithmetic_v<Number>, "Not an arithmetic type"); DCHECK_GT(count, 0); // Should not read contents for vectors of size 0. std::vector<Number> result(count); ReadArithmetic(result.data(), count); return result; } // Helper for reading non-numeric vectors. template <typename Impl> template <typename T> std::vector<T> BlobDeserializer<Impl>::ReadNonArithmeticVector(size_t count) { static_assert(!std::is_arithmetic_v<T>, "Arithmetic type"); DCHECK_GT(count, 0); // Should not read contents for vectors of size 0. std::vector<T> result; result.reserve(count); bool original_is_debug = is_debug; is_debug = original_is_debug && !std::is_same_v<T, std::string>; for (size_t i = 0; i < count; ++i) { if (is_debug) { Debug("\n[%d] ", i); } result.push_back(ReadElement<T>()); } is_debug = original_is_debug; return result; } template <typename Impl> template <typename T> T BlobDeserializer<Impl>::ReadElement() { if constexpr (std::is_arithmetic_v<T>) { return ReadArithmetic<T>(); } else if constexpr (std::is_same_v<T, std::string>) { return ReadString(); } else { return impl()->template Read<T>(); } } // Helper for writing numeric types. template <typename Impl> template <typename T> size_t BlobSerializer<Impl>::WriteArithmetic(const T& data) { static_assert(std::is_arithmetic_v<T>, "Not an arithmetic type"); return WriteArithmetic(&data, 1); } // Layout of vectors: // [ 4/8 bytes ] count // [ ... ] contents (count * size of individual elements) template <typename Impl> template <typename T> size_t BlobSerializer<Impl>::WriteVector(const std::vector<T>& data) { if (is_debug) { std::string str = std::is_arithmetic_v<T> ? "" : ToStr(data); std::string name = GetName<T>(); Debug("\nWriteVector<%s>() (%d-byte), count=%d: %s\n", name.c_str(), sizeof(T), data.size(), str.c_str()); } size_t written_total = WriteArithmetic<size_t>(data.size()); if (data.size() == 0) { return written_total; } if constexpr (std::is_arithmetic_v<T>) { written_total += WriteArithmeticVector<T>(data); } else { written_total += WriteNonArithmeticVector<T>(data); } if (is_debug) { std::string name = GetName<T>(); Debug("WriteVector<%s>() wrote %d bytes\n", name.c_str(), written_total); } return written_total; } // The layout of a written string: // [ 4/8 bytes ] length // [ |length| bytes ] contents template <typename Impl> size_t BlobSerializer<Impl>::WriteString(const std::string& data) { CHECK_GT(data.size(), 0); // No empty strings should be written. size_t written_total = WriteArithmetic<size_t>(data.size()); if (is_debug) { std::string str = ToStr(data); Debug("WriteString(), length=%zu: \"%s\"\n", data.size(), data.c_str()); } // Write the null-terminated string. size_t length = data.size() + 1; sink.insert(sink.end(), data.c_str(), data.c_str() + length); written_total += length; if (is_debug) { Debug("WriteString() wrote %zu bytes\n", written_total); } return written_total; } // Helper for writing an array of numeric types. template <typename Impl> template <typename T> size_t BlobSerializer<Impl>::WriteArithmetic(const T* data, size_t count) { static_assert(std::is_arithmetic_v<T>, "Arithmetic type"); DCHECK_GT(count, 0); // Should not write contents for vectors of size 0. if (is_debug) { std::string str = "{ " + std::to_string(data[0]) + (count > 1 ? ", ... }" : " }"); std::string name = GetName<T>(); Debug("Write<%s>() (%zu-byte), count=%zu: %s", name.c_str(), sizeof(T), count, str.c_str()); } size_t size = sizeof(T) * count; const char* pos = reinterpret_cast<const char*>(data); sink.insert(sink.end(), pos, pos + size); if (is_debug) { Debug(", wrote %zu bytes\n", size); } return size; } // Helper for writing numeric vectors. template <typename Impl> template <typename Number> size_t BlobSerializer<Impl>::WriteArithmeticVector( const std::vector<Number>& data) { static_assert(std::is_arithmetic_v<Number>, "Arithmetic type"); return WriteArithmetic(data.data(), data.size()); } // Helper for writing non-numeric vectors. template <typename Impl> template <typename T> size_t BlobSerializer<Impl>::WriteNonArithmeticVector( const std::vector<T>& data) { static_assert(!std::is_arithmetic_v<T>, "Arithmetic type"); DCHECK_GT(data.size(), 0); // Should not write contents for vectors of size 0. size_t written_total = 0; bool original_is_debug = is_debug; is_debug = original_is_debug && !std::is_same_v<T, std::string>; for (size_t i = 0; i < data.size(); ++i) { if (is_debug) { Debug("\n[%d] ", i); } written_total += WriteElement<T>(data[i]); } is_debug = original_is_debug; return written_total; } template <typename Impl> template <typename T> size_t BlobSerializer<Impl>::WriteElement(const T& data) { if constexpr (std::is_arithmetic_v<T>) { return WriteArithmetic<T>(data); } else if constexpr (std::is_same_v<T, std::string>) { return WriteString(data); } else { return impl()->template Write<T>(data); } } } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #endif // SRC_BLOB_SERIALIZER_DESERIALIZER_INL_H_