modified: frida_core/src/linux_tun.rs

modified:   frida_core/src/main.rs
This commit is contained in:
Michael Wain 2024-12-09 01:57:54 +03:00
parent 32eec5252a
commit a1852140d3
2 changed files with 14 additions and 7 deletions

View File

@ -1,5 +1,8 @@
use std::sync::Arc;
use std::error::Error;
use tokio_tun::Tun;
use std::net::Ipv4Addr;
use std::os::unix::io::AsRawFd;
pub fn create() -> (DeviceReader, DeviceWriter) {
let tun = Arc::new(
@ -14,23 +17,27 @@ pub fn create() -> (DeviceReader, DeviceWriter) {
println!("tun created, name: {}, fd: {}", tun.name(), tun.as_raw_fd());
let (mut reader, mut _writer) = tokio::io::split(tun);
let tun_writer = tun.clone();
(DeviceReader {reader: tun}, DeviceWriter {writer: tun_writer})
}
pub struct DeviceWriter {
writer: Tun
}
pub struct DeviceReader {
reader: Tun
}
impl DeviceWriter {
pub async fn write(&self, buf: &Vec<u8>) -> Result<usize, Box<dyn Error>> {
self.writer.send_all(buf).await
}
}
impl DeviceReader {
pub async fn read(&self, buf: &mut Vec<u8>) -> Result<usize, Box<dyn Error>> {
self.reader.recv(buf).await
}
}

View File

@ -16,7 +16,7 @@ async fn main() {
.filter(None, LevelFilter::Info)
.init();
let (reader, writer) = tun::create_tun();
let (reader, _writer) = tun::create_tun();
let a = tokio::spawn(async move {
let mut buf = Vec::new();
@ -25,11 +25,11 @@ async fn main() {
// info!("We've got {} bytes of data!", c)
let r = reader.read(&mut buf).await;
match r {
Ok(c) => {},
Err(e) => error!("We've got a nasty error message!")
Ok(_c) => {},
Err(_e) => error!("We've got a nasty error message!")
}
}
});
a.await;
let _ = a.await;
}