curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Expected behaviour of CURL_ALTSVC_HTTP and --proxy

From: Fabian Keil via curl-library <curl-library_at_lists.haxx.se>
Date: Sat, 21 May 2022 14:31:00 +0200

The recently added tests 412 and 413 fail when using Privoxy as proxy.

Looking at the trace output it seems that curl is tunnelling
the requests when --proxy is being used even though it's vanilla
http:// and not https://:

fk_at_t520 ~/git/curl/tests $cat log/trace412
14:12:58.973024 == Info: STATE: INIT => CONNECT handle 0x8010f3808; line 1833 (connection #-5000)
14:12:58.974144 == Info: Alt-svc connecting from [h1]whohoo.:12345 to [h1]127.0.0.1:20000
14:12:58.974251 == Info: Added connection 0. The cache now contains 1 members
14:12:58.974347 == Info: family0 == v4, family1 == v6
14:12:58.974395 == Info: Trying 127.0.0.1:9119...
14:12:58.974541 == Info: STATE: CONNECT => CONNECTING handle 0x8010f3808; line 1894 (connection #0)
14:12:58.978205 == Info: Connected to 127.0.0.1 (127.0.0.1) port 9119 (#0)
14:12:58.978231 == Info: STATE: CONNECTING => TUNNELING handle 0x8010f3808; line 2028 (connection #0)
14:12:58.978292 == Info: allocate connect buffer
14:12:58.978308 == Info: Establish HTTP proxy tunnel to 127.0.0.1:20000
14:12:58.978464 => Send header, 118 bytes (0x76)
0000: CONNECT 127.0.0.1:20000 HTTP/1.1
0022: Host: 127.0.0.1:20000
0039: User-Agent: curl/7.84.0-DEV
0056: Proxy-Connection: Keep-Alive
0074:
14:12:58.980376 <= Recv header, 37 bytes (0x25)
0000: HTTP/1.1 200 Connection established
14:12:58.980691 <= Recv header, 2 bytes (0x2)
0000:
14:12:58.980757 == Info: Proxy replied 200 to CONNECT request
14:12:58.980780 == Info: CONNECT phase completed
14:12:58.980801 == Info: STATE: TUNNELING => PROTOCONNECT handle 0x8010f3808; line 2000 (connection #0)
14:12:58.980827 == Info: STATE: PROTOCONNECT => DO handle 0x8010f3808; line 2049 (connection #0)
14:12:58.980989 => Send header, 111 bytes (0x6f)
0000: GET /412 HTTP/1.1
0013: Host: whohoo.:12345
0028: User-Agent: curl/7.84.0-DEV
0045: Accept: */*
0052: Alt-Used: 127.0.0.1:20000
006d:
14:12:58.981111 == Info: STATE: DO => DID handle 0x8010f3808; line 2145 (connection #0)
14:12:58.981136 == Info: STATE: DID => PERFORMING handle 0x8010f3808; line 2264 (connection #0)
14:12:58.982792 == Info: Mark bundle as not supporting multiuse
14:12:58.982812 == Info: HTTP 1.1 or later with persistent connection
14:12:58.982829 <= Recv header, 16 bytes (0x10)
0000: HTTP/1.1 200 OK.
14:12:58.982909 <= Recv header, 36 bytes (0x24)
0000: Date: Tue, 09 Nov 2010 14:49:00 GMT.
14:12:58.982983 <= Recv header, 18 bytes (0x12)
0000: Content-Length: 6.
14:12:58.983033 <= Recv header, 18 bytes (0x12)
0000: Connection: close.
14:12:58.983088 <= Recv header, 24 bytes (0x18)
0000: Content-Type: text/html.
14:12:58.983136 <= Recv header, 19 bytes (0x13)
0000: Funny-head: yesyes.
14:12:58.983186 <= Recv header, 1 bytes (0x1)
0000: .
14:12:58.983220 <= Recv data, 6 bytes (0x6)
0000: -foo-.
14:12:58.983272 == Info: STATE: PERFORMING => DONE handle 0x8010f3808; line 2463 (connection #0)
14:12:58.983293 == Info: multi_done: status: 0 prem: 0 done: 0
14:12:58.984670 == Info: The cache now contains 0 members
14:12:58.984700 == Info: Closing connection 0
14:12:58.984829 == Info: Expire cleared (transfer 0x8010f3808)

Is that the expected behaviour or a bug?

Fabian


-- 
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html
Received on 2022-05-21