From 82439459704fe9eecb740898cfec90b738e3d68b Mon Sep 17 00:00:00 2001 From: Aram Peres Date: Fri, 15 Oct 2021 18:55:41 -0400 Subject: [PATCH] Send IP packet to WireGuard asynchronously --- src/virtual_device.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/virtual_device.rs b/src/virtual_device.rs index 669980b..97aa267 100644 --- a/src/virtual_device.rs +++ b/src/virtual_device.rs @@ -77,12 +77,14 @@ impl smoltcp::phy::TxToken for TxToken { let mut buffer = Vec::new(); buffer.resize(len, 0); let result = f(&mut buffer); - match futures::executor::block_on(self.wg.send_ip_packet(&buffer)) { - Ok(_) => {} - Err(e) => { - error!("Failed to send IP packet to WireGuard endpoint: {:?}", e); + tokio::spawn(async move { + match self.wg.send_ip_packet(&buffer).await { + Ok(_) => {} + Err(e) => { + error!("Failed to send IP packet to WireGuard endpoint: {:?}", e); + } } - } + }); result } }