aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/stats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-31 05:29:49 +0100
committertv <tv@krebsco.de>2026-10-31 05:29:49 +0100
commitf72c751c837a41b807fe09cebe79e78a31309def (patch)
tree8d2fbdd4cc5ce90043bb91213d637c043e190676 /src/api/stats
parent9c45cb3e478a519182a7d9bf48af1529b2ccc457 (diff)
api: unify media-type stripping
Diffstat (limited to 'src/api/stats')
-rw-r--r--src/api/stats/prometheus.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/api/stats/prometheus.rs b/src/api/stats/prometheus.rs
index 0b770bd..8f7538f 100644
--- a/src/api/stats/prometheus.rs
+++ b/src/api/stats/prometheus.rs
@@ -5,6 +5,7 @@
use std::fmt::Write;
use super::StatsResponse;
+use crate::api::media_type;
use crate::api::peers::{PeerListResponse, PeerLivenessStatus};
use crate::state::Incidents;
use crate::transport::Destination;
@@ -17,10 +18,10 @@ pub(super) const CONTENT_TYPE: &str = "text/plain; version=0.0.4; charset=utf-8"
/// plain text; browsers and curl don't name either.
pub(super) fn wanted(accept: Option<&str>) -> bool {
accept.is_some_and(|accept| {
- accept.split(',').any(|item| {
- let media = item.split(';').next().unwrap_or("").trim();
- media == "application/openmetrics-text" || media == "text/plain"
- })
+ accept
+ .split(',')
+ .map(media_type)
+ .any(|media| media == "application/openmetrics-text" || media == "text/plain")
})
}