Lower timeout interval

This commit is contained in:
Jett Chen 2023-11-29 21:56:57 +08:00
parent 4dd31d5f1e
commit d012ca144c
4 changed files with 10 additions and 13 deletions

View file

@ -47,7 +47,7 @@ pub async fn daemon_main() -> Result<()> {
let mut _tun = tun::TunInterface::new()?; let mut _tun = tun::TunInterface::new()?;
_tun.set_ipv4_addr(Ipv4Addr::from([192, 168, 1, 10]))?; _tun.set_ipv4_addr(Ipv4Addr::from([192, 168, 1, 10]))?;
_tun.set_timeout(Some(std::time::Duration::from_secs(1)))?; _tun.set_timeout(Some(std::time::Duration::from_millis(10)))?;
let tun = tun::tokio::TunInterface::new(_tun)?; let tun = tun::tokio::TunInterface::new(_tun)?;
let private_key = parse_secret_key("GNqIAOCRxjl/cicZyvkvpTklgQuUmGUIEkH7IXF/sEE=")?; let private_key = parse_secret_key("GNqIAOCRxjl/cicZyvkvpTklgQuUmGUIEkH7IXF/sEE=")?;

View file

@ -101,12 +101,12 @@ impl Interface {
let outgoing = async move { let outgoing = async move {
loop { loop {
log::debug!("starting loop..."); // log::debug!("starting loop...");
let mut buf = [0u8; 3000]; let mut buf = [0u8; 3000];
let src = { let src = {
log::debug!("awaiting read..."); // log::debug!("awaiting read...");
let src = match timeout(Duration::from_secs(2), tun.write().await.recv(&mut buf[..])).await { let src = match timeout(Duration::from_millis(10), tun.write().await.recv(&mut buf[..])).await {
Ok(Ok(len)) => &buf[..len], Ok(Ok(len)) => &buf[..len],
Ok(Err(e)) => {continue} Ok(Err(e)) => {continue}
Err(_would_block) => { Err(_would_block) => {

View file

@ -68,15 +68,15 @@ impl PeerPcb {
let rid: i32 = random(); let rid: i32 = random();
log::debug!("start read loop {}", rid); log::debug!("start read loop {}", rid);
loop{ loop{
log::debug!("{}: waiting for packet", rid); // log::debug!("{}: waiting for packet", rid);
let Some(socket) = &self.socket else { let Some(socket) = &self.socket else {
continue continue
}; };
let mut res_buf = [0;1500]; let mut res_buf = [0;1500];
log::debug!("{} : waiting for readability on {:?}", rid, socket); // log::debug!("{} : waiting for readability on {:?}", rid, socket);
match timeout(Duration::from_secs(2), socket.readable()).await { match timeout(Duration::from_millis(10), socket.readable()).await {
Err(e) => { Err(e) => {
log::debug!("{}: timeout waiting for readability on {:?}", rid, e); // log::debug!("{}: timeout waiting for readability on {:?}", rid, e);
continue continue
} }
Ok(Err(e)) => { Ok(Err(e)) => {

View file

@ -30,15 +30,12 @@ impl TunInterface {
// #[instrument] // #[instrument]
pub async fn recv(&mut self, buf: &mut [u8]) -> io::Result<usize> { pub async fn recv(&mut self, buf: &mut [u8]) -> io::Result<usize> {
loop { loop {
log::debug!("TunInterface receiving..."); // log::debug!("TunInterface receiving...");
let mut guard = self.inner.readable_mut().await?; let mut guard = self.inner.readable_mut().await?;
log::debug!("Got! readable_mut"); // log::debug!("Got! readable_mut");
match guard.try_io(|inner| { match guard.try_io(|inner| {
// log::debug!("Got! {:#?}", inner);
let raw_ref = (*inner).get_mut(); let raw_ref = (*inner).get_mut();
// log::debug!("Got mut ref! {:#?}", raw_ref);
let recved = raw_ref.recv(buf); let recved = raw_ref.recv(buf);
// log::debug!("Got recved! {:#?}", recved);
recved recved
}) { }) {
Ok(result) => { Ok(result) => {