Skip to content

Commit 613b2be

Browse files
authored
Fix Display impl of MioListener (#350)
1 parent b2e9640 commit 613b2be

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

actix-server/src/accept.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@ use mio::{Interest, Poll, Token as MioToken};
1010
use slab::Slab;
1111

1212
use crate::server::Server;
13-
use crate::socket::{MioListener, SocketAddr};
13+
use crate::socket::MioListener;
1414
use crate::waker_queue::{WakerInterest, WakerQueue, WAKER_TOKEN};
1515
use crate::worker::{Conn, WorkerHandleAccept};
1616
use crate::Token;
1717

1818
struct ServerSocketInfo {
19-
/// Address of socket. Mainly used for logging.
20-
addr: SocketAddr,
21-
2219
/// Beware this is the crate token for identify socket and should not be confused
2320
/// with `mio::Token`.
2421
token: Token,
@@ -178,8 +175,6 @@ impl Accept {
178175
) -> (Accept, Slab<ServerSocketInfo>) {
179176
let mut sockets = Slab::new();
180177
for (hnd_token, mut lst) in socks.into_iter() {
181-
let addr = lst.local_addr();
182-
183178
let entry = sockets.vacant_entry();
184179
let token = entry.key();
185180

@@ -189,7 +184,6 @@ impl Accept {
189184
.unwrap_or_else(|e| panic!("Can not register io: {}", e));
190185

191186
entry.insert(ServerSocketInfo {
192-
addr,
193187
token: hnd_token,
194188
lst,
195189
timeout: None,
@@ -333,7 +327,7 @@ impl Accept {
333327

334328
fn register_logged(&self, token: usize, info: &mut ServerSocketInfo) {
335329
match self.register(token, info) {
336-
Ok(_) => info!("Resume accepting connections on {}", info.addr),
330+
Ok(_) => info!("Resume accepting connections on {}", info.lst.local_addr()),
337331
Err(e) => error!("Can not register server socket {}", e),
338332
}
339333
}
@@ -344,7 +338,7 @@ impl Accept {
344338

345339
fn deregister_logged(&self, info: &mut ServerSocketInfo) {
346340
match self.deregister(info) {
347-
Ok(_) => info!("Paused accepting connections on {}", info.addr),
341+
Ok(_) => info!("Paused accepting connections on {}", info.lst.local_addr()),
348342
Err(e) => {
349343
error!("Can not deregister server socket {}", e)
350344
}

actix-server/src/socket.rs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,15 @@ pub(crate) enum MioListener {
2323
impl MioListener {
2424
pub(crate) fn local_addr(&self) -> SocketAddr {
2525
match *self {
26-
MioListener::Tcp(ref lst) => SocketAddr::Tcp(lst.local_addr().unwrap()),
26+
MioListener::Tcp(ref lst) => lst
27+
.local_addr()
28+
.map(SocketAddr::Tcp)
29+
.unwrap_or(SocketAddr::Unknown),
2730
#[cfg(unix)]
28-
MioListener::Uds(ref lst) => SocketAddr::Uds(lst.local_addr().unwrap()),
31+
MioListener::Uds(ref lst) => lst
32+
.local_addr()
33+
.map(SocketAddr::Uds)
34+
.unwrap_or(SocketAddr::Unknown),
2935
}
3036
}
3137

@@ -110,14 +116,15 @@ impl fmt::Debug for MioListener {
110116
impl fmt::Display for MioListener {
111117
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
112118
match *self {
113-
MioListener::Tcp(ref lst) => write!(f, "{}", lst.local_addr().ok().unwrap()),
119+
MioListener::Tcp(ref lst) => write!(f, "{:?}", lst),
114120
#[cfg(unix)]
115-
MioListener::Uds(ref lst) => write!(f, "{:?}", lst.local_addr().ok().unwrap()),
121+
MioListener::Uds(ref lst) => write!(f, "{:?}", lst),
116122
}
117123
}
118124
}
119125

120126
pub(crate) enum SocketAddr {
127+
Unknown,
121128
Tcp(StdSocketAddr),
122129
#[cfg(unix)]
123130
Uds(mio::net::SocketAddr),
@@ -126,19 +133,21 @@ pub(crate) enum SocketAddr {
126133
impl fmt::Display for SocketAddr {
127134
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
128135
match *self {
129-
SocketAddr::Tcp(ref addr) => write!(f, "{}", addr),
136+
Self::Unknown => write!(f, "Unknown SocketAddr"),
137+
Self::Tcp(ref addr) => write!(f, "{}", addr),
130138
#[cfg(unix)]
131-
SocketAddr::Uds(ref addr) => write!(f, "{:?}", addr),
139+
Self::Uds(ref addr) => write!(f, "{:?}", addr),
132140
}
133141
}
134142
}
135143

136144
impl fmt::Debug for SocketAddr {
137145
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
138146
match *self {
139-
SocketAddr::Tcp(ref addr) => write!(f, "{:?}", addr),
147+
Self::Unknown => write!(f, "Unknown SocketAddr"),
148+
Self::Tcp(ref addr) => write!(f, "{:?}", addr),
140149
#[cfg(unix)]
141-
SocketAddr::Uds(ref addr) => write!(f, "{:?}", addr),
150+
Self::Uds(ref addr) => write!(f, "{:?}", addr),
142151
}
143152
}
144153
}

0 commit comments

Comments
 (0)