TLA Line data Source code
1 : use std::{
2 : io,
3 : net::{TcpListener, ToSocketAddrs},
4 : os::unix::prelude::AsRawFd,
5 : };
6 :
7 : use nix::sys::socket::{setsockopt, sockopt::ReuseAddr};
8 :
9 : /// Bind a [`TcpListener`] to addr with `SO_REUSEADDR` set to true.
10 CBC 2620 : pub fn bind<A: ToSocketAddrs>(addr: A) -> io::Result<TcpListener> {
11 2620 : let listener = TcpListener::bind(addr)?;
12 :
13 2620 : setsockopt(listener.as_raw_fd(), ReuseAddr, &true)?;
14 :
15 2620 : Ok(listener)
16 2620 : }
|