diff options
Diffstat (limited to 'lib/vauth/krb5_sspi.c')
-rw-r--r-- | lib/vauth/krb5_sspi.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c index 6afd83dde..da08f8f03 100644 --- a/lib/vauth/krb5_sspi.c +++ b/lib/vauth/krb5_sspi.c @@ -85,6 +85,13 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, unsigned long attrs; TimeStamp expiry; /* For Windows 9x compatibility of SSPI calls */ + if(!krb5->spn) { + /* Generate our SPN */ + krb5->spn = Curl_auth_build_spn(service, host); + if(!krb5->spn) + return CURLE_OUT_OF_MEMORY; + } + if(!krb5->credentials) { /* Query the security package for Kerberos */ status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) @@ -104,11 +111,6 @@ CURLcode Curl_auth_create_gssapi_user_message(struct SessionHandle *data, if(!krb5->output_token) return CURLE_OUT_OF_MEMORY; - /* Generate our SPN */ - krb5->spn = Curl_auth_build_spn(service, host); - if(!krb5->spn) - return CURLE_OUT_OF_MEMORY; - if(userp && *userp) { /* Populate our identity structure */ result = Curl_create_sspi_identity(userp, passwdp, &krb5->identity); |