optimized initialization
This commit is contained in:
		
							parent
							
								
									b66c2ee677
								
							
						
					
					
						commit
						da6ef34b0e
					
				@ -181,15 +181,14 @@ impl Context {
 | 
			
		||||
                DateTime::parse_from_rfc3339(ipdata.date.as_str()).unwrap();
 | 
			
		||||
            match self.cfg.sets.get(&ipdata.src) {
 | 
			
		||||
                Some(set) => {
 | 
			
		||||
                    self.blocklist.insert(
 | 
			
		||||
                        ipdata.ip.to_string(),
 | 
			
		||||
                        BlockIpData {
 | 
			
		||||
                    self.blocklist
 | 
			
		||||
                        .entry(ipdata.ip.to_string())
 | 
			
		||||
                        .or_insert(BlockIpData {
 | 
			
		||||
                            ipdata: ipdata.clone(),
 | 
			
		||||
                            tryfail,
 | 
			
		||||
                            starttime,
 | 
			
		||||
                            blocktime: set.blocktime,
 | 
			
		||||
                        },
 | 
			
		||||
                    );
 | 
			
		||||
                        });
 | 
			
		||||
                }
 | 
			
		||||
                None => {}
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -22,6 +22,7 @@ pub fn block(
 | 
			
		||||
    tablename: &String,
 | 
			
		||||
    ips_add: &Vec<IpData>,
 | 
			
		||||
    ret: &mut Vec<String>,
 | 
			
		||||
    fwlen: &mut usize,
 | 
			
		||||
) -> std::result::Result<(), Error> {
 | 
			
		||||
    // convert chain
 | 
			
		||||
    let ips_add = convert(ips_add);
 | 
			
		||||
@ -59,7 +60,10 @@ pub fn block(
 | 
			
		||||
    // validate and send batch
 | 
			
		||||
    let finalized_batch = batch.finalize();
 | 
			
		||||
    send_and_process(&finalized_batch)?;
 | 
			
		||||
    ret.push(format!("{length} ip in memory", length = ips_add.len()));
 | 
			
		||||
    if fwlen < &mut ips_add.len() {
 | 
			
		||||
        ret.push(format!("{length} ip in firewall", length = ips_add.len()));
 | 
			
		||||
    }
 | 
			
		||||
    *fwlen = ips_add.len();
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,8 @@ pub async fn process(ctx: &Arc<Mutex<Context>>) {
 | 
			
		||||
    let (ipdatatx, mut ipdatarx): (Sender<IpData>, Receiver<IpData>) = channel(ZMQ_CHAN_SIZE);
 | 
			
		||||
 | 
			
		||||
    // initialize the firewall table
 | 
			
		||||
    //firewall::init(&env!("CARGO_PKG_NAME").to_string());
 | 
			
		||||
    firewall::init(&env!("CARGO_PKG_NAME").to_string());
 | 
			
		||||
    let mut fwlen: usize = 0;
 | 
			
		||||
 | 
			
		||||
    // initialize zeromq sockets
 | 
			
		||||
    let reqsocket;
 | 
			
		||||
@ -88,11 +89,14 @@ pub async fn process(ctx: &Arc<Mutex<Context>>) {
 | 
			
		||||
            &env!("CARGO_PKG_NAME").to_string(),
 | 
			
		||||
            &ctx.get_blocklist_toblock().await,
 | 
			
		||||
            &mut ret,
 | 
			
		||||
            &mut fwlen,
 | 
			
		||||
        )
 | 
			
		||||
        .unwrap();
 | 
			
		||||
 | 
			
		||||
        // log lines
 | 
			
		||||
        println!("{ret}", ret = ret.join(", "));
 | 
			
		||||
        if ret.len() > 0 {
 | 
			
		||||
            println!("{ret}", ret = ret.join(", "));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        let end: DateTime<Local> = Local::now().trunc_subsecs(0);
 | 
			
		||||
        if (end - begin) > Duration::seconds(5) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user