From bfdd7a0a76c5a5a62eaa66c71d56b9ce546f54db Mon Sep 17 00:00:00 2001 From: CherretGit Date: Fri, 31 Oct 2025 02:38:47 +0700 Subject: [PATCH 1/3] fix service status --- rust/crates/zaprett/src/main.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rust/crates/zaprett/src/main.rs b/rust/crates/zaprett/src/main.rs index 4b994e7..5a97b72 100644 --- a/rust/crates/zaprett/src/main.rs +++ b/rust/crates/zaprett/src/main.rs @@ -303,11 +303,19 @@ fn get_autostart() { } fn service_status() -> bool { + let pid_str = match fs::read_to_string(MODULE_PATH.join("tmp/pid.lock")) { + Ok(s) => s, + Err(_) => return false, + }; + let pid = match pid_str.trim().parse::() { + Ok(p) => p, + Err(_) => return false, + }; match all_processes() { Ok(iter) => iter .filter_map(|rp| rp.ok()) .filter_map(|p| p.stat().ok()) - .any(|st| st.comm == "zaprett"), + .any(|st| st.pid == pid), Err(_) => false, } } From 1d9a8a641f0ead1fa88712cced8ecadb07e6aaaa Mon Sep 17 00:00:00 2001 From: white Date: Fri, 31 Oct 2025 12:45:41 +0300 Subject: [PATCH 2/3] removing procfs, adding iptables crate as submodule --- .gitmodules | 3 + rust/Cargo.lock | 289 -------------------------------- rust/Cargo.toml | 2 - rust/crates/iptables | 1 + rust/crates/zaprett/Cargo.toml | 4 +- rust/crates/zaprett/src/main.rs | 6 +- 6 files changed, 8 insertions(+), 297 deletions(-) create mode 160000 rust/crates/iptables diff --git a/.gitmodules b/.gitmodules index 4fcbc24..93a7107 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "rust/crates/libnfqws/zapret"] path = rust/crates/libnfqws/zapret url = https://github.com/bol-van/zapret.git +[submodule "rust/crates/iptables"] + path = rust/crates/iptables + url = https://github.com/yaa110/rust-iptables diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 4fac1a6..65a5567 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -2,12 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - [[package]] name = "aho-corasick" version = "1.1.4" @@ -17,15 +11,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - [[package]] name = "anstream" version = "0.6.21" @@ -82,12 +67,6 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - [[package]] name = "bindgen" version = "0.72.1" @@ -114,12 +93,6 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" -[[package]] -name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - [[package]] name = "byteorder" version = "1.5.0" @@ -163,17 +136,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "num-traits", - "windows-link", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -251,21 +213,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - [[package]] name = "crunchy" version = "0.2.4" @@ -321,32 +268,12 @@ dependencies = [ "termcolor", ] -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "find-msvc-tools" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" -[[package]] -name = "flate2" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "getrandom" version = "0.2.16" @@ -382,47 +309,15 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - [[package]] name = "humantime" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" -[[package]] -name = "iana-time-zone" -version = "0.1.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - [[package]] name = "iptables" version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30c9a636a0a728c67d1d420471c99b215708a17c222bb9afb16d0821e2d80d8" dependencies = [ "lazy_static", "regex", @@ -460,16 +355,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" -[[package]] -name = "js-sys" -version = "0.3.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -502,12 +387,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - [[package]] name = "lock_api" version = "0.4.14" @@ -535,16 +414,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - [[package]] name = "mio" version = "1.1.0" @@ -578,15 +447,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -667,30 +527,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "procfs" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" -dependencies = [ - "bitflags", - "chrono", - "flate2", - "procfs-core", - "rustix", -] - -[[package]] -name = "procfs-core" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" -dependencies = [ - "bitflags", - "chrono", - "hex", -] - [[package]] name = "quote" version = "1.0.41" @@ -754,25 +590,6 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" -[[package]] -name = "rustix" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - [[package]] name = "ryu" version = "1.0.20" @@ -852,12 +669,6 @@ dependencies = [ "libc", ] -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - [[package]] name = "smallvec" version = "1.15.1" @@ -999,51 +810,6 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasm-bindgen" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" -dependencies = [ - "unicode-ident", -] - [[package]] name = "winapi-util" version = "0.1.11" @@ -1053,65 +819,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.60.2" @@ -1207,9 +920,7 @@ dependencies = [ "libnfqws", "log", "nix", - "once_cell", "pretty_env_logger", - "procfs", "regex", "rust-ini", "serde", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 8073db2..27c2891 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -10,9 +10,7 @@ resolver = "3" [workspace.dependencies] anyhow = "1.0.100" clap = { version = "4.5.50", features = ["derive"] } -iptables = "0.6.0" libc = "0.2.177" -procfs = "0.18.0" regex = "1.12.2" rust-ini = "0.21.3" serde = { version = "1.0.228", features = ["derive"] } diff --git a/rust/crates/iptables b/rust/crates/iptables new file mode 160000 index 0000000..e0e1f5d --- /dev/null +++ b/rust/crates/iptables @@ -0,0 +1 @@ +Subproject commit e0e1f5dcc02023dbd162940af1b2f5159677dbd7 diff --git a/rust/crates/zaprett/Cargo.toml b/rust/crates/zaprett/Cargo.toml index dd3d4d2..3b2924c 100644 --- a/rust/crates/zaprett/Cargo.toml +++ b/rust/crates/zaprett/Cargo.toml @@ -7,16 +7,14 @@ repository.workspace = true [dependencies] anyhow = { workspace = true } clap = { workspace = true } -iptables = { workspace = true } +iptables = { path = "../iptables" } libc = { workspace = true } -procfs = { workspace = true } regex = { workspace = true } rust-ini = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } sysctl ={ workspace = true } tokio = { workspace = true } -once_cell = { workspace = true } libnfqws = { path = "../libnfqws" } daemonize = { workspace = true } pretty_env_logger = { workspace = true } diff --git a/rust/crates/zaprett/src/main.rs b/rust/crates/zaprett/src/main.rs index 5a97b72..d5fe144 100644 --- a/rust/crates/zaprett/src/main.rs +++ b/rust/crates/zaprett/src/main.rs @@ -6,7 +6,6 @@ use libnfqws::nfqws_main; use log::{error, info}; use nix::sys::signal::{Signal, kill}; use nix::unistd::{Pid, Uid}; -use procfs::process::all_processes; use regex::Regex; use serde::{Deserialize, Serialize}; use std::ffi::CString; @@ -311,13 +310,14 @@ fn service_status() -> bool { Ok(p) => p, Err(_) => return false, }; - match all_processes() { + return true + /*match all_processes() { Ok(iter) => iter .filter_map(|rp| rp.ok()) .filter_map(|p| p.stat().ok()) .any(|st| st.pid == pid), Err(_) => false, - } + }*/ } fn module_version() { From 8542d33af2af94dbfef9a3f332b23500b313248e Mon Sep 17 00:00:00 2001 From: white Date: Fri, 31 Oct 2025 13:01:12 +0300 Subject: [PATCH 3/3] create patch for workflow --- rust/remove_os_check.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 rust/remove_os_check.patch diff --git a/rust/remove_os_check.patch b/rust/remove_os_check.patch new file mode 100644 index 0000000..b34a2af --- /dev/null +++ b/rust/remove_os_check.patch @@ -0,0 +1,19 @@ +diff --git a/crates/iptables/src/lib.rs b/crates/iptables/src/lib.rs +index 4a4d6dc..e7d15fc 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -92,14 +92,6 @@ pub struct IPTables { + pub is_numeric: bool, + } + +-/// Returns `None` because iptables only works on linux +-#[cfg(not(target_os = "linux"))] +-pub fn new(is_ipv6: bool) -> Result> { +- Err(error_from_str("iptables only works on Linux")) +-} +- +-/// Creates a new `IPTables` Result with the command of 'iptables' if `is_ipv6` is `false`, otherwise the command is 'ip6tables'. +-#[cfg(target_os = "linux")] + pub fn new(is_ipv6: bool) -> Result> { + let cmd = if is_ipv6 { "ip6tables" } else { "iptables" }; +