Files
kumomta/crates/message
Wez Furlong 1795fa6f56 message: ensure all data-loading methods are async and load data
This commit tidies up a bit of an API wart that stems from
the initial implementation where we couldn't guarantee that
the message crate would know how to get a spool handle to
implicitly load data when needed.

This has resulted in a couple of issues over time where we try to
operate on the message data and it just hasn't been loaded, leading to
transient errors being raised in the best case, but in a possible worst
case, a silent error condition.

During the rebind_message event, if the message is not loaded,
msg:get_data() could return the placeholder empty data value.  If the
rebind_message event is trying to mutate the message then the best case
is that an error is raised, a medium-bad case is that operations like
`msg:append_header` will fail to find the header block and thus fail,
and the worst case is that mutation operations that blinding prepend
data (perhaps msg:prepend_header) could end up assigning a bogus
truncated message.  While we don't generally recommend this sort of
action, this is potentially a very gnarly consequence of trying things
out.

Let's just head all of these sorts of issues off by making the accessors
async and have them internally load the data as required.
2025-11-11 10:28:51 +00:00
..
2025-11-02 11:56:57 +00:00