#define OPEP "lvleml.c:checkfrom,"
_Bool success;
-_Bool proceed;
+char *strsize;
int status;
int phase;
+_Bool proceed;
success=false;
+strsize=(char *)0;
status=CMDOK;
proceed=true;
phase=0;
phase=999; //no need to go further
}
break;
- case 2 : //check from format
+ case 2 : //do we have SIZE= component
+ if ((strsize=strchr(mailfrom,' '))!=(char *)0) {
+ while (*strsize==' ') {
+ *strsize='\000';
+ strsize++;
+ }
+ //JMPDBG need to check size
+ }
+ break;
+ case 3 : //check from format
if ((mailfrom[0]!='<')||(mailfrom[strlen(mailfrom)-1]!='>')) {
- (void) transmit(contact,true,"%d 5.5.2 '%s' bad Format error",
+ (void) transmit(contact,true,"%d 5.5.3 '%s' bad Format error",
BADPAR,mailfrom);
phase=999; //no need to go further
}
mailfrom[strlen(mailfrom)-1]='\000';
(void) memmove(mailfrom,mailfrom+1,strlen(mailfrom));
break;
- case 3 : //check if contact authenticated
+ case 4 : //check if contact authenticated
switch (contact->privilege) {
case rel_authentic : //User was authenticated
break;
case rel_isrelay : //Remote IP way already relay
contact->privilege=rel_plain;
if ((status=checkcredit(contact))!=CMDOK) {
- (void) transmit(contact,true,"%d 5.5.3 Closing connection",status);
+ (void) transmit(contact,true,"%d 5.5.4 Closing connection",status);
phase=999; //bad credit not need to go further
}
break;
default :
(void) rou_alert(0,"%s unexpected priviliged='%d' (Bug?)",
OPEP,contact->privilege);
- (void) transmit(contact,true,"%d 5.5.3 Closing connection",FAILED);
+ (void) transmit(contact,true,"%d 5.5.5 Closing connection",FAILED);
phase=999; //bad credit not need to go further
break;
}
break;
- case 4 : //everything ok
+ case 5 : //everything ok
contact->mailfrom=strdup(mailfrom);
(void) transmit(contact,true,"%d 2.1.3 %s.. sender ok",
CMDOK,contact->mailfrom);