fix: more cleaning up for FreeBSD
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "sparse-05-client"
|
||||
version = "0.5.0"
|
||||
version = "0.7.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
@@ -12,7 +12,7 @@ libc = "0.2.147"
|
||||
rand = "0.7"
|
||||
rmp-serde = "1.1.2"
|
||||
serde = { version = "1.0.188", features = ["derive"] }
|
||||
sparse-05-common = { version = "0.1.0", path = "../sparse-05-common" }
|
||||
sparse-05-common = { version = "0.7.0", path = "../sparse-05-common" }
|
||||
structopt = { version = "0.3.26", features = ["paw"] }
|
||||
tempfile = "3.8.0"
|
||||
tokio = { version = "1.32.0", features = ["full"] }
|
||||
|
||||
@@ -10,6 +10,7 @@ pub fn print_capabilities(capabilities: &Capabilities, ip: &IpAddr) {
|
||||
"\tOperating system: \t{}",
|
||||
match &capabilities.operating_system {
|
||||
OperatingSystem::Linux => "Linux",
|
||||
OperatingSystem::FreeBSD => "FreeBSD",
|
||||
OperatingSystem::Windows => "Windows",
|
||||
}
|
||||
);
|
||||
@@ -57,7 +58,7 @@ pub fn print_capabilities(capabilities: &Capabilities, ip: &IpAddr) {
|
||||
}
|
||||
);
|
||||
}
|
||||
OperatingSystem::Windows => {
|
||||
OperatingSystem::Windows | OperatingSystem::FreeBSD => {
|
||||
println!(
|
||||
"\tAdmin user: \t\t{}",
|
||||
match capabilities.root {
|
||||
|
||||
@@ -26,6 +26,7 @@ impl std::str::FromStr for TargetOs {
|
||||
fn from_str(input: &str) -> Result<Self, Self::Err> {
|
||||
match input {
|
||||
"linux" => Ok(Self::Linux),
|
||||
"freebsd" => Ok(Self::FreeBSD),
|
||||
"windows" => Ok(Self::Windows),
|
||||
"windows-service" => Ok(Self::WindowsService),
|
||||
_ => Err("could not parse target operating system"),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "sparse-05-common"
|
||||
version = "0.1.0"
|
||||
version = "0.7.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "sparse-05-server"
|
||||
version = "0.5.0"
|
||||
version = "0.7.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
@@ -13,7 +13,7 @@ libc = { version = "0.2.147" }
|
||||
serde = { version = "1.0.188", features = ["derive"] }
|
||||
rmp-serde = "1.1.2"
|
||||
catconf = "0.1.2"
|
||||
sparse-05-common = { version = "0.1.0", path = "../sparse-05-common" }
|
||||
sparse-05-common = { version = "0.7.0", path = "../sparse-05-common" }
|
||||
ecies-ed25519 = { version = "0.5.1", features = ["serde"] }
|
||||
packets = { path = "../../packets" }
|
||||
pcap-sys = { path = "../../pcap-sys", optional = true }
|
||||
|
||||
@@ -34,7 +34,7 @@ impl Interface {
|
||||
.ok_or(anyhow!("could not get an ethernet interface"))?
|
||||
} else {
|
||||
interfaces
|
||||
.find(|eth| eth.starts_with("eth") || eth.starts_with("en"))
|
||||
.find(|eth| eth.starts_with("eth") || eth.starts_with("en") || eth.starts_with("vtnet") || eth.starts_with("vmx"))
|
||||
.ok_or(anyhow!("could not get an ethernet interface"))?
|
||||
};
|
||||
|
||||
@@ -57,27 +57,24 @@ impl Interface {
|
||||
}};
|
||||
}
|
||||
|
||||
log::debug!("opening interface {interface_name}...");
|
||||
let mut interface = retry!(pcap_sys::Interface::<pcap_sys::DevDisabled>::new(
|
||||
&interface_name
|
||||
));
|
||||
|
||||
retry!(interface.set_buffer_size(1024));
|
||||
retry!(interface.set_buffer_size(2048));
|
||||
retry!(interface.set_non_blocking(false));
|
||||
retry!(interface.set_promisc(false));
|
||||
retry!(interface.set_timeout(10));
|
||||
|
||||
log::debug!("Configured raw listener interface");
|
||||
|
||||
let interface = retry!(interface.activate());
|
||||
|
||||
log::debug!("Activated raw listener interface");
|
||||
|
||||
if cfg!(windows) {
|
||||
retry!(interface.set_filter(&format!("udp port {port}"), true, None));
|
||||
} else {
|
||||
log::debug!("setting pcap filter");
|
||||
if cfg!(linux) {
|
||||
retry!(interface.set_filter(&format!("inbound and udp port {port}"), true, None));
|
||||
} else {
|
||||
retry!(interface.set_filter(&format!("udp port {port}"), true, None));
|
||||
}
|
||||
|
||||
log::debug!("Updated filter for listener interface");
|
||||
|
||||
if interface.datalink() != pcap_sys::consts::DLT_EN10MB {
|
||||
|
||||
Reference in New Issue
Block a user