Re: [exim-dev] Exim support for OpenDMARC

Top Page
Delete this message
Reply to this message
Author: Jeremy Harris
Date:  
To: exim-dev
Subject: Re: [exim-dev] Exim support for OpenDMARC
On 02/09/2013 01:50 AM, Todd Lyons wrote:
> I have finished coding up my first draft of DMARC support into Exim

[...]
>
> I welcome anybody to look over the code, to test it, etc.


acl.c
   dmarc_has_been_checked variable
    type should be bool.
    is the operation safe for multiple mails per smtp conn? (also ~enable_forensic et.al.).


   case ACLC_DMARC_STATUS (also ACLC_DKIM_STATUS
    (style nit) space after comma for function args.


dmarc.c
    general
    style - function return type on separate line, zero first-level indent
    of code within function, to match the rest of exim coding.


   dmarc_init()
    style - function opening { on new line.
    Why ifdef EXPERIMENTAL_SPF ?  Doesn't the whole facility depend on it?
    Should the error cases shortcircuit further processing?
    Could the function type be void?    Also other functions in file.
    "Skip DMARC if connection is SMTP Auth" - Discuss.  Should this be
    hardwired in the code, is it specified by a reference standard?   Could
    the test, if retained, be earlier in the function?
    switch(libdbm_status) - consider a tabled-based coding.
    "DMARC results:" log line - doesn't look easy to correlate with other log lines
    for the message, on a busy server.  Does it get the exim-id also?
    Library shutdown calls - how expensive are these?  Could they be opened
    by the exim daemon process and just used by the child process(es) for the
    message (are the libs safe for that)?


   dmarc_write_history_file()
    Why is history_buffer global?
    Why is history_file_fd static?
    Multiple string_sprintf() calls looks inefficient.


receive.c
    #ifndef DISABLE_DKIM expansion to line 3429 - defining DISABLE_DKIM
    now disables important code...  Looks buggy.  Has the testsuite been run?


-- 
Cheers,
     Jeremy