]> git.ipfire.org Git - thirdparty/rspamd.git/commit
[Feature] Add HTTP content negotiation framework
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 11 Jan 2026 18:08:02 +0000 (18:08 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 11 Jan 2026 18:08:02 +0000 (18:08 +0000)
commitec5affde2fae0b3f108538de83774066a4465b88
tree89bb79b495ae00ee9cce531327c6c200b418d60f
parent73cf96d281dc8b5da067f87e4a29d532d059d8fb
[Feature] Add HTTP content negotiation framework

Add content type negotiation based on Accept header for HTTP responses.
This allows clients like DataDog's OpenMetrics scraper to receive
responses with Content-Type matching their Accept header preferences.

- Add http_content_negotiation.c/h with Accept header parsing
- Support quality factors (q=) in Accept header
- Parse Accept-Encoding for gzip/zstd/deflate support
- Add rspamd_controller_send_openmetrics_negotiated()
- Update /metrics endpoint to negotiate Content-Type
- Fallback to text/plain for Prometheus 0.0.4 compatibility
src/controller.c
src/libserver/CMakeLists.txt
src/libserver/http/http_router.c
src/libserver/http/http_router.h
src/libserver/http_content_negotiation.c [new file with mode: 0644]
src/libserver/http_content_negotiation.h [new file with mode: 0644]
src/libserver/worker_util.c
src/libserver/worker_util.h