Adds details to errors and fixes error propagation bug (#239)

This commit is contained in:
zainkabani
2022-11-17 09:24:39 -08:00
committed by GitHub
parent fcd2cae4e1
commit c62b86f4e6
6 changed files with 94 additions and 48 deletions

View File

@@ -136,7 +136,11 @@ pub async fn startup(stream: &mut TcpStream, user: &str, database: &str) -> Resu
match stream.write_all(&startup).await {
Ok(_) => Ok(()),
Err(_) => Err(Error::SocketError),
Err(_) => {
return Err(Error::SocketError(format!(
"Error writing startup to server socket"
)))
}
}
}
@@ -450,7 +454,7 @@ where
{
match stream.write_all(&buf).await {
Ok(_) => Ok(()),
Err(_) => Err(Error::SocketError),
Err(_) => return Err(Error::SocketError(format!("Error writing to socket"))),
}
}
@@ -461,7 +465,7 @@ where
{
match stream.write_all(&buf).await {
Ok(_) => Ok(()),
Err(_) => Err(Error::SocketError),
Err(_) => return Err(Error::SocketError(format!("Error writing to socket"))),
}
}
@@ -472,19 +476,33 @@ where
{
let code = match stream.read_u8().await {
Ok(code) => code,
Err(_) => return Err(Error::SocketError),
Err(_) => {
return Err(Error::SocketError(format!(
"Error reading message code from socket"
)))
}
};
let len = match stream.read_i32().await {
Ok(len) => len,
Err(_) => return Err(Error::SocketError),
Err(_) => {
return Err(Error::SocketError(format!(
"Error reading message len from socket, code: {:?}",
code
)))
}
};
let mut buf = vec![0u8; len as usize - 4];
match stream.read_exact(&mut buf).await {
Ok(_) => (),
Err(_) => return Err(Error::SocketError),
Err(_) => {
return Err(Error::SocketError(format!(
"Error reading message from socket, code: {:?}",
code
)))
}
};
let mut bytes = BytesMut::with_capacity(len as usize + 1);