From e71d8f7cd42d08edb0acb71407358f442ccebd34 Mon Sep 17 00:00:00 2001 From: Paul Lecuq Date: Mon, 16 Jan 2023 00:38:35 +0100 Subject: [PATCH] fixed update_blocklist function --- src/config.rs | 25 +++++++++++++++---------- src/ipblc.rs | 1 - 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/config.rs b/src/config.rs index 0fe6034..9b4394b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -172,25 +172,30 @@ impl Context { pub async fn update_blocklist(&mut self, ipevent: &IpEvent) -> Option { match self.cfg.sets.get(&ipevent.ipdata.src) { Some(set) => { - if self.blocklist.contains_key(&ipevent.ipdata.ip) - && self.hostname == ipevent.hostname - && ipevent.mode == "file".to_string() - { - let mut block = self.blocklist.get_mut(&ipevent.ipdata.ip).unwrap(); + let starttime = DateTime::parse_from_rfc3339(ipevent.ipdata.date.as_str()) + .unwrap() + .with_timezone(&chrono::Local); + let blocktime = set.blocktime; + if ipevent.mode == "file".to_string() && self.hostname == ipevent.hostname { + let mut block = self + .blocklist + .entry(ipevent.ipdata.ip.to_string()) + .or_insert(BlockIpData { + ipdata: ipevent.ipdata.clone(), + tryfail: 0, + starttime, + blocktime, + }); block.tryfail += 1; if block.tryfail >= set.tryfail { return Some(ipevent.clone()); } } else { - let starttime = DateTime::parse_from_rfc3339(ipevent.ipdata.date.as_str()) - .unwrap() - .with_timezone(&chrono::Local); - let blocktime = set.blocktime; self.blocklist .entry(ipevent.ipdata.ip.to_string()) .or_insert(BlockIpData { ipdata: ipevent.ipdata.clone(), - tryfail: 0, + tryfail: set.tryfail, starttime, blocktime, }); diff --git a/src/ipblc.rs b/src/ipblc.rs index 1b6ecc4..b050375 100644 --- a/src/ipblc.rs +++ b/src/ipblc.rs @@ -100,7 +100,6 @@ pub async fn run() { // send ip list to ws and zmq sockets if let Some(ipevent) = filtered_ipevent { - println!("{}",ipevent.ipdata); if received_ip.msgtype != "init" { println!("sending {} to ws and zmq", ipevent.ipdata.ip); let event = IpEvent{