Skip to content

Commit dd85c42

Browse files
author
Nick Hamann
committed
Unwrap address values in Debug implementations for TcpStream/TcpListener/UdpSocket.
This now omits address fields in Debug implementations when a proper address value cannot be unwrapped.
1 parent 3a4a1e5 commit dd85c42

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

src/libstd/sys/common/net2.rs

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,18 @@ impl FromInner<Socket> for TcpStream {
271271

272272
impl fmt::Debug for TcpStream {
273273
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
274-
f.debug_struct("TcpStream")
275-
.field("addr", &self.socket_addr())
276-
.field("peer", &self.peer_addr())
277-
.field("inner", &self.inner.as_inner())
278-
.finish()
274+
let mut res = f.debug_struct("TcpStream");
275+
276+
if let Ok(addr) = self.socket_addr() {
277+
res = res.field("addr", &addr);
278+
}
279+
280+
if let Ok(peer) = self.peer_addr() {
281+
res = res.field("peer", &peer);
282+
}
283+
284+
res = res.field("inner", &self.inner.as_inner());
285+
res.finish()
279286
}
280287
}
281288

@@ -340,10 +347,14 @@ impl FromInner<Socket> for TcpListener {
340347

341348
impl fmt::Debug for TcpListener {
342349
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
343-
f.debug_struct("TcpListener")
344-
.field("addr", &self.socket_addr())
345-
.field("inner", &self.inner.as_inner())
346-
.finish()
350+
let mut res = f.debug_struct("TcpListener");
351+
352+
if let Ok(addr) = self.socket_addr() {
353+
res = res.field("addr", &addr);
354+
}
355+
356+
res = res.field("inner", &self.inner.as_inner());
357+
res.finish()
347358
}
348359
}
349360

@@ -468,9 +479,13 @@ impl FromInner<Socket> for UdpSocket {
468479

469480
impl fmt::Debug for UdpSocket {
470481
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
471-
f.debug_struct("UdpSocket")
472-
.field("addr", &self.socket_addr())
473-
.field("inner", &self.inner.as_inner())
474-
.finish()
482+
let mut res = f.debug_struct("UdpSocket");
483+
484+
if let Ok(addr) = self.socket_addr() {
485+
res = res.field("addr", &addr);
486+
}
487+
488+
res = res.field("inner", &self.inner.as_inner());
489+
res.finish()
475490
}
476491
}

0 commit comments

Comments
 (0)