Branching the discussion...
On Tuesday 26 September 2006 16:33, Philip Hazel took the opportunity to say:
> On Mon, 25 Sep 2006, Magnus Holmgren wrote:
> > How much can be done without breaking backwards compatibility? I'm
> > primarily thinking about what is visible when. How many configurations
> > would break if headers_remove removed headers previously added by
> > headers_add?
>
> My feeling is that quite a lot of configurations will break if/when the
> header handling is rationalized, which is why I think it is an "Exim 5"
> issue. However, I agree that it would be good to sort out the current
> mess, which has been hacked up over the years and could well do with
> rationalizing.
Presently, the accumulated header additions and deletions by routers and
transports are stored in the extra_headers and remove_headers fields of the
address_item_propagated struct, instead of copying the full headers, which
can be rather big, to each address_item. How about instead employing
copy-on-write to save space and copying time? address_item_propagated could
have a list of pointers to original and new header_line:s. The whole list of
pointers would still have to be copied, unless we use a second level of CoW.
--
Magnus Holmgren holmgren@???
(No Cc of list mail needed, thanks)