tmail.c | tmail.c | |||
---|---|---|---|---|
skipping to change at line 266 | skipping to change at line 266 | |||
} | } | |||
/* Deliver message to recipient list | /* Deliver message to recipient list | |||
* Accepts: file description of message temporary file | * Accepts: file description of message temporary file | |||
* size of message temporary file in bytes | * size of message temporary file in bytes | |||
* recipient name | * recipient name | |||
* Returns: NIL if success, else error code | * Returns: NIL if success, else error code | |||
*/ | */ | |||
int deliver (FILE *f,unsigned long msglen,char *user) | int deliver (FILE *f,unsigned long msglen,char *user) | |||
{ | { | |||
MAILSTREAM *ds; | MAILSTREAM *ds = NIL; | |||
char *s,*t,*mailbox,tmp[MAILTMPLEN],path[MAILTMPLEN]; | char *s,*t,*mailbox,tmp[MAILTMPLEN],path[MAILTMPLEN]; | |||
struct passwd *pwd; | struct passwd *pwd; | |||
STRING st; | STRING st; | |||
struct stat sbuf; | struct stat sbuf; | |||
uid_t duid; | uid_t duid; | |||
uid_t euid = geteuid (); | uid_t euid = geteuid (); | |||
/* get user record */ | /* get user record */ | |||
if (!(pwd = getpwnam (getusername (user,&mailbox)))) { | if (!(pwd = getpwnam (getusername (user,&mailbox)))) { | |||
sprintf (tmp,"no such user as %.80s",user); | sprintf (tmp,"no such user as %.80s",user); | |||
return fail (tmp,EX_NOUSER); | return fail (tmp,EX_NOUSER); | |||
skipping to change at line 318 | skipping to change at line 318 | |||
} | } | |||
mm_dlog ("retrying delivery to INBOX"); | mm_dlog ("retrying delivery to INBOX"); | |||
SETPOS (&st,0); /* rewind stringstruct just in case */ | SETPOS (&st,0); /* rewind stringstruct just in case */ | |||
} | } | |||
/* -I specified and not "-I INBOX"? */ | /* -I specified and not "-I INBOX"? */ | |||
if (inbox && !(((inbox[0] == 'I') || (inbox[0] == 'i')) && | if (inbox && !(((inbox[0] == 'I') || (inbox[0] == 'i')) && | |||
((inbox[1] == 'N') || (inbox[1] == 'n')) && | ((inbox[1] == 'N') || (inbox[1] == 'n')) && | |||
((inbox[2] == 'B') || (inbox[2] == 'b')) && | ((inbox[2] == 'B') || (inbox[2] == 'b')) && | |||
((inbox[3] == 'O') || (inbox[3] == 'o')) && | ((inbox[3] == 'O') || (inbox[3] == 'o')) && | |||
((inbox[4] == 'X') || (inbox[4] == 'x')) && !inbox[5])) { | ((inbox[4] == 'X') || (inbox[4] == 'x')) && !inbox[5])) { | |||
DRIVER *dv; | DRIVER *dv = NIL; | |||
/* "-I #driver.xxx/name"? */ | /* "-I #driver.xxx/name"? */ | |||
if ((*inbox == '#') && ((inbox[1] == 'd') || (inbox[1] == 'D')) && | if ((*inbox == '#') && ((inbox[1] == 'd') || (inbox[1] == 'D')) && | |||
((inbox[2] == 'r') || (inbox[2] == 'R')) && | ((inbox[2] == 'r') || (inbox[2] == 'R')) && | |||
((inbox[3] == 'i') || (inbox[3] == 'I')) && | ((inbox[3] == 'i') || (inbox[3] == 'I')) && | |||
((inbox[4] == 'v') || (inbox[4] == 'V')) && | ((inbox[4] == 'v') || (inbox[4] == 'V')) && | |||
((inbox[5] == 'e') || (inbox[5] == 'E')) && | ((inbox[5] == 'e') || (inbox[5] == 'E')) && | |||
((inbox[6] == 'r') || (inbox[6] == 'R')) && (inbox[7] == '.') && | ((inbox[6] == 'r') || (inbox[6] == 'R')) && (inbox[7] == '.') && | |||
(s = strchr (inbox+8,'/'))) { | (s = strchr (inbox+8,'/'))) { | |||
*s = '\0'; /* temporarily tie off driver name */ | *s = '\0'; /* temporarily tie off driver name */ | |||
if (!((dv = mail_parameters (NIL,GET_DRIVER,(void *) (inbox+8))) && | if (!((dv = mail_parameters (NIL,GET_DRIVER,(void *) (inbox+8))) && | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |