@@ -12,7 +12,8 @@ static constexpr auto null = JSONWriter::Null{};
12
12
static void ReportEndpoint (uv_handle_t * h,
13
13
struct sockaddr * addr,
14
14
const char * name,
15
- JSONWriter* writer) {
15
+ JSONWriter* writer,
16
+ bool exclude_network) {
16
17
if (addr == nullptr ) {
17
18
writer->json_keyvalue (name, null);
18
19
return ;
@@ -26,7 +27,7 @@ static void ReportEndpoint(uv_handle_t* h,
26
27
reinterpret_cast <sockaddr_in*>(addr)->sin_port :
27
28
reinterpret_cast <sockaddr_in6*>(addr)->sin6_port );
28
29
29
- if (uv_getnameinfo (h->loop , &endpoint, nullptr , addr, NI_NUMERICSERV) == 0 ) {
30
+ if (!exclude_network && uv_getnameinfo (h->loop , &endpoint, nullptr , addr, NI_NUMERICSERV) == 0 ) {
30
31
host = endpoint.host ;
31
32
DCHECK_EQ (port, std::stoi (endpoint.service ));
32
33
} else {
@@ -48,7 +49,7 @@ static void ReportEndpoint(uv_handle_t* h,
48
49
}
49
50
50
51
// Utility function to format libuv socket information.
51
- static void ReportEndpoints (uv_handle_t * h, JSONWriter* writer) {
52
+ static void ReportEndpoints (uv_handle_t * h, JSONWriter* writer, bool exclude_network ) {
52
53
struct sockaddr_storage addr_storage;
53
54
struct sockaddr * addr = reinterpret_cast <sockaddr*>(&addr_storage);
54
55
uv_any_handle* handle = reinterpret_cast <uv_any_handle*>(h);
@@ -65,7 +66,7 @@ static void ReportEndpoints(uv_handle_t* h, JSONWriter* writer) {
65
66
default :
66
67
break ;
67
68
}
68
- ReportEndpoint (h, rc == 0 ? addr : nullptr , " localEndpoint" , writer);
69
+ ReportEndpoint (h, rc == 0 ? addr : nullptr , " localEndpoint" , writer, exclude_network );
69
70
70
71
switch (h->type ) {
71
72
case UV_UDP:
@@ -77,7 +78,7 @@ static void ReportEndpoints(uv_handle_t* h, JSONWriter* writer) {
77
78
default :
78
79
break ;
79
80
}
80
- ReportEndpoint (h, rc == 0 ? addr : nullptr , " remoteEndpoint" , writer);
81
+ ReportEndpoint (h, rc == 0 ? addr : nullptr , " remoteEndpoint" , writer, exclude_network );
81
82
}
82
83
83
84
// Utility function to format libuv pipe information.
@@ -155,7 +156,7 @@ static void ReportPath(uv_handle_t* h, JSONWriter* writer) {
155
156
}
156
157
157
158
// Utility function to walk libuv handles.
158
- void WalkHandle (uv_handle_t * h, void * arg) {
159
+ void WalkHandle (uv_handle_t * h, void * arg, bool exclude_network = false ) {
159
160
const char * type = uv_handle_type_name (h->type );
160
161
JSONWriter* writer = static_cast <JSONWriter*>(arg);
161
162
uv_any_handle* handle = reinterpret_cast <uv_any_handle*>(h);
@@ -177,7 +178,7 @@ void WalkHandle(uv_handle_t* h, void* arg) {
177
178
break ;
178
179
case UV_TCP:
179
180
case UV_UDP:
180
- ReportEndpoints (h, writer);
181
+ ReportEndpoints (h, writer, exclude_network );
181
182
break ;
182
183
case UV_NAMED_PIPE:
183
184
ReportPipeEndpoints (h, writer);
@@ -267,6 +268,11 @@ void WalkHandle(uv_handle_t* h, void* arg) {
267
268
}
268
269
writer->json_end ();
269
270
}
270
-
271
+ void WalkHandleNetwork (uv_handle_t * h, void * arg) {
272
+ WalkHandle (h, arg, false );
273
+ }
274
+ void WalkHandleNoNetwork (uv_handle_t * h, void * arg) {
275
+ WalkHandle (h, arg, true );
276
+ }
271
277
} // namespace report
272
278
} // namespace node
0 commit comments