about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorNick Hamann <nick@wabbo.org>2015-05-03 17:13:42 -0500
committerNick Hamann <nick@wabbo.org>2015-05-03 17:13:42 -0500
commitdd85c42ee151a9d350327f3aab7492a178716507 (patch)
tree2c88fc1acb71157d504cbb879d2c1d402c793e04 /src/libstd
parent3a4a1e5f386137514b91c76ad06d909789bcd549 (diff)
downloadrust-dd85c42ee151a9d350327f3aab7492a178716507.tar.gz
rust-dd85c42ee151a9d350327f3aab7492a178716507.zip
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.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys/common/net2.rs41
1 files changed, 28 insertions, 13 deletions
diff --git a/src/libstd/sys/common/net2.rs b/src/libstd/sys/common/net2.rs
index 08242f6bab8..688d0edcff1 100644
--- a/src/libstd/sys/common/net2.rs
+++ b/src/libstd/sys/common/net2.rs
@@ -271,11 +271,18 @@ impl FromInner<Socket> for TcpStream {
 
 impl fmt::Debug for TcpStream {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        f.debug_struct("TcpStream")
-        .field("addr", &self.socket_addr())
-        .field("peer", &self.peer_addr())
-        .field("inner", &self.inner.as_inner())
-        .finish()
+        let mut res = f.debug_struct("TcpStream");
+
+        if let Ok(addr) = self.socket_addr() {
+            res = res.field("addr", &addr);
+        }
+
+        if let Ok(peer) = self.peer_addr() {
+            res = res.field("peer", &peer);
+        }
+
+        res = res.field("inner", &self.inner.as_inner());
+        res.finish()
     }
 }
 
@@ -340,10 +347,14 @@ impl FromInner<Socket> for TcpListener {
 
 impl fmt::Debug for TcpListener {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        f.debug_struct("TcpListener")
-        .field("addr", &self.socket_addr())
-        .field("inner", &self.inner.as_inner())
-        .finish()
+        let mut res = f.debug_struct("TcpListener");
+
+        if let Ok(addr) = self.socket_addr() {
+            res = res.field("addr", &addr);
+        }
+
+        res = res.field("inner", &self.inner.as_inner());
+        res.finish()
     }
 }
 
@@ -468,9 +479,13 @@ impl FromInner<Socket> for UdpSocket {
 
 impl fmt::Debug for UdpSocket {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        f.debug_struct("UdpSocket")
-        .field("addr", &self.socket_addr())
-        .field("inner", &self.inner.as_inner())
-        .finish()
+        let mut res = f.debug_struct("UdpSocket");
+
+        if let Ok(addr) = self.socket_addr() {
+            res = res.field("addr", &addr);
+        }
+
+        res = res.field("inner", &self.inner.as_inner());
+        res.finish()
     }
 }