Send proper server parameters to clients using admin db (#103)

* Send proper server parameters to clients using admin db

* clean up

* fix python test

* build

* Add python

* missing &

* debug ls

* fix tests

* fix tests

* fix

* Fix warning

* Address comments
This commit is contained in:
Mostafa Abdelraouf
2022-07-31 21:52:23 -05:00
committed by GitHub
parent 35381ba8fd
commit 1b648ca00e
7 changed files with 86 additions and 20 deletions

View File

@@ -7,6 +7,7 @@ use tokio::net::TcpStream;
use crate::errors::Error;
use std::collections::HashMap;
use std::mem;
/// Postgres data type mappings
/// used in RowDescription ('T') message.
@@ -498,3 +499,20 @@ where
Ok(bytes)
}
pub fn server_paramater_message(key: &str, value: &str) -> BytesMut {
let mut server_info = BytesMut::new();
let null_byte_size = 1;
let len: usize =
mem::size_of::<i32>() + key.len() + null_byte_size + value.len() + null_byte_size;
server_info.put_slice("S".as_bytes());
server_info.put_i32(len.try_into().unwrap());
server_info.put_slice(key.as_bytes());
server_info.put_bytes(0, 1);
server_info.put_slice(value.as_bytes());
server_info.put_bytes(0, 1);
return server_info;
}