Compare commits
No commits in common. "98ce57bba0c053ee015bc91bc49dbcb6fb28b47a" and "0fe630878dd9ea236c4daa09575cf5563c67e79c" have entirely different histories.
98ce57bba0
...
0fe630878d
7 changed files with 2 additions and 186 deletions
133
Cargo.lock
generated
133
Cargo.lock
generated
|
|
@ -956,20 +956,6 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "handlebars"
|
|
||||||
version = "3.5.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3"
|
|
||||||
dependencies = [
|
|
||||||
"log",
|
|
||||||
"pest",
|
|
||||||
"pest_derive",
|
|
||||||
"quick-error",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.12.3"
|
version = "0.12.3"
|
||||||
|
|
@ -1173,22 +1159,6 @@ dependencies = [
|
||||||
"yaml-rust",
|
"yaml-rust",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "interfaces"
|
|
||||||
version = "0.0.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "bb6250a98af259a26fd5a4a6081fccea9ac116e4c3178acf4aeb86d32d2b7715"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.4.2",
|
|
||||||
"cc",
|
|
||||||
"handlebars",
|
|
||||||
"lazy_static",
|
|
||||||
"libc",
|
|
||||||
"nix 0.26.4",
|
|
||||||
"serde",
|
|
||||||
"serde_derive",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ip_network"
|
name = "ip_network"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
|
|
@ -1446,43 +1416,6 @@ dependencies = [
|
||||||
"tempfile",
|
"tempfile",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "netlink-packet-core"
|
|
||||||
version = "0.7.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"byteorder",
|
|
||||||
"netlink-packet-utils",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "netlink-packet-route"
|
|
||||||
version = "0.19.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "74c171cd77b4ee8c7708da746ce392440cb7bcf618d122ec9ecc607b12938bf4"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"byteorder",
|
|
||||||
"libc",
|
|
||||||
"log",
|
|
||||||
"netlink-packet-core",
|
|
||||||
"netlink-packet-utils",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "netlink-packet-utils"
|
|
||||||
version = "0.5.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"byteorder",
|
|
||||||
"paste",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nix"
|
name = "nix"
|
||||||
version = "0.26.4"
|
version = "0.26.4"
|
||||||
|
|
@ -1658,12 +1591,6 @@ dependencies = [
|
||||||
"subtle",
|
"subtle",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "paste"
|
|
||||||
version = "1.0.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pbkdf2"
|
name = "pbkdf2"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
|
|
@ -1688,51 +1615,6 @@ version = "2.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pest"
|
|
||||||
version = "2.7.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8"
|
|
||||||
dependencies = [
|
|
||||||
"memchr",
|
|
||||||
"thiserror",
|
|
||||||
"ucd-trie",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pest_derive"
|
|
||||||
version = "2.7.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026"
|
|
||||||
dependencies = [
|
|
||||||
"pest",
|
|
||||||
"pest_generator",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pest_generator"
|
|
||||||
version = "2.7.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80"
|
|
||||||
dependencies = [
|
|
||||||
"pest",
|
|
||||||
"pest_meta",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn 2.0.48",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pest_meta"
|
|
||||||
version = "2.7.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293"
|
|
||||||
dependencies = [
|
|
||||||
"once_cell",
|
|
||||||
"pest",
|
|
||||||
"sha2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project"
|
name = "pin-project"
|
||||||
version = "1.1.4"
|
version = "1.1.4"
|
||||||
|
|
@ -1851,12 +1733,6 @@ dependencies = [
|
||||||
"prost",
|
"prost",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quick-error"
|
|
||||||
version = "2.0.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.35"
|
version = "1.0.35"
|
||||||
|
|
@ -2653,13 +2529,10 @@ dependencies = [
|
||||||
"byteorder",
|
"byteorder",
|
||||||
"fehler",
|
"fehler",
|
||||||
"futures",
|
"futures",
|
||||||
"interfaces",
|
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"libc",
|
"libc",
|
||||||
"libloading 0.7.4",
|
"libloading 0.7.4",
|
||||||
"log",
|
"log",
|
||||||
"netlink-packet-core",
|
|
||||||
"netlink-packet-route",
|
|
||||||
"nix 0.26.4",
|
"nix 0.26.4",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"schemars",
|
"schemars",
|
||||||
|
|
@ -2680,12 +2553,6 @@ version = "1.17.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ucd-trie"
|
|
||||||
version = "0.1.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-bidi"
|
name = "unicode-bidi"
|
||||||
version = "0.3.15"
|
version = "0.3.15"
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,6 @@ impl DaemonInstance {
|
||||||
}
|
}
|
||||||
RunState::Idle => {
|
RunState::Idle => {
|
||||||
let tun_if = st.tun.open()?;
|
let tun_if = st.tun.open()?;
|
||||||
tun_if.set_up(true)?;
|
|
||||||
|
|
||||||
debug!("Setting tun on wg_interface");
|
debug!("Setting tun on wg_interface");
|
||||||
self.wg_interface.read().await.set_tun(tun_if).await;
|
self.wg_interface.read().await.set_tun(tun_if).await;
|
||||||
debug!("tun set on wg_interface");
|
debug!("tun set on wg_interface");
|
||||||
|
|
@ -61,6 +59,7 @@ impl DaemonInstance {
|
||||||
self.tun_interface = self.wg_interface.read().await.get_tun();
|
self.tun_interface = self.wg_interface.read().await.get_tun();
|
||||||
debug!("tun_interface set: {:?}", self.tun_interface);
|
debug!("tun_interface set: {:?}", self.tun_interface);
|
||||||
|
|
||||||
|
|
||||||
debug!("Cloning wg_interface");
|
debug!("Cloning wg_interface");
|
||||||
let tmp_wg = self.wg_interface.clone();
|
let tmp_wg = self.wg_interface.clone();
|
||||||
debug!("wg_interface cloned");
|
debug!("wg_interface cloned");
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,6 @@ serde = { version = "1", features = ["derive"], optional = true }
|
||||||
schemars = { version = "0.8", optional = true }
|
schemars = { version = "0.8", optional = true }
|
||||||
|
|
||||||
futures = { version = "0.3.28", optional = true }
|
futures = { version = "0.3.28", optional = true }
|
||||||
netlink-packet-route = "0.19.0"
|
|
||||||
netlink-packet-core = "0.7.0"
|
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
serde = ["dep:serde", "dep:schemars"]
|
serde = ["dep:serde", "dep:schemars"]
|
||||||
|
|
@ -27,9 +24,6 @@ tokio = ["tokio/net", "dep:futures"]
|
||||||
[target.'cfg(feature = "tokio")'.dev-dependencies]
|
[target.'cfg(feature = "tokio")'.dev-dependencies]
|
||||||
tokio = { features = ["rt", "macros"] }
|
tokio = { features = ["rt", "macros"] }
|
||||||
|
|
||||||
[target.'cfg(target_os = "linux")'.dependencies]
|
|
||||||
interfaces = "0.0.9"
|
|
||||||
|
|
||||||
[target.'cfg(windows)'.dependencies]
|
[target.'cfg(windows)'.dependencies]
|
||||||
lazy_static = "1.4"
|
lazy_static = "1.4"
|
||||||
libloading = "0.7"
|
libloading = "0.7"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
||||||
use tokio::io::unix::{AsyncFd, TryIoError};
|
use tokio::io::unix::AsyncFd;
|
||||||
use tracing::instrument;
|
use tracing::instrument;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
|
@ -15,11 +15,6 @@ impl TunInterface {
|
||||||
Ok(Self { inner: AsyncFd::new(tun)? })
|
Ok(Self { inner: AsyncFd::new(tun)? })
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument]
|
|
||||||
pub fn set_up(&self, up: bool) -> io::Result<()> {
|
|
||||||
self.inner.get_ref().set_up(up)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[instrument]
|
#[instrument]
|
||||||
pub async fn send(&self, buf: &[u8]) -> io::Result<usize> {
|
pub async fn send(&self, buf: &[u8]) -> io::Result<usize> {
|
||||||
loop {
|
loop {
|
||||||
|
|
|
||||||
|
|
@ -247,10 +247,4 @@ impl TunInterface {
|
||||||
.try_into()
|
.try_into()
|
||||||
.map_err(|_| Error::new(ErrorKind::Other, "Conversion error"))?
|
.map_err(|_| Error::new(ErrorKind::Other, "Conversion error"))?
|
||||||
}
|
}
|
||||||
|
|
||||||
#[throws]
|
|
||||||
#[instrument]
|
|
||||||
pub fn set_up(&self, up: bool) {
|
|
||||||
tracing::warn!("Setting tun up is not supported yet on apple.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -95,24 +95,6 @@ impl TunInterface {
|
||||||
unsafe { iff.ifr_ifru.ifru_ifindex }
|
unsafe { iff.ifr_ifru.ifru_ifindex }
|
||||||
}
|
}
|
||||||
|
|
||||||
#[throws]
|
|
||||||
#[instrument]
|
|
||||||
pub fn set_up(&self, up: bool) {
|
|
||||||
let mut inter = interfaces::Interface::get_by_name(&self.name()?)
|
|
||||||
.unwrap()
|
|
||||||
.unwrap();
|
|
||||||
inter.set_up(up).unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
#[throws]
|
|
||||||
#[instrument]
|
|
||||||
pub fn is_up(&self) -> bool {
|
|
||||||
let inter = interfaces::Interface::get_by_name(&self.name()?)
|
|
||||||
.unwrap()
|
|
||||||
.unwrap();
|
|
||||||
inter.is_up()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[throws]
|
#[throws]
|
||||||
#[instrument]
|
#[instrument]
|
||||||
pub fn set_ipv4_addr(&self, addr: Ipv4Addr) {
|
pub fn set_ipv4_addr(&self, addr: Ipv4Addr) {
|
||||||
|
|
|
||||||
|
|
@ -24,21 +24,6 @@ fn test_set_get_broadcast_addr() {
|
||||||
assert_eq!(broadcast_addr, result);
|
assert_eq!(broadcast_addr, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
#[throws]
|
|
||||||
#[cfg(not(any(target_os = "windows", target_vendor = "apple")))]
|
|
||||||
fn test_set_get_up() {
|
|
||||||
let tun = TunInterface::new()?;
|
|
||||||
let addr = Ipv4Addr::new(10, 0, 0, 1);
|
|
||||||
tun.set_ipv4_addr(addr)?;
|
|
||||||
|
|
||||||
let broadcast_addr = Ipv4Addr::new(255, 255, 255, 0);
|
|
||||||
tun.set_broadcast_addr(broadcast_addr)?;
|
|
||||||
tun.set_up(true)?;
|
|
||||||
|
|
||||||
assert!(tun.is_up()?);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[throws]
|
#[throws]
|
||||||
#[cfg(not(target_os = "windows"))]
|
#[cfg(not(target_os = "windows"))]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue