summaryrefslogtreecommitdiff
path: root/src/ne_auth.c
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2009-09-01 20:13:12 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2009-09-01 20:13:12 +0000
commit09d50b488f4f276b9d1142f100d30f8c2cfe018b (patch)
tree636ced4d3de5979d272e46e818a6d9aca2891646 /src/ne_auth.c
parent4deed310e502fdb409c722ab892d72f3887222cf (diff)
downloadneon-09d50b488f4f276b9d1142f100d30f8c2cfe018b.tar.gz
Split NE_AUTH_NEGOTIATE into NE_AUTH_GSSAPI and NE_AUTH_NTLM:
* src/ne_auth.h (NE_AUTH_GSSAPI, NE_AUTH_NTLM): New constants. * src/ne_auth.c (auth_register): Map NE_AUTH_NEGOTIATE into NE_AUTH_GSSAPI | NE_AUTH_NTLM. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1700 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'src/ne_auth.c')
-rw-r--r--src/ne_auth.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/ne_auth.c b/src/ne_auth.c
index cbf8d4d..8f7a1c2 100644
--- a/src/ne_auth.c
+++ b/src/ne_auth.c
@@ -1194,20 +1194,20 @@ static const struct auth_protocol protocols[] = {
digest_challenge, request_digest, verify_digest_response,
0 },
#ifdef HAVE_GSSAPI
- { NE_AUTH_NEGOTIATE, 30, "Negotiate",
+ { NE_AUTH_GSSAPI, 30, "Negotiate",
negotiate_challenge, request_negotiate, verify_negotiate_response,
AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
#endif
#ifdef HAVE_SSPI
- { NE_AUTH_NEGOTIATE, 30, "NTLM",
+ { NE_AUTH_NTLM, 30, "NTLM",
sspi_challenge, request_sspi, NULL,
AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
- { NE_AUTH_NEGOTIATE, 30, "Negotiate",
+ { NE_AUTH_GSSAPI, 30, "Negotiate",
sspi_challenge, request_sspi, NULL,
AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
#endif
#ifdef HAVE_NTLM
- { NE_AUTH_NEGOTIATE, 30, "NTLM",
+ { NE_AUTH_NTLM, 30, "NTLM",
ntlm_challenge, request_ntlm, NULL,
AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
#endif
@@ -1567,6 +1567,11 @@ static void auth_register(ne_session *sess, int isproxy, unsigned protomask,
}
}
+ if ((protomask & NE_AUTH_NEGOTIATE) == NE_AUTH_NEGOTIATE) {
+ /* Map NEGOTIATE to NTLM | GSSAPI. */
+ protomask |= NE_AUTH_GSSAPI | NE_AUTH_NTLM;
+ }
+
ahs = ne_get_session_private(sess, id);
if (ahs == NULL) {
ahs = ne_calloc(sizeof *ahs);
@@ -1591,7 +1596,7 @@ static void auth_register(ne_session *sess, int isproxy, unsigned protomask,
}
#ifdef HAVE_GSSAPI
- if (protomask & NE_AUTH_NEGOTIATE && ahs->gssname == GSS_C_NO_NAME) {
+ if ((protomask & NE_AUTH_GSSAPI) && ahs->gssname == GSS_C_NO_NAME) {
ne_uri uri = {0};
if (isproxy)