@@ -23,9 +23,15 @@ pub(crate) enum MioListener {
23
23
impl MioListener {
24
24
pub ( crate ) fn local_addr ( & self ) -> SocketAddr {
25
25
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 ) ,
27
30
#[ 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 ) ,
29
35
}
30
36
}
31
37
@@ -110,14 +116,15 @@ impl fmt::Debug for MioListener {
110
116
impl fmt:: Display for MioListener {
111
117
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
112
118
match * self {
113
- MioListener :: Tcp ( ref lst) => write ! ( f, "{}" , lst. local_addr ( ) . ok ( ) . unwrap ( ) ) ,
119
+ MioListener :: Tcp ( ref lst) => write ! ( f, "{:? }" , lst) ,
114
120
#[ cfg( unix) ]
115
- MioListener :: Uds ( ref lst) => write ! ( f, "{:?}" , lst. local_addr ( ) . ok ( ) . unwrap ( ) ) ,
121
+ MioListener :: Uds ( ref lst) => write ! ( f, "{:?}" , lst) ,
116
122
}
117
123
}
118
124
}
119
125
120
126
pub ( crate ) enum SocketAddr {
127
+ Unknown ,
121
128
Tcp ( StdSocketAddr ) ,
122
129
#[ cfg( unix) ]
123
130
Uds ( mio:: net:: SocketAddr ) ,
@@ -126,19 +133,21 @@ pub(crate) enum SocketAddr {
126
133
impl fmt:: Display for SocketAddr {
127
134
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
128
135
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) ,
130
138
#[ cfg( unix) ]
131
- SocketAddr :: Uds ( ref addr) => write ! ( f, "{:?}" , addr) ,
139
+ Self :: Uds ( ref addr) => write ! ( f, "{:?}" , addr) ,
132
140
}
133
141
}
134
142
}
135
143
136
144
impl fmt:: Debug for SocketAddr {
137
145
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
138
146
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) ,
140
149
#[ cfg( unix) ]
141
- SocketAddr :: Uds ( ref addr) => write ! ( f, "{:?}" , addr) ,
150
+ Self :: Uds ( ref addr) => write ! ( f, "{:?}" , addr) ,
142
151
}
143
152
}
144
153
}
0 commit comments