diff --git a/src/tcp_client.rs b/src/tcp_client.rs index 9885f4a..1a54597 100644 --- a/src/tcp_client.rs +++ b/src/tcp_client.rs @@ -92,7 +92,7 @@ pub async fn client_mode(remote_addr: String) { }); tokio::spawn(async move { - let mut buf = vec![0; 4096]; + let mut buf = vec![0; 8192]; while let Ok(n) = dev_reader.read(&mut buf) { dx.send(buf[..n].to_vec()).unwrap(); } @@ -102,9 +102,9 @@ pub async fn client_mode(remote_addr: String) { let mut buf = vec![0; 4096]; loop { if let Ok(l) = sock_reader.read_u64().await { - buf = vec![0; l.try_into().unwrap()]; - if let Ok(n) = sock_reader.read(&mut buf).await { - info!("Catch from socket"); + buf = vec![0; l as usize]; + if let Ok(n) = sock_reader.read_exact(&mut buf).await { + info!("Catch from socket {:?} | {:?}", l, l as usize); match VpnPacket::deserialize((&buf[..n]).to_vec()) { Ok(vpn_packet) => tx.send(vpn_packet.data).unwrap(), Err(error) => error!("Deserialization error {:?}", error), diff --git a/src/tcp_server.rs b/src/tcp_server.rs index cfd8c4b..8e71fd3 100644 --- a/src/tcp_server.rs +++ b/src/tcp_server.rs @@ -124,11 +124,11 @@ pub async fn server_mode(bind_addr: String) { }); tokio::spawn(async move { - let mut buf = vec![0; 4096]; + let mut buf = vec![0; 8192]; loop { if let Ok(l) = sock_reader.read_u64().await { - buf = vec![0; l.try_into().unwrap()]; - if let Ok(n) = sock_reader.read(&mut buf).await { + buf = vec![0; l as usize]; + if let Ok(n) = sock_reader.read_exact(&mut buf).await { //info!("Catched from sock: {:?}", &buf[..n]); match VpnPacket::deserialize((&buf[..n]).to_vec()) { Ok(vpn_packet) => thread_tx.send(vpn_packet.data).unwrap(),