From 1c07bf9fcf67a138d53d7b205433467f8d326997 Mon Sep 17 00:00:00 2001 From: Badr Date: Thu, 26 Sep 2024 00:15:39 +0200 Subject: [PATCH] refactor traffic direction filter --- oryx-tui/src/filters/direction.rs | 12 +++++++++++- oryx-tui/src/handler.rs | 25 ++++++++----------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/oryx-tui/src/filters/direction.rs b/oryx-tui/src/filters/direction.rs index f955dbb..9107a40 100644 --- a/oryx-tui/src/filters/direction.rs +++ b/oryx-tui/src/filters/direction.rs @@ -1,6 +1,9 @@ use std::{ fmt::Display, - sync::{atomic::AtomicBool, Arc}, + sync::{ + atomic::{AtomicBool, Ordering}, + Arc, + }, }; use ratatui::{ @@ -53,6 +56,13 @@ impl TrafficDirectionFilter { } } + pub fn terminate(&mut self, direction: TrafficDirection) { + match direction { + TrafficDirection::Ingress => self.terminate_ingress.store(true, Ordering::Relaxed), + TrafficDirection::Egress => self.terminate_egress.store(true, Ordering::Relaxed), + } + } + pub fn select(&mut self) { if let Some(i) = self.state.selected() { let traffic_direction = match i { diff --git a/oryx-tui/src/handler.rs b/oryx-tui/src/handler.rs index d241345..e3f3a62 100644 --- a/oryx-tui/src/handler.rs +++ b/oryx-tui/src/handler.rs @@ -301,16 +301,13 @@ pub fn handle_key_events( } } else { match key_event.code { - //TODO: add terminate method on ingress and egress KeyCode::Char('q') => { app.filter .traffic_direction - .terminate_egress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Egress); app.filter .traffic_direction - .terminate_ingress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Ingress); thread::sleep(Duration::from_millis(110)); app.quit(); } @@ -319,12 +316,10 @@ pub fn handle_key_events( if key_event.modifiers == KeyModifiers::CONTROL { app.filter .traffic_direction - .terminate_egress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Egress); app.filter .traffic_direction - .terminate_ingress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Ingress); thread::sleep(Duration::from_millis(110)); app.quit(); } @@ -439,12 +434,10 @@ pub fn handle_key_events( if key_event.modifiers == KeyModifiers::CONTROL { app.filter .traffic_direction - .terminate_egress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Ingress); app.filter .traffic_direction - .terminate_ingress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Egress); thread::sleep(Duration::from_millis(150)); sender.send(Event::Reset)?; } @@ -506,8 +499,7 @@ pub fn handle_key_events( { app.filter .traffic_direction - .terminate_egress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Egress); } // Add egress @@ -550,8 +542,7 @@ pub fn handle_key_events( { app.filter .traffic_direction - .terminate_ingress - .store(true, std::sync::atomic::Ordering::Relaxed); + .terminate(TrafficDirection::Ingress); } // Add ingress