summaryrefslogtreecommitdiffhomepage
path: root/src/platform/linux/nftables.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/linux/nftables.rs')
-rw-r--r--src/platform/linux/nftables.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/platform/linux/nftables.rs b/src/platform/linux/nftables.rs
deleted file mode 100644
index 4809000..0000000
--- a/src/platform/linux/nftables.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-// SPDX-FileCopyrightText: 2026 Dilluti0n <[email protected]>
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-use std::sync::atomic::Ordering;
-use anyhow::Result;
-
-use crate::opt;
-use super::{exec_process, INJECT_MARK, IS_U32_SUPPORTED};
-
-const DPIBREAK_TABLE: &str = "dpibreak";
-
-/// Apply nft rules with `nft_command() -f -`.
-fn nft(rule: &str) -> Result<()> {
- crate::info!("nft: {rule}");
- exec_process(&[opt::nft_command(), "-f", "-"], Some(rule))
-}
-
-pub fn install_nft_rules() -> Result<()> {
- let queue_num = opt::queue_num();
- let rule = format!(
- r#"add table inet {DPIBREAK_TABLE}
-add chain inet {DPIBREAK_TABLE} OUTPUT {{ type filter hook output priority 0; policy accept; }}
-add rule inet {DPIBREAK_TABLE} OUTPUT meta mark {INJECT_MARK} return
-add rule inet {DPIBREAK_TABLE} OUTPUT tcp dport 443 @ih,0,8 0x16 @ih,40,8 0x01 queue num {queue_num} bypass"#
- );
- nft(&rule)?;
-
- // clienthello filtered by nft
- IS_U32_SUPPORTED.store(true, Ordering::Relaxed);
-
- Ok(())
-}
-
-pub fn cleanup_nftables_rules() -> Result<()> {
- let rule = format!("delete table inet {DPIBREAK_TABLE}");
- nft(&rule)?;
-
- Ok(())
-}