1
0
mirror of https://github.com/fafhrd91/actix-net synced 2025-02-17 14:43:31 +01:00

fix bind_addr

This commit is contained in:
Rob Ede 2022-01-28 22:13:10 +00:00
parent 5e290d76f8
commit b8a7741524
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933

View File

@ -264,22 +264,23 @@ pub(super) fn bind_addr<S: ToSocketAddrs>(
addr: S, addr: S,
backlog: u32, backlog: u32,
) -> io::Result<Vec<MioTcpListener>> { ) -> io::Result<Vec<MioTcpListener>> {
let mut err = None; let mut opt_err = None;
let mut success = false; let mut success = false;
let mut sockets = Vec::new(); let mut sockets = Vec::new();
for addr in addr.to_socket_addrs()? { for addr in addr.to_socket_addrs()? {
match create_mio_tcp_listener(addr, backlog) { match create_mio_tcp_listener(addr, backlog) {
Ok(lst) => { Ok(lst) => {
success = true; success = true;
sockets.push(lst); sockets.push(lst);
} }
Err(err) => err = Some(err), Err(err) => opt_err = Some(err),
} }
} }
if success { if success {
Ok(sockets) Ok(sockets)
} else if let Some(err) = err.take() { } else if let Some(err) = opt_err.take() {
Err(err) Err(err)
} else { } else {
Err(io::Error::new( Err(io::Error::new(