diff options
author | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2009-09-01 20:13:12 +0000 |
---|---|---|
committer | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2009-09-01 20:13:12 +0000 |
commit | 09d50b488f4f276b9d1142f100d30f8c2cfe018b (patch) | |
tree | 636ced4d3de5979d272e46e818a6d9aca2891646 /src/ne_auth.c | |
parent | 4deed310e502fdb409c722ab892d72f3887222cf (diff) | |
download | neon-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.c | 15 |
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) |