Don't panic if peer_addr() fails (#7678)

automerge
This commit is contained in:
Michael Vines 2020-01-04 11:00:22 -07:00 committed by Grimes
parent a8fd42c1df
commit e8a6c8cd6d
1 changed files with 11 additions and 5 deletions

View File

@ -41,11 +41,17 @@ pub fn ip_echo_server(tcp: std::net::TcpListener) -> IpEchoServer {
let server = tcp
.incoming()
.map_err(|err| warn!("accept failed: {:?}", err))
.for_each(move |socket| {
let peer_addr = socket.peer_addr().expect("Expect peer_addr()");
info!("connection from {:?}", peer_addr);
let framed = BytesCodec::new().framed(socket);
.filter_map(|socket| match socket.peer_addr() {
Ok(peer_addr) => {
info!("connection from {:?}", peer_addr);
Some((peer_addr, BytesCodec::new().framed(socket)))
}
Err(err) => {
info!("peer_addr failed for {:?}: {:?}", socket, err);
None
}
})
.for_each(move |(peer_addr, framed)| {
let (writer, reader) = framed.split();
let processor = reader