Add TRAP_ENABLED env var to conditionally enable trap listener

This commit is contained in:
Graham McIntire 2026-01-31 14:39:24 -06:00
parent 89adc3a6b3
commit 4cd357777f
No known key found for this signature in database
2 changed files with 25 additions and 15 deletions

View file

@ -18,7 +18,11 @@ services:
# Default: info # Default: info
- LOG_LEVEL=info - LOG_LEVEL=info
# Optional: SNMP trap listener port # Optional: Enable SNMP trap listener
# Default: false
- TRAP_ENABLED=true
# Optional: SNMP trap listener port (only used if TRAP_ENABLED=true)
# Default: 162 # Default: 162
- TRAP_PORT=162 - TRAP_PORT=162

View file

@ -183,6 +183,10 @@ struct Args {
/// UDP port for SNMP trap listener /// UDP port for SNMP trap listener
#[arg(long, env = "TRAP_PORT", default_value_t = snmp::DEFAULT_TRAP_PORT)] #[arg(long, env = "TRAP_PORT", default_value_t = snmp::DEFAULT_TRAP_PORT)]
trap_port: u16, trap_port: u16,
/// Enable SNMP trap listener
#[arg(long, env = "TRAP_ENABLED", default_value_t = false)]
trap_enabled: bool,
} }
#[tokio::main] #[tokio::main]
@ -197,7 +201,8 @@ async fn main() {
// Check for newer Docker image version // Check for newer Docker image version
version::check_for_updates(); version::check_for_updates();
// Start SNMP trap listener // Start SNMP trap listener if enabled
if args.trap_enabled {
let trap_port = args.trap_port; let trap_port = args.trap_port;
tokio::spawn(async move { tokio::spawn(async move {
let (trap_tx, mut trap_rx) = tokio::sync::mpsc::channel::<snmp::SnmpTrap>(100); let (trap_tx, mut trap_rx) = tokio::sync::mpsc::channel::<snmp::SnmpTrap>(100);
@ -213,6 +218,7 @@ async fn main() {
log_info!("{}", trap); log_info!("{}", trap);
} }
}); });
}
// Convert HTTP(S) URL to WebSocket URL // Convert HTTP(S) URL to WebSocket URL
let ws_url = convert_to_websocket_url(&args.api_url); let ws_url = convert_to_websocket_url(&args.api_url);