aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2022-11-01 21:44:22 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2022-11-01 21:44:22 +0100
commit5e827e178ae7b9d7c71d34fa27870f05441f3fc0 (patch)
treea13e9734c7eccbd22f8214fa9709c32d65be6d3b
parent96511706bbe5a2a441302f62987ac767fbb7a263 (diff)
don't check for address change in push function
-rw-r--r--src/main.rs132
1 files changed, 62 insertions, 70 deletions
diff --git a/src/main.rs b/src/main.rs
index 0aef619..73c0d89 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -337,33 +337,29 @@ fn monitor_net6(config: Arc<Config>, tx: mpsc::Sender<Ipv6Net>) -> Result<()> {
}
fn push_addr4(config: Arc<Config>, rx: &mpsc::Receiver<Ipv4Net>) -> Result<()> {
- let mut last_address = None;
loop {
let address = rx.recv()?;
- if last_address.is_none() || address != last_address.unwrap() {
- let user = config.user.clone();
- let pass = config.pass.clone();
- let clt = Client::login(Endpoint::Sandbox, user, pass)?;
+ let user = config.user.clone();
+ let pass = config.pass.clone();
- clt.call(RecordUpdate {
- ids: config.records_addr4.clone(),
- name: None,
- record_type: Some(RecordType::A),
- content: Some(address.addr().to_string()),
- ttl: Some(300),
- priority: None,
- url_rdr_type: None,
- url_rdr_title: None,
- url_rdr_desc: None,
- url_rdr_keywords: None,
- url_rdr_favicon: None,
- url_append: None,
- testing_mode: false,
- })?;
+ let clt = Client::login(Endpoint::Sandbox, user, pass)?;
- last_address = Some(address);
- }
+ clt.call(RecordUpdate {
+ ids: config.records_addr4.clone(),
+ name: None,
+ record_type: Some(RecordType::A),
+ content: Some(address.addr().to_string()),
+ ttl: Some(300),
+ priority: None,
+ url_rdr_type: None,
+ url_rdr_title: None,
+ url_rdr_desc: None,
+ url_rdr_keywords: None,
+ url_rdr_favicon: None,
+ url_append: None,
+ testing_mode: false,
+ })?;
}
}
@@ -395,62 +391,58 @@ fn push_addr6(config: Arc<Config>, rx: &mpsc::Receiver<Ipv6Net>) -> Result<()> {
}
fn push_net6(config: Arc<Config>, rx: &mpsc::Receiver<Ipv6Net>) -> Result<()> {
- let mut last_prefix = None;
loop {
let prefix = rx.recv()?;
- if last_prefix.is_none() || prefix != last_prefix.unwrap() {
- let user = config.user.clone();
- let pass = config.pass.clone();
-
- let clt = Client::login(Endpoint::Sandbox, user, pass)?;
-
- let mut total_records = Vec::new();
- for id in &config.records_net6 {
- let info: RecordInfoResponse = clt
- .call(RecordInfoCall {
- domain_name: None,
- domain_id: None,
- record_id: Some(*id),
- record_type: Some(RecordType::Aaaa),
- name: None,
- content: None,
- ttl: None,
- priority: None,
- })?
- .try_into()?;
-
- let mut records = info
- .records
- .expect("no AAAA records (this should never happen");
-
- total_records.append(&mut records);
- }
- for record in total_records {
- let address = Ipv6Addr::from_str(&record.content)?;
+ let user = config.user.clone();
+ let pass = config.pass.clone();
- // Get the interface identifier.
- let if_id = address.bitand(prefix.hostmask());
- let new = prefix.addr().bitor(if_id);
+ let clt = Client::login(Endpoint::Sandbox, user, pass)?;
- clt.call(RecordUpdate {
- ids: vec![record.id],
- name: None,
+ let mut total_records = Vec::new();
+ for id in &config.records_net6 {
+ let info: RecordInfoResponse = clt
+ .call(RecordInfoCall {
+ domain_name: None,
+ domain_id: None,
+ record_id: Some(*id),
record_type: Some(RecordType::Aaaa),
- content: Some(new.to_string()),
- ttl: Some(300),
+ name: None,
+ content: None,
+ ttl: None,
priority: None,
- url_rdr_type: None,
- url_rdr_title: None,
- url_rdr_desc: None,
- url_rdr_keywords: None,
- url_rdr_favicon: None,
- url_append: None,
- testing_mode: false,
- })?;
- }
+ })?
+ .try_into()?;
+
+ let mut records = info
+ .records
+ .expect("no AAAA records (this should never happen");
+
+ total_records.append(&mut records);
+ }
+
+ for record in total_records {
+ let address = Ipv6Addr::from_str(&record.content)?;
- last_prefix = Some(prefix);
+ // Get the interface identifier.
+ let if_id = address.bitand(prefix.hostmask());
+ let new = prefix.addr().bitor(if_id);
+
+ clt.call(RecordUpdate {
+ ids: vec![record.id],
+ name: None,
+ record_type: Some(RecordType::Aaaa),
+ content: Some(new.to_string()),
+ ttl: Some(300),
+ priority: None,
+ url_rdr_type: None,
+ url_rdr_title: None,
+ url_rdr_desc: None,
+ url_rdr_keywords: None,
+ url_rdr_favicon: None,
+ url_append: None,
+ testing_mode: false,
+ })?;
}
}
}