diff --git a/tarpc/src/transport/unix.rs b/tarpc/src/transport/unix.rs index 1e2e7ad..f7e9f54 100644 --- a/tarpc/src/transport/unix.rs +++ b/tarpc/src/transport/unix.rs @@ -34,7 +34,11 @@ impl super::Listener for UnixListener { self.accept().map(|(stream, _)| stream) } fn dialer(&self) -> io::Result> { - self.local_addr().map(|addr| UnixDialer(addr.as_pathname().unwrap().to_owned())) + self.local_addr().and_then(|addr| match addr.as_pathname() { + Some(path) => Ok(UnixDialer(path.to_owned())), + None => Err(io::Error::new(io::ErrorKind::AddrNotAvailable, + "Couldn't get a path to bound unix socket")), + }) } }