Fix VNC connection

This commit is contained in:
2023-10-18 18:36:24 +02:00
parent 197fbcf259
commit b007826710
2 changed files with 51 additions and 43 deletions

View File

@ -84,11 +84,27 @@ impl VNCActor {
let mut buff: [u8; 5000] = [0; 5000];
loop {
match read_half.read(&mut buff).await {
Ok(l) => {
Ok(mut l) => {
if l == 0 {
log::error!("Got empty read. Closing read end...");
addr.do_send(CloseWebSocketReq);
return;
log::warn!("Got empty read!");
// Ugly hack made to wait for next byte
let mut one_byte_buff: [u8; 1] = [0; 1];
match read_half.read_exact(&mut one_byte_buff).await {
Ok(b) => {
if b == 0 {
log::error!("Did not get a byte !");
let _ = addr.send(CloseWebSocketReq).await;
break;
}
buff[0] = one_byte_buff[0];
l = 1;
}
Err(e) => {
log::error!("Failed to read 1 BYTE from remote socket. Stopping now... {:?}", e);
break;
}
}
}
let to_send = SendBytesReq(Vec::from(&buff[0..l]));