phase=0;
proceed=true;
while (proceed==true) {
- //(void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
+ (void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
switch (phase) {
case 0 : //process completed?
if ((*tra)==(TRATYP *)0)
switch (rspcode) {
case CMDOK : //originator accepted
tobesend++;
+ (*dest)->sendcode=rspcode;
+ break;
+ case UKNUSER : //originator accepted
+ (*dest)->code='C'; //completed (Temporary JMPDBG);
+ (*dest)->sendcode=rspcode;
break;
default : //Not accepted recipient
+ (void) rou_alert(0,"%s sessid=<%s>, unknwon code='%d'",
+ OPEP,sessid,rspcode);
+ (*dest)->code='C'; //completed (Temporary JMPDBG);
+ (*dest)->sendcode=BADPAR;
break;
}
dest++;
}
+ if (tobesend==0)
+ phase++; //no user accepted (no data)
break;
}
- case 7 : //send email data
- if (tobesend>0)
- (void) senddata(&rmt,tosend,sessid);
+ case 7 : { //send email data
+ int rspcode;
+ TRATYP **dest;
+
+ rspcode=senddata(&rmt,tosend,sessid);
+ dest=tosend;
+ while (*dest!=(TRATYP *)0) {
+ switch ((*dest)->sendcode) {
+ case CMDOK :
+ (*dest)->code='C'; //Data was sent properly
+ break;
+ case UKNUSER : //NO BREAK
+ case BADPAR :
+ break;
+ default :
+ (void) rou_alert(0,"%s sessid=<%s>, Unexpected code='%d' (Bug?)",
+ OPEP,sessid,rspcode);
+ break;
+ }
+ dest++;
+ }
break;
+ }
case 8 : //cleaning recipient list
(void) free(tosend);
tosend=(TRATYP **)0;
#define BADPAR 501 //error in parameters
#define CMDBAD 502 //command not implemented
#define DATRJC 521 //Data Rejected
+#define UKNUSER 551 //Unknown user
#define MALABRT 552 //email data rejected
#define NOTEML 553 //Not an email address
#define MISSMX 563 //NO MX found for recipient