- David Byron found and fixed a small bug with the --fail and authentication

stuff added a few weeks ago.  Turns out that if you specify --proxy-ntlm and
  communicate with a proxy that requires basic authentication, the proxy
  properly returns a 407, but the failure detection code doesn't realize it
  should give up, so curl returns with exit code 0. Test case 162 verifies
  this.
This commit is contained in:
Daniel Stenberg 2004-04-22 20:07:41 +00:00
parent 84406b3e2c
commit 2ff30d067c
6 changed files with 86 additions and 7 deletions

View file

@ -22,7 +22,7 @@ test80 test81 test82 test83 test84 test85 test86 test87 test507 \
test149 test88 test89 test90 test508 test91 test92 test203 test93 \
test94 test95 test509 test510 test97 test98 test99 test150 test151 \
test152 test153 test154 test155 test156 test157 test158 test159 test511 \
test160 test161
test160 test161 test162
# 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

45
tests/data/test162 Normal file
View file

@ -0,0 +1,45 @@
# Server-side
<reply>
<data1001 nocheck=1>
HTTP/1.0 407 BAD BOY
Proxy-Authenticate: Basic realm="Squid proxy-caching web server"
Server: swsclose
Content-Type: text/html
Even though it's the response code that triggers authentication, we're
using NTLM and the server isn't, so we should fail. We know the server
isn't because there's no Proxy-Authorization: NTLM header
</data1001>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET asking for --proxy-ntlm when some other authentication is required
</name>
<command>
http://%HOSTIP:%HOSTPORT/162 --proxy http://%HOSTIP:%HOSTPORT --proxy-user foo:bar --proxy-ntlm --fail
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent: curl/.*
</strip>
<protocol>
GET http://127.0.0.1:8999/162 HTTP/1.1
Proxy-Authorization: NTLM TlRMTVNTUAABAAAAAgIAAAAAAAAgAAAAAAAAACAAAAA=
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<errorcode>
22
</errorcode>
</verify>