[exim-dev] [Bug 1572] New: buffer for smtp_confirmation shou…

Top Page
Delete this message
Reply to this message
Author: Heiko Schlittermann
Date:  
To: exim-dev
New-Topics: [exim-dev] [Bug 1572] buffer for smtp_confirmation should be extended, [exim-dev] [Bug 1572] buffer for smtp_confirmation should be extended, [exim-dev] [Bug 1572] buffer for smtp_confirmation should be extended, [exim-dev] [Bug 1572] buffer for smtp_confirmation should be extended, [exim-dev] [Bug 1572] buffer for smtp_confirmation should be extended
Subject: [exim-dev] [Bug 1572] New: buffer for smtp_confirmation should be extended
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1572
           Summary: buffer for smtp_confirmation should be extended
           Product: Exim
           Version: 4.84
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Keywords: work:tiny
          Severity: wishlist
          Priority: medium
         Component: Logging
        AssignedTo: nigel@???
        ReportedBy: hs@???
                CC: exim-dev@???



Hello,

remote servers tend to be more verbose then years ago. It would be good to
catch the complete, or at least much more than 255 characters of the
confirmation (that mostly is a rejection if it's verbose). This helps to pin
down the reasons for the remote rejection.

src/deliver.c:914 seems to hardcode the buffer size:

 904 /* confirmation message (SMTP (host_used) and LMTP (driver_name)) */
 905 
 906 if (log_extra_selector & LX_smtp_confirmation &&
 907     addr->message &&
 908     (addr->host_used || Ustrcmp(addr->transport->driver_name, "lmtp") ==
0))
 909   {
 910   int i;
 911   uschar *p = big_buffer;
 912   uschar *ss = addr->message;
 913   *p++ = '\"';
 914   for (i = 0; i < 255 && ss[i] != 0; i++)      /* limit logged amount */
 915     {
 916     if (ss[i] == '\"' || ss[i] == '\\') *p++ = '\\'; /* quote \ and " */
 917     *p++ = ss[i];
 918     }
 919   *p++ = '\"';
 920   *p = 0;
 921   s = string_append(s, &size, &ptr, 2, US" C=", big_buffer);
 922   }
 923 
 924 /* Time on queue and actual time taken to deliver */


I'm not sure if this is the only point where that buffer gets filled. But I'm
quite sure.
On a production system I resized it to 1024 and it seems to work.


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