From d9ca9e9869e8dd5559b36ffec608c847f154e40a Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 2 Jun 2012 11:07:58 +0100 Subject: sasl: Moved ntlm authentication message handling from smtp.c Moved the ntlm message creation and decoding from smtp.c into the sasl module to allow for use by other modules such as pop3. --- lib/smtp.c | 49 +++++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 32 deletions(-) (limited to 'lib/smtp.c') diff --git a/lib/smtp.c b/lib/smtp.c index 06cf2a5a2..0bee641cb 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -87,7 +87,6 @@ #include "curl_md5.h" #include "curl_hmac.h" #include "curl_gethostname.h" -#include "curl_ntlm_msgs.h" #include "curl_sasl.h" #include "warnless.h" @@ -383,15 +382,6 @@ static CURLcode smtp_state_helo(struct connectdata *conn) return CURLE_OK; } -#ifdef USE_NTLM -static CURLcode smtp_auth_ntlm_type1_message(struct connectdata *conn, - char **outptr, size_t *outlen) -{ - return Curl_ntlm_create_type1_message(conn->user, conn->passwd, - &conn->ntlm, outptr, outlen); -} -#endif - static CURLcode smtp_authenticate(struct connectdata *conn) { CURLcode result = CURLE_OK; @@ -431,7 +421,8 @@ static CURLcode smtp_authenticate(struct connectdata *conn) state1 = SMTP_AUTHNTLM; state2 = SMTP_AUTHNTLM_TYPE2MSG; smtpc->authused = SASL_AUTH_NTLM; - result = smtp_auth_ntlm_type1_message(conn, &initresp, &len); + result = Curl_sasl_create_ntlm_type1_message(conn->user, conn->passwd, + &conn->ntlm, &initresp, &len); } else #endif @@ -1039,7 +1030,8 @@ static CURLcode smtp_state_auth_ntlm_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { - result = smtp_auth_ntlm_type1_message(conn, &type1msg, &len); + result = Curl_sasl_create_ntlm_type1_message(conn->user, conn->passwd, + &conn->ntlm, &type1msg, &len); if(!result) { if(type1msg) { @@ -1073,22 +1065,20 @@ static CURLcode smtp_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { - result = Curl_ntlm_decode_type2_message(data, data->state.buffer + 4, - &conn->ntlm); + result = Curl_sasl_decode_ntlm_type2_message(data, + data->state.buffer + 4, + conn->user, conn->passwd, + &conn->ntlm, + &type3msg, &len); if(!result) { - result = Curl_ntlm_create_type3_message(conn->data, conn->user, - conn->passwd, &conn->ntlm, - &type3msg, &len); - if(!result) { - if(type3msg) { - result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", type3msg); - - if(!result) - state(conn, SMTP_AUTH); - } - - Curl_safefree(type3msg); + if(type3msg) { + result = Curl_pp_sendf(&conn->proto.smtpc.pp, "%s", type3msg); + + if(!result) + state(conn, SMTP_AUTH); } + + Curl_safefree(type3msg); } } @@ -1763,12 +1753,7 @@ static CURLcode smtp_disconnect(struct connectdata *conn, Curl_pp_disconnect(&smtpc->pp); -#ifdef USE_NTLM - /* Cleanup the ntlm structure */ - if(smtpc->authused == SASL_AUTH_NTLM) { - Curl_ntlm_sspi_cleanup(&conn->ntlm); - } -#endif + Curl_sasl_cleanup(conn, smtpc->authused); /* This won't already be freed in some error cases */ Curl_safefree(smtpc->domain); -- cgit v1.2.3