------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1559
           Summary: Diagnostic-Code: Field for EXPERIMENTAL-DSN wrong
           Product: Exim
           Version: 4.84
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Delivery in general
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


Created an attachment (id=771)
 --> (http://bugs.exim.org/attachment.cgi?id=771)
fix for Diagnostic-Code field of EXPERIMENTAL_DSN

This bug and patch is for 4.85_RC2 only.

EXPERIMENTAL_DSN had two bugs in 4.84. The first is already fixed in 4.85_RCx.
addr->host_used is set correctly now (outside the EXPERIMENTAL_DSN code).
Thanks Jeremy!

The second flaw was not visible until host_used was available. The
Diagnostic-Code field of the machine readable part of a DSN was wrong.

It looked like:
Remote-MTA: dns; mail.example.tld
Diagnostic-Code: smtp; 0

This patch fixes this. Instead of using basic_errno, which is also not
available at this point of deliver.c, I use addr->message which contains the
complete and sanitized error message from the remote host.

I added a function to make some specific checks, strip the leading information
Exim added by searching for the first ": " and print the SMTP message as
required by RFC 3461:9.2.

I tested it for single- and multiline 5xx errorcodes. As far as I can tell it
should work for 4xx as well.

Now it looks like (multiline example):
Remote-MTA: dns; mail.example.tld
Diagnostic-Code: smtp; 550-unknown user/Adresse existiert nicht
<[email protected]>
 550 non existent


-- 
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email

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

Reply via email to