setopt: clear proxy auth properties when switching

Verify with test 1588

Closes #21453
This commit is contained in:
Daniel Stenberg 2026-04-27 09:14:51 +02:00
parent 7586ca7455
commit c1cfdf59ac
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
6 changed files with 275 additions and 2 deletions

View file

@ -209,6 +209,7 @@ test1556 test1557 test1558 test1559 test1560 test1561 test1562 test1563 \
test1564 test1565 test1566 test1567 test1568 test1569 test1570 test1571 \
test1572 test1573 test1574 test1575 test1576 test1577 test1578 test1579 \
test1580 test1581 test1582 test1583 test1584 test1585 test1586 test1587 \
test1588 \
\
test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 \
test1598 test1599 test1600 test1601 test1602 test1603 test1604 test1605 \

106
tests/data/test1588 Normal file
View file

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP proxy
HTTP proxy Digest auth
multi
</keywords>
</info>
# Server-side
<reply>
# this is returned first since we get no proxy-auth
<data crlf="headers">
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 33
And you should ignore this data.
</data>
# then this is returned when we get proxy-auth
<data1000 crlf="headers">
HTTP/1.1 200 OK
Content-Length: 21
Server: no
Nice proxy auth sir!
</data1000>
<datacheck crlf="headers">
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 33
HTTP/1.1 200 OK
Content-Length: 21
Server: no
Nice proxy auth sir!
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 33
HTTP/1.1 200 OK
Content-Length: 21
Server: no
Nice proxy auth sir!
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
# tool is what to use instead of 'curl'
<tool>
lib%TESTNUMBER
</tool>
<features>
!SSPI
crypto
proxy
digest
</features>
<name>
HTTP proxy auth Digest, then change proxy and do it again
</name>
<command>
http://test.remote.example.com/path/%TESTNUMBER %HOSTIP %HTTPPORT silly:person custom.set.host.name
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol crlf="headers">
GET http://test.remote.example.com/path/1588 HTTP/1.1
Host: test.remote.example.com
Accept: */*
Proxy-Connection: Keep-Alive
GET http://test.remote.example.com/path/1588 HTTP/1.1
Host: test.remote.example.com
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/1588", response="d0b2f000c7e3fca24452b5810713404a"
Accept: */*
Proxy-Connection: Keep-Alive
GET http://test.remote.example.com/path/1588 HTTP/1.1
Host: test.remote.example.com
Accept: */*
Proxy-Connection: Keep-Alive
GET http://test.remote.example.com/path/1588 HTTP/1.1
Host: test.remote.example.com
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/1588", response="d0b2f000c7e3fca24452b5810713404a"
Accept: */*
Proxy-Connection: Keep-Alive
</protocol>
</verify>
</testcase>