diff options
Diffstat (limited to 'lib/pop3.c')
-rw-r--r-- | lib/pop3.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/pop3.c b/lib/pop3.c index 7fc755e12..f4dc5d1b3 100644 --- a/lib/pop3.c +++ b/lib/pop3.c @@ -405,6 +405,7 @@ static void state(struct connectdata *conn, pop3state newstate) "AUTH_NTLM", "AUTH_NTLM_TYPE2MSG", "AUTH_XOAUTH2", + "AUTH_CANCEL", "AUTH_FINAL", "APOP", "USER", @@ -1182,7 +1183,22 @@ static CURLcode pop3_state_auth_xoauth2_resp(struct connectdata *conn, return result; } -/* For final responses to the AUTH sequence */ +/* For AUTH cancellation responses */ +static CURLcode pop3_state_auth_cancel_resp(struct connectdata *conn, + int pop3code, + pop3state instate) +{ + struct SessionHandle *data = conn->data; + + (void)pop3code; + (void)instate; /* no use for this yet */ + + failf(data, "Authentication cancelled"); + + return CURLE_LOGIN_DENIED; +} + +/* For final responses in the AUTH sequence */ static CURLcode pop3_state_auth_final_resp(struct connectdata *conn, int pop3code, pop3state instate) @@ -1404,6 +1420,10 @@ static CURLcode pop3_statemach_act(struct connectdata *conn) result = pop3_state_auth_xoauth2_resp(conn, pop3code, pop3c->state); break; + case POP3_AUTH_CANCEL: + result = pop3_state_auth_cancel_resp(conn, pop3code, pop3c->state); + break; + case POP3_AUTH_FINAL: result = pop3_state_auth_final_resp(conn, pop3code, pop3c->state); break; |