From 8eb74c04de4f2d042b41c9c52f658dfd34e7c7be Mon Sep 17 00:00:00 2001 From: Christian Kreibich Date: Fri, 5 Jul 2024 17:15:33 -0700 Subject: [PATCH] Harden the telemetry manager against unset Telemetry::metrics_address We populate that address from the ZEEK_DEFAULT_LISTEN_ADDRESS environment variable, but weren't prepared for that not being set. We now fall back to 0.0.0.0. This may have the same IPv6 issues that we've encountered elsewhere when doing so before (v6 interfaces need "::") -- but this is still more likely to work than not having any string at all. --- src/telemetry/Manager.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/telemetry/Manager.cc b/src/telemetry/Manager.cc index 1df895dea1..04c47ba3ef 100644 --- a/src/telemetry/Manager.cc +++ b/src/telemetry/Manager.cc @@ -36,6 +36,8 @@ void Manager::InitPostScript() { std::string prometheus_url; auto metrics_port = id::find_val("Telemetry::metrics_port")->AsPortVal(); auto metrics_address = id::find_val("Telemetry::metrics_address")->AsStringVal()->ToStdString(); + if ( metrics_address.empty() ) + metrics_address = "0.0.0.0"; if ( metrics_port->Port() != 0 ) prometheus_url = util::fmt("%s:%u", metrics_address.data(), metrics_port->Port());