diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/imap.c | 54 | 
1 files changed, 28 insertions, 26 deletions
| diff --git a/lib/imap.c b/lib/imap.c index d135ba916..0c0154824 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -353,32 +353,6 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,      return TRUE;    } -  /* Do we have a continuation response? */ -  if((len == 3 && !memcmp("+", line, 1)) || -     (len >= 2 && !memcmp("+ ", line, 2))) { -    switch(imapc->state) { -      /* States which are interested in continuation responses */ -      case IMAP_AUTHENTICATE_PLAIN: -      case IMAP_AUTHENTICATE_LOGIN: -      case IMAP_AUTHENTICATE_LOGIN_PASSWD: -      case IMAP_AUTHENTICATE_CRAMMD5: -      case IMAP_AUTHENTICATE_DIGESTMD5: -      case IMAP_AUTHENTICATE_DIGESTMD5_RESP: -      case IMAP_AUTHENTICATE_NTLM: -      case IMAP_AUTHENTICATE_NTLM_TYPE2MSG: -      case IMAP_AUTHENTICATE: -        *resp = '+'; -        break; - -      default: -        failf(conn->data, "Unexpected continuation response"); -        *resp = -1; -        break; -    } - -    return TRUE; -  } -    /* Do we have an untagged command response */    if(len >= 2 && !memcmp("* ", line, 2)) {      /* Are we processing CAPABILITY command data? */ @@ -443,6 +417,8 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,          line += wordlen;          len -= wordlen;        } + +      return FALSE;      }      /* Are we processing FETCH command responses? */      else if(imapc->state == IMAP_FETCH) { @@ -452,6 +428,32 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len,      }    } +  /* Do we have a continuation response? */ +  if((len == 3 && !memcmp("+", line, 1)) || +     (len >= 2 && !memcmp("+ ", line, 2))) { +    switch(imapc->state) { +      /* States which are interested in continuation responses */ +      case IMAP_AUTHENTICATE_PLAIN: +      case IMAP_AUTHENTICATE_LOGIN: +      case IMAP_AUTHENTICATE_LOGIN_PASSWD: +      case IMAP_AUTHENTICATE_CRAMMD5: +      case IMAP_AUTHENTICATE_DIGESTMD5: +      case IMAP_AUTHENTICATE_DIGESTMD5_RESP: +      case IMAP_AUTHENTICATE_NTLM: +      case IMAP_AUTHENTICATE_NTLM_TYPE2MSG: +      case IMAP_AUTHENTICATE: +        *resp = '+'; +        break; + +      default: +        failf(conn->data, "Unexpected continuation response"); +        *resp = -1; +        break; +    } + +    return TRUE; +  } +    return FALSE; /* Nothing for us */  } | 
