diff --git a/src/client.rs b/src/client.rs index 0d5928a..f1bf400 100644 --- a/src/client.rs +++ b/src/client.rs @@ -57,11 +57,12 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32, env: &JNIE let llltx = ltx.clone(); tokio::spawn(async move { let mut buf = vec![0; 1400]; // mtu - while let Ok(n) = dev_reader.read(&mut buf) { - llltx.send("Read from tun.".as_bytes().to_vec()); - dx.send(buf[..n].to_vec()).unwrap(); + loop { + if let Ok(n) = dev_reader.read(&mut buf) { + llltx.send("Read from tun.".as_bytes().to_vec()); + dx.send(buf[..n].to_vec()).unwrap(); + } } - llltx.send("Read from tun has ended.".as_bytes().to_vec()); }); let priv_key = BASE64_STANDARD.decode(client_config.client.private_key).unwrap();