vdelivermail improperly translates .qmail commands that return 99 into 111, which is a soft delivery failure.  99 is a success, but stop interpreting further .qmail commands.  This causes problems with condredirect and bouncesaying.  The following patch resolves the issue.
 
*** vpopmail-5.3.8/vdelivermail.c       Thu Jun 20 16:13:25 2002
--- vpopmail-5.3.8.patched/vdelivermail.c       Mon Sep 23 13:24:52 2002
***************
*** 727,732 ****
--- 728,734 ----
    switch(wait_exitcode(wstat))
     {
      case 64: case 65: case 70: case 76: case 77: case 78: case 112: _exit(100);
+     case 99: _exit(99);
      case 0: break;
      default: _exit(111);
     }
 
 
As stated in this paragraph:
 
command's exit codes are interpreted as  follows:   0  means
     that the delivery was successful; 99 means that the delivery
     was successful,  but  that  qmail-local  should  ignore  all
     further  delivery  instructions; 100 means that the delivery
     failed permanently (hard error); 111 means that the delivery
     failed  but  should  be  tried again in a little while (soft
     error).  Currently 64, 65, 70, 76, 77, 78, and 112 are  con-
     sidered hard errors, and all other codes are considered soft
     errors, but command should avoid relying on this.
 
May I have credit for this fix?
 
Jeremiah Gowdy
Senior Software Engineer
FreedomVOICE Systems
 

Reply via email to