Although general practice is to use ': ' after a header, some odd software
authorMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 13 Oct 2009 14:48:40 +0000 (14:48 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 13 Oct 2009 14:48:40 +0000 (14:48 +0000)
generate ':' only.  This seems permitted by the RFC.

mmsoftware/mmmail/src/mmsmtpd/mmsmtpd.c

index 4183f0c..d78546b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmsmtpd.c,v 1.103 2009/02/09 21:30:53 mmondor Exp $ */
+/* $Id: mmsmtpd.c,v 1.104 2009/10/13 14:48:40 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2008, Matthew Mondor
@@ -86,7 +86,7 @@
 
 MMCOPYRIGHT("@(#) Copyright (c) 2001-2007\n\
 \tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmsmtpd.c,v 1.103 2009/02/09 21:30:53 mmondor Exp $");
+MMRCSID("$Id: mmsmtpd.c,v 1.104 2009/10/13 14:48:40 mmondor Exp $");
 
 
 
@@ -1656,8 +1656,8 @@ validate_msg_line(char *line, ssize_t *len, int *res, void *udata)
                    *hptr++ = *ptr++) ;
            if (*ptr++ != ':')
                goto endheader;
-           if (*ptr++ != ' ')
-               goto endheader;
+           if (*ptr == ' ')
+               ptr++;
 
            *hptr = '\0';
            while (*ptr != '\0' && isspace((int)*ptr))
@@ -1841,7 +1841,7 @@ do_data(clientenv *clenv)
 
     /* Call our famous fdbreadbuf() which will read lines in a single buffer
      * and validate them via the validate_msg_line() function (above).
-     * We restict the maximum length of a single line to 1024 characters
+     * We restict the maximum length of a single line to 4096 characters
      * and are starting with an initial buffer of 32K, buffer which will
      * double in size whenever required. Of course don't read more than
      * CONF.MAX_DATA_SIZE bytes or CONF.MAX_DATA_LINES lines.
@@ -1852,7 +1852,7 @@ do_data(clientenv *clenv)
     ud.header = TRUE;
     ud.clenv = clenv;
     ud.h_from = ud.h_to = ud.h_subject = ud.h_id = ud.h_reply = NULL;
-    res = fdbreadbuf(&fdbrb, clenv->fdb, 32768, 1024, CONF.MAX_DATA_SIZE,
+    res = fdbreadbuf(&fdbrb, clenv->fdb, 32768, 4096, CONF.MAX_DATA_SIZE,
            CONF.MAX_DATA_LINES, validate_msg_line, &ud, FALSE);
 
     /* Map results to DATA suitable ones */