The first argument to local_scan() is the file descriptor for the file that 
contains the body of the message. While writing to the file isn't 
recommended, it isn't forbidden. It can also be highly useful.

SA-Exim can write to the descriptor so that SpamAssassin's safe_mode can be 
utilised. Apparently however, it also has to update body_linecount 
accordingly, but that variable isn't part of the API, so the author cheated 
and declared it, himself, along with smtp_out and primary_hostname.

Unfortunately, thanks to myself, version 4.67-1 of exim4 in Debian no longer 
exports all symbols - only the ones declared in local_scan.h and the files 
included from it (see http://bugs.debian.org/413602). This of course causes 
dlopen() to fail.

Since writing to fd isn't forbidden (and IMHO shouldn't be), either

a) body_linecount (and other variables that may need to be updated) should be 
made available to local_scan() so that it can update it, or
b) the message body needs to be rescanned and body_linecount (and any other 
variable that may need to be updated) be updated after the call to 
local_scan().

Thoughts?

-- 
Magnus Holmgren        [EMAIL PROTECTED]
                       (No Cc of list mail needed, thanks)

Attachment: pgpeaYR9HYuJd.pgp
Description: PGP signature

-- 
## List details at http://www.exim.org/mailman/listinfo/exim-dev Exim details 
at http://www.exim.org/ ##

Reply via email to