diff --git a/lib/http.c b/lib/http.c index 28799a6a44..d86b34fa31 100644 --- a/lib/http.c +++ b/lib/http.c @@ -407,7 +407,7 @@ Curl_http_output_auth(struct connectdata *conn, if (conn->bits.httpproxy && (conn->bits.tunnel_proxy == proxytunnel)) { #if defined(USE_SSLEAY) || defined(USE_WINDOWS_SSPI) - if(authproxy->want == CURLAUTH_NTLM) { + if(authproxy->picked == CURLAUTH_NTLM) { auth=(char *)"NTLM"; result = Curl_output_ntlm(conn, TRUE); if(result) @@ -415,7 +415,7 @@ Curl_http_output_auth(struct connectdata *conn, } else #endif - if(authproxy->want == CURLAUTH_BASIC) { + if(authproxy->picked == CURLAUTH_BASIC) { /* Basic */ if(conn->bits.proxy_user_passwd && !checkheaders(data, "Proxy-authorization:")) { @@ -429,7 +429,7 @@ Curl_http_output_auth(struct connectdata *conn, authproxy->done = TRUE; } #ifndef CURL_DISABLE_CRYPTO_AUTH - else if(authproxy->want == CURLAUTH_DIGEST) { + else if(authproxy->picked == CURLAUTH_DIGEST) { auth=(char *)"Digest"; result = Curl_output_digest(conn, TRUE, /* proxy */ @@ -463,7 +463,7 @@ Curl_http_output_auth(struct connectdata *conn, { auth = NULL; #ifdef HAVE_GSSAPI - if((authhost->want == CURLAUTH_GSSNEGOTIATE) && + if((authhost->picked == CURLAUTH_GSSNEGOTIATE) && data->state.negotiate.context && !GSS_ERROR(data->state.negotiate.status)) { auth=(char *)"GSS-Negotiate"; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 2a0396b7f9..913c8226d5 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -32,7 +32,8 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test223 test224 test206 test207 test208 test209 test213 test240 \ test241 test242 test519 test214 test215 test216 test217 test218 \ test199 test225 test226 test227 test230 test231 test232 test228 \ - test229 test233 test234 test235 test236 test520 test237 test238 + test229 test233 test234 test235 test236 test520 test237 test238 \ + test239 test243 # The following tests have been removed from the dist since they no longer # work. We need to fix the test suite's FTPS server first, then bring them diff --git a/tests/data/test239 b/tests/data/test239 new file mode 100644 index 0000000000..6df716f92a --- /dev/null +++ b/tests/data/test239 @@ -0,0 +1,80 @@ +# Server-side + + +# this is returned first since we get no proxy-auth + +HTTP/1.1 407 Authorization Required to proxy me my dear +Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== +Content-Length: 33 + +Hey you, authenticate or go away! + + +# This is supposed to be returned when the server gets the second +# Authorization: NTLM line passed-in from the client + +HTTP/1.1 200 Things are fine in proxy land swsclose +Server: Microsoft-IIS/5.0 +Content-Type: text/html; charset=iso-8859-1 +Content-Length; 42 + +Contents of that page you requested, sir. + + + +HTTP/1.1 407 Authorization Required to proxy me my dear +Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== +Content-Length: 33 + +HTTP/1.1 200 Things are fine in proxy land swsclose +Server: Microsoft-IIS/5.0 +Content-Type: text/html; charset=iso-8859-1 +Content-Length; 42 + +Contents of that page you requested, sir. + + + +# Client-side + + +http + + +NTLM + + +HTTP proxy-auth NTLM and then POST + + +http://%HOSTIP:%HTTPPORT/239 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm -d "postit" + + + +# Verify data after the test has been "shot" + + +^User-Agent: curl/.* + + +POST http://%HOSTIP:%HTTPPORT/239 HTTP/1.1 +Proxy-Authorization: NTLM TlRMTVNTUAABAAAAAgIAAAAAAAAgAAAAAAAAACAAAAA= +User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 +Host: %HOSTIP:%HTTPPORT +Pragma: no-cache +Accept: */* +Content-Length: 0 +Content-Type: application/x-www-form-urlencoded + +POST http://127.0.0.1:8990/239 HTTP/1.1 +Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEUAAAAYABgAXQAAAAAAAABAAAAABQAFAEAAAAAAAAAARQAAAAAAAAB1AAAAAYIAAHNpbGx5oB5CPMq0JDu5tbxLow3sHn3jfoYDE+7QJVE7DA0GyDEwvj2BxsBctP9tT4fnCtL1 +User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 +Host: 127.0.0.1:8990 +Pragma: no-cache +Accept: */* +Content-Length: 6 +Content-Type: application/x-www-form-urlencoded + +postit + + diff --git a/tests/data/test243 b/tests/data/test243 new file mode 100644 index 0000000000..fd3f6a939c --- /dev/null +++ b/tests/data/test243 @@ -0,0 +1,108 @@ +# Server-side + + + +HTTP/1.1 407 Authorization Required swsclose +Server: Apache/1.3.27 (Darwin) PHP/4.1.2 +Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" +Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" +Proxy-Authenticate: NTLM +Content-Type: text/html; charset=iso-8859-1 +Connection: close + +This is not the real page + + +# this is returned first since we get no proxy-auth + +HTTP/1.1 407 Authorization Required to proxy me my dear +Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== +Content-Length: 33 + +Hey you, authenticate or go away! + + +# This is supposed to be returned when the server gets the second +# Authorization: NTLM line passed-in from the client + +HTTP/1.1 200 Things are fine in proxy land swsclose +Server: Microsoft-IIS/5.0 +Content-Type: text/html; charset=iso-8859-1 +Content-Length; 42 + +Contents of that page you requested, sir. + + + +HTTP/1.1 407 Authorization Required swsclose +Server: Apache/1.3.27 (Darwin) PHP/4.1.2 +Proxy-Authenticate: Blackmagic realm="gimme all yer s3cr3ts" +Proxy-Authenticate: Basic realm="gimme all yer s3cr3ts" +Proxy-Authenticate: NTLM +Content-Type: text/html; charset=iso-8859-1 +Connection: close + +HTTP/1.1 407 Authorization Required to proxy me my dear +Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== +Content-Length: 33 + +HTTP/1.1 200 Things are fine in proxy land swsclose +Server: Microsoft-IIS/5.0 +Content-Type: text/html; charset=iso-8859-1 +Content-Length; 42 + +Contents of that page you requested, sir. + + + +# Client-side + + +http + + +NTLM + + +HTTP POST with --proxy-anyauth, picking NTLM + + +http://%HOSTIP:%HTTPPORT/243 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-anyauth -d "postit" + + + +# Verify data after the test has been "shot" + + +^User-Agent: curl/.* + + +POST http://127.0.0.1:8990/243 HTTP/1.1 +User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 +Host: 127.0.0.1:8990 +Pragma: no-cache +Accept: */* +Content-Length: 6 +Content-Type: application/x-www-form-urlencoded + +postitPOST http://%HOSTIP:%HTTPPORT/243 HTTP/1.1 +Proxy-Authorization: NTLM TlRMTVNTUAABAAAAAgIAAAAAAAAgAAAAAAAAACAAAAA= +User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 +Host: %HOSTIP:%HTTPPORT +Pragma: no-cache +Accept: */* +Content-Length: 0 +Content-Type: application/x-www-form-urlencoded + +POST http://127.0.0.1:8990/243 HTTP/1.1 +Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEUAAAAYABgAXQAAAAAAAABAAAAABQAFAEAAAAAAAAAARQAAAAAAAAB1AAAAAYIAAHNpbGx5oB5CPMq0JDu5tbxLow3sHn3jfoYDE+7QJVE7DA0GyDEwvj2BxsBctP9tT4fnCtL1 +User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 +Host: 127.0.0.1:8990 +Pragma: no-cache +Accept: */* +Content-Length: 6 +Content-Type: application/x-www-form-urlencoded + +postit + +