diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c index 32c8534e7..a4568d6d3 100644 --- a/lib/curl_sasl.c +++ b/lib/curl_sasl.c @@ -295,6 +295,8 @@ CURLcode Curl_sasl_start(struct SASL *sasl, struct connectdata *conn, result = Curl_auth_create_gssapi_user_message(data, conn->user, conn->passwd, sasl->params->service, + data->easy_conn-> + host.name, sasl->mutual_auth, NULL, &conn->krb5, &resp, &len); @@ -496,6 +498,7 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct connectdata *conn, result = Curl_auth_create_gssapi_user_message(data, conn->user, conn->passwd, sasl->params->service, + data->easy_conn->host.name, sasl->mutual_auth, NULL, &conn->krb5, &resp, &len); @@ -506,7 +509,8 @@ CURLcode Curl_sasl_continue(struct SASL *sasl, struct connectdata *conn, if(sasl->mutual_auth) { /* Decode the user token challenge and create the optional response message */ - result = Curl_auth_create_gssapi_user_message(data, NULL, NULL, NULL, + result = Curl_auth_create_gssapi_user_message(data, NULL, NULL, + NULL, NULL, sasl->mutual_auth, serverdata, &conn->krb5, &resp, &len); diff --git a/lib/vauth/krb5_gssapi.c b/lib/vauth/krb5_gssapi.c index 87accd13e..56cfc3621 100644 --- a/lib/vauth/krb5_gssapi.c +++ b/lib/vauth/krb5_gssapi.c @@ -53,6 +53,7 @@ * userp [in] - The user name. * passdwp [in] - The user's password. * service [in] - The service type such as www, smtp, pop or imap. + * host [in[ - The host name. * mutual_auth [in] - Flag specifing whether or not mutual authentication * is enabled. * chlg64 [in] - Pointer to the optional base64 encoded challenge @@ -68,6 +69,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, const char *userp, const char *passwdp, const char *service, + const char *host, const bool mutual_auth, const char *chlg64, struct kerberos5data *krb5, @@ -88,8 +90,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, if(krb5->context == GSS_C_NO_CONTEXT) { /* Generate our SPN */ - char *spn = Curl_auth_build_gssapi_spn(service, - data->easy_conn->host.name); + char *spn = Curl_auth_build_gssapi_spn(service, host); if(!spn) return CURLE_OUT_OF_MEMORY; diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c index a1d438f50..6afd83dde 100644 --- a/lib/vauth/krb5_sspi.c +++ b/lib/vauth/krb5_sspi.c @@ -51,6 +51,7 @@ * userp [in] - The user name in the format User or Domain\User. * passdwp [in] - The user's password. * service [in] - The service type such as www, smtp, pop or imap. + * host [in] - The host name. * mutual_auth [in] - Flag specifing whether or not mutual authentication * is enabled. * chlg64 [in] - The optional base64 encoded challenge message. @@ -65,6 +66,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, const char *userp, const char *passwdp, const char *service, + const char *host, const bool mutual_auth, const char *chlg64, struct kerberos5data *krb5, @@ -103,7 +105,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, return CURLE_OUT_OF_MEMORY; /* Generate our SPN */ - krb5->spn = Curl_auth_build_spn(service, data->easy_conn->host.name); + krb5->spn = Curl_auth_build_spn(service, host); if(!krb5->spn) return CURLE_OUT_OF_MEMORY; diff --git a/lib/vauth/vauth.h b/lib/vauth/vauth.h index 161cb14b7..0047b3cf7 100644 --- a/lib/vauth/vauth.h +++ b/lib/vauth/vauth.h @@ -148,6 +148,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, const char *userp, const char *passwdp, const char *service, + const char *host, const bool mutual, const char *chlg64, struct kerberos5data *krb5,