From 3a4a1e5f386137514b91c76ad06d909789bcd549 Mon Sep 17 00:00:00 2001 From: Nick Hamann Date: Sat, 2 May 2015 19:25:44 -0500 Subject: [PATCH] Implement Debug for std::net::{UdpSocket,TcpStream,TcpListener,Shutdown} Fixes #23134. --- src/libstd/net/mod.rs | 2 +- src/libstd/net/tcp.rs | 13 +++++++++++++ src/libstd/net/udp.rs | 7 +++++++ src/libstd/sys/common/net2.rs | 29 +++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/libstd/net/mod.rs b/src/libstd/net/mod.rs index 2e7c0a2c80e5..bf444ce671df 100644 --- a/src/libstd/net/mod.rs +++ b/src/libstd/net/mod.rs @@ -32,7 +32,7 @@ mod parser; /// Possible values which can be passed to the `shutdown` method of `TcpStream` /// and `UdpSocket`. -#[derive(Copy, Clone, PartialEq)] +#[derive(Copy, Clone, PartialEq, Debug)] #[stable(feature = "rust1", since = "1.0.0")] pub enum Shutdown { /// Indicates that the reading portion of this stream/socket should be shut diff --git a/src/libstd/net/tcp.rs b/src/libstd/net/tcp.rs index 130e1eee8f92..73bc00b4554a 100644 --- a/src/libstd/net/tcp.rs +++ b/src/libstd/net/tcp.rs @@ -14,6 +14,7 @@ use prelude::v1::*; use io::prelude::*; +use fmt; use io; use net::{ToSocketAddrs, SocketAddr, Shutdown}; use sys_common::net2 as net_imp; @@ -167,6 +168,12 @@ impl FromInner for TcpStream { fn from_inner(inner: net_imp::TcpStream) -> TcpStream { TcpStream(inner) } } +impl fmt::Debug for TcpStream { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + self.0.fmt(f) + } +} + impl TcpListener { /// Creates a new `TcpListener` which will be bound to the specified /// address. @@ -239,6 +246,12 @@ impl FromInner for TcpListener { } } +impl fmt::Debug for TcpListener { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + self.0.fmt(f) + } +} + #[cfg(test)] mod tests { use prelude::v1::*; diff --git a/src/libstd/net/udp.rs b/src/libstd/net/udp.rs index 0b04ecb1b722..96d6e95f03aa 100644 --- a/src/libstd/net/udp.rs +++ b/src/libstd/net/udp.rs @@ -13,6 +13,7 @@ use prelude::v1::*; +use fmt; use io::{self, Error, ErrorKind}; use net::{ToSocketAddrs, SocketAddr, IpAddr}; use sys_common::net2 as net_imp; @@ -136,6 +137,12 @@ impl FromInner for UdpSocket { fn from_inner(inner: net_imp::UdpSocket) -> UdpSocket { UdpSocket(inner) } } +impl fmt::Debug for UdpSocket { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + self.0.fmt(f) + } +} + #[cfg(test)] mod tests { use prelude::v1::*; diff --git a/src/libstd/sys/common/net2.rs b/src/libstd/sys/common/net2.rs index 2b2c31d92eda..08242f6bab8b 100644 --- a/src/libstd/sys/common/net2.rs +++ b/src/libstd/sys/common/net2.rs @@ -11,6 +11,7 @@ use prelude::v1::*; use ffi::{CStr, CString}; +use fmt; use io::{self, Error, ErrorKind}; use libc::{self, c_int, c_char, c_void, socklen_t}; use mem; @@ -268,6 +269,16 @@ impl FromInner 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() + } +} + //////////////////////////////////////////////////////////////////////////////// // TCP listeners //////////////////////////////////////////////////////////////////////////////// @@ -327,6 +338,15 @@ impl FromInner 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() + } +} + //////////////////////////////////////////////////////////////////////////////// // UDP //////////////////////////////////////////////////////////////////////////////// @@ -445,3 +465,12 @@ impl FromInner for UdpSocket { UdpSocket { inner: socket } } } + +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() + } +}