fix: add contexts for noise errors

This commit is contained in:
Yujia Qiao 2022-01-08 16:24:33 +08:00
parent 6827c8589f
commit 8f03673406
No known key found for this signature in database
GPG Key ID: DC129173B148701B
1 changed files with 13 additions and 4 deletions

View File

@ -72,18 +72,27 @@ impl Transport for NoiseTransport {
}
async fn accept(&self, a: &Self::Acceptor) -> Result<(Self::Stream, SocketAddr)> {
let (conn, addr) = a.accept().await?;
let (conn, addr) = a
.accept()
.await
.with_context(|| "Failed to accept TCP connection")?;
set_tcp_keepalive(&conn);
let conn = NoiseStream::handshake(conn, self.builder().build_responder()?).await?;
let conn = NoiseStream::handshake(conn, self.builder().build_responder()?)
.await
.with_context(|| "Failed to do noise handshake")?;
Ok((conn, addr))
}
async fn connect(&self, addr: &str) -> Result<Self::Stream> {
let conn = TcpStream::connect(addr).await?;
let conn = TcpStream::connect(addr)
.await
.with_context(|| "Failed to connect TCP socket")?;
set_tcp_keepalive(&conn);
let conn = NoiseStream::handshake(conn, self.builder().build_initiator()?).await?;
let conn = NoiseStream::handshake(conn, self.builder().build_initiator()?)
.await
.with_context(|| "Failed to do noise handshake")?;
return Ok(conn);
}
}