Commit 21657823 authored by Steve Holme's avatar Steve Holme
Browse files

pop3: Reworked pop3_endofresp() to simplify it little

Reworked pop3_endofresp() to simplify it and provide consistency between
imap and smtp.
parent 3bb45aa7
Loading
Loading
Loading
Loading
+47 −50
Original line number Diff line number Diff line
@@ -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 */