modified: Cargo.lock

modified:   frida_core/src/linux_tun.rs
This commit is contained in:
Michael Wain 2024-12-11 05:11:41 +03:00
parent 557a5a1558
commit c3292a3f47
2 changed files with 37 additions and 6 deletions

13
Cargo.lock generated
View File

@ -1683,6 +1683,7 @@ dependencies = [
"env_logger",
"frida_core",
"log",
"network-interface",
"tokio",
"tokio-util",
"x25519-dalek",
@ -2805,6 +2806,18 @@ dependencies = [
"jni-sys",
]
[[package]]
name = "network-interface"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "433419f898328beca4f2c6c73a1b52540658d92b0a99f0269330457e0fd998d5"
dependencies = [
"cc",
"libc",
"thiserror 1.0.69",
"winapi",
]
[[package]]
name = "nix"
version = "0.29.0"

View File

@ -7,13 +7,31 @@ use crate::device::AbstractDevice;
use log::info;
pub fn create(cfg: AbstractDevice) -> (DeviceReader, DeviceWriter) {
let builder = Tun::builder();
if cfg.tun_name.is_some() {
builder.name(&cfg.tun_name.unwrap());
}
if cfg.mtu.is_some() {
builder.mtu(cfg.mtu.unwrap().into());
}
if cfg.address.is_some() {
builder.address(cfg.address.unwrap());
}
if cfg.netmask.is_some() {
builder.netmask(cfg.netmask.unwrap());
}
if cfg.destination.is_some() {
builder.destination(cfg.destination.unwrap());
}
let tun = Arc::new(
Tun::builder()
.name(&cfg.tun_name.unwrap()) // if name is empty, then it is set by kernel.
.mtu(cfg.mtu.unwrap().into())
.address(cfg.address.unwrap())
.netmask(cfg.netmask.unwrap())
.destination(cfg.destination.unwrap())
builder
.up() // or set it up manually using `sudo ip link set <tun-name> up`.
.try_build() // or `.try_build_mq(queues)` for multi-queue support.
.unwrap(),