This commit is contained in:
Lev Kokotov
2022-02-03 15:33:26 -08:00
parent c7c724d751
commit f921966e2b
2 changed files with 30 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ use crate::server::Server;
pub struct Client {
read: BufReader<OwnedReadHalf>,
write: OwnedWriteHalf,
buffer: BytesMut,
}
impl Client {
@@ -57,6 +58,7 @@ impl Client {
return Ok(Client {
read: BufReader::new(read),
write: write,
buffer: BytesMut::with_capacity(8196),
});
}
@@ -86,6 +88,33 @@ impl Client {
return Ok(());
}
'P' => {
// Extended protocol, let's buffer most of it
self.buffer.put(&original[..]);
}
'B' => {
self.buffer.put(&original[..]);
}
'D' => {
self.buffer.put(&original[..]);
}
'E' => {
self.buffer.put(&original[..]);
}
'S' => {
// Extended protocol, client requests sync
self.buffer.put(&original[..]);
server.send(self.buffer.clone()).await?;
self.buffer.clear();
let response = server.recv().await?;
write_all_half(&mut self.write, response).await?;
}
_ => {
println!(">>> Unexpected code: {}", code);
}

View File

@@ -135,6 +135,7 @@ impl Server {
self.buffer.put(&message[..]);
let code = message.get_u8() as char;
match code {
'Z' => {
// Ready for query, time to forward buffer to client.