feat: move mblog header handling into mime4cl

Accessing the headers of a MIME message feels like something mime4cl
should handle. We implemented this ad hoc in mblog before in order to
not need to worry about doing it in a sensible way. Now we introduce a
decent-ish interface for getting a header from a MIME message,
mime-message-header-values:

* It returns a list because MIME message headers may appear multiple
  times.

* It decodes RFC2047 only upon request, as you may want to be stricter
  about parsing certain fields.

* It checks header name equality case insensitively.

The code for decoding the RFC2047 string is retained and still uses
babel for doing the actual decoding.

Change-Id: I58bbbe4b46dbded04160b481a28a40d14775673d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5150
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
sterni 2022-02-01 00:01:59 +01:00
parent 81c47da91c
commit 5bc73de59d
7 changed files with 43 additions and 37 deletions

View file

@ -30,6 +30,8 @@
#:process-wait
#:process-alive-p
#:run-program)
(:import-from :babel :octets-to-string)
(:import-from :babel-encodings :get-character-encoding)
(:export #:*lazy-mime-decode*
#:print-mime-part
#:read-mime-message
@ -61,6 +63,7 @@
#:mime-type-string
#:mime-type-parameters
#:mime-message-headers
#:mime-message-header-values
#:mime=
#:find-mime-part-by-path
#:find-mime-part-by-id