aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-10-15 14:12:10 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-10-15 14:12:10 +0200
commitf91e40c1fa272e14d3687e1ddeea26f806e93bdf (patch)
treef70ba5aa836df28df85c535a18e45d6802f5001a
parentfdb922be79b7fa02dc7cd0a2e0fb97c75393790a (diff)
config dslite0 on SIGUSR1
-rw-r--r--src/main.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 9b27725..59e5807 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -9,6 +9,8 @@ use rsdsl_ip_config::DsConfig;
use rsdsl_pd_config::PdConfig;
use signal_hook::{consts::SIGUSR1, iterator::Signals};
+const ADDR_AFTR: Ipv4Addr = Ipv4Addr::new(192, 0, 0, 1);
+const ADDR_B4: Ipv4Addr = Ipv4Addr::new(192, 0, 0, 2);
const LINK_LOCAL: Ipv6Addr = Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 1);
fn main() -> Result<()> {
@@ -156,6 +158,24 @@ fn configure_wan() -> Result<()> {
vlan_name, vlan_addr, zone
);
}
+
+ if link::exists("dslite0".to_string())? {
+ link::up("dslite0".to_string())?;
+
+ addr::flush("dslite0".to_string())?;
+ addr::add("dslite0".to_string(), ADDR_B4.into(), 29)?;
+
+ if ds_config.v4.is_none() {
+ route::add4(
+ Ipv4Addr::UNSPECIFIED,
+ 0,
+ Some(ADDR_AFTR),
+ "dslite0".to_string(),
+ )?;
+ }
+
+ println!("[info] config dslite0 {}/29", ADDR_B4);
+ }
}
}
}