From dacbdaab9422afc0dcc2d56579f8624cbd5e225e Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 27 Apr 2013 12:04:35 +0100 Subject: imap: Added support for overriding the SASL initial response In addition to checking for the SASL-IR capability the user can override the sending of the client's initial response in the AUTHENTICATION command with the use of CURLOPT_SASL_IR should the server erroneously not report SASL-IR when it does support it. --- lib/imap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/imap.c b/lib/imap.c index da09955dc..6bdd5c1ae 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -525,6 +525,7 @@ static CURLcode imap_perform_login(struct connectdata *conn) static CURLcode imap_perform_authenticate(struct connectdata *conn) { CURLcode result = CURLE_OK; + struct SessionHandle *data = conn->data; struct imap_conn *imapc = &conn->proto.imapc; const char *mech = NULL; char *initresp = NULL; @@ -565,7 +566,7 @@ static CURLcode imap_perform_authenticate(struct connectdata *conn) state2 = IMAP_AUTHENTICATE_NTLM_TYPE2MSG; imapc->authused = SASL_MECH_NTLM; - if(imapc->ir_supported) + if(imapc->ir_supported || data->set.sasl_ir) result = Curl_sasl_create_ntlm_type1_message(conn->user, conn->passwd, &conn->ntlm, &initresp, &len); @@ -579,7 +580,7 @@ static CURLcode imap_perform_authenticate(struct connectdata *conn) state2 = IMAP_AUTHENTICATE_LOGIN_PASSWD; imapc->authused = SASL_MECH_LOGIN; - if(imapc->ir_supported) + if(imapc->ir_supported || data->set.sasl_ir) result = Curl_sasl_create_login_message(conn->data, conn->user, &initresp, &len); } @@ -590,7 +591,7 @@ static CURLcode imap_perform_authenticate(struct connectdata *conn) state2 = IMAP_AUTHENTICATE_FINAL; imapc->authused = SASL_MECH_PLAIN; - if(imapc->ir_supported) + if(imapc->ir_supported || data->set.sasl_ir) result = Curl_sasl_create_plain_message(conn->data, conn->user, conn->passwd, &initresp, &len); } -- cgit v1.2.3