pop3: Reworked pop3_endofresp() to simplify it little

Reworked pop3_endofresp() to simplify it and provide consistency between
imap and smtp.
This commit is contained in:
Steve Holme 2013-02-08 23:07:20 +00:00
parent 3bb45aa7f5
commit 21657823ea
1 changed files with 47 additions and 50 deletions

View File

@ -253,7 +253,7 @@ static int pop3_endofresp(struct pingpong *pp, int *resp)
/* Are we processing CAPA command responses? */
else if(pop3c->state == POP3_CAPA) {
/* Do we have the terminating character? */
/* Do we have the terminating line? */
if(len >= 1 && !memcmp(line, ".", 1)) {
*resp = '+';
@ -261,21 +261,15 @@ static int pop3_endofresp(struct pingpong *pp, int *resp)
}
/* Does the server support clear text authentication? */
if(len >= 4 && !memcmp(line, "USER", 4)) {
if(len >= 4 && !memcmp(line, "USER", 4))
pop3c->authtypes |= POP3_TYPE_CLEARTEXT;
return FALSE;
}
/* Does the server support APOP authentication? */
if(len >= 4 && !memcmp(line, "APOP", 4)) {
else if(len >= 4 && !memcmp(line, "APOP", 4))
pop3c->authtypes |= POP3_TYPE_APOP;
return FALSE;
}
/* Does the server support SASL based authentication? */
if(len < 4 || memcmp(line, "SASL", 4))
return FALSE;
else if(len >= 4 && !memcmp(line, "SASL", 4)) {
pop3c->authtypes |= POP3_TYPE_SASL;
/* Advance past the SASL keyword */
@ -325,6 +319,9 @@ static int pop3_endofresp(struct pingpong *pp, int *resp)
}
}
return FALSE;
}
if((len < 1 || memcmp("+", line, 1)) &&
(len < 3 || memcmp("+OK", line, 3)))
return FALSE; /* Nothing for us */