]> code.citadel.org Git - citadel.git/commitdiff
* Fixed an SMTP delivery problem that was causing certain classes of
authorArt Cancro <ajc@citadel.org>
Sat, 1 Dec 2001 07:18:28 +0000 (07:18 +0000)
committerArt Cancro <ajc@citadel.org>
Sat, 1 Dec 2001 07:18:28 +0000 (07:18 +0000)
  transient errors to cause a message to never be delivered.

citadel/ChangeLog
citadel/serv_smtp.c

index 8cc1aa2e0cbffd4f529965912476964f4e835973..713cc019cc471d1bb0c371ec281567356d868270 100644 (file)
@@ -1,4 +1,8 @@
  $Log$
+ Revision 580.81  2001/12/01 07:18:28  ajc
+ * Fixed an SMTP delivery problem that was causing certain classes of
+   transient errors to cause a message to never be delivered.
+
  Revision 580.80  2001/12/01 05:26:01  ajc
  * Added a command "SMTP" to the Citadel protocol, to do some unimportant
    utility/diagnostic functions.
@@ -2882,4 +2886,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
        * Initial CVS import 
-
index f6bcfa08b4e6a67713fd815f478c338f2d3d05f2..bff2d83a21defab170cd9fde00725d0bf630dbe6 100644 (file)
@@ -1289,6 +1289,8 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
        time_t last_attempted = 0L;
        time_t retry = SMTP_RETRY_INTERVAL;
 
+       lprintf(9, "smtp_do_procmsg(%ld)\n", msgnum);
+
        msg = CtdlFetchMessage(msgnum);
        if (msg == NULL) {
                lprintf(3, "SMTP: tried %ld but no such message!\n", msgnum);
@@ -1303,7 +1305,6 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
        for (i=0; i<lines; ++i) {
                extract_token(buf, instr, i, '\n');
                if (num_tokens(buf, '|') < 2) {
-                       lprintf(9, "removing <%s>\n", buf);
                        remove_token(instr, i, '\n');
                        --lines;
                        --i;
@@ -1353,7 +1354,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
        }
 
        /* Plow through the instructions looking for 'remote' directives and
-        * a status of 0 (no delivery yet attempted) or 3 (transient errors
+        * a status of 0 (no delivery yet attempted) or 3/4 (transient errors
         * were experienced and it's time to try again)
         */
        lines = num_tokens(instr, '\n');
@@ -1364,7 +1365,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
                status = extract_int(buf, 2);
                extract(dsn, buf, 3);
                if ( (!strcasecmp(key, "remote"))
-                  && ((status==0)||(status==3)) ) {
+                  && ((status==0)||(status==3)||(status==4)) ) {
                        remove_token(instr, i, '\n');
                        --i;
                        --lines;