curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support. 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 Daniel himself.

Combination of --unix-socket and --proxy http://...

From: Fabian Keil via curl-library <curl-library_at_lists.haxx.se>
Date: Fri, 15 May 2026 12:05:33 +0200

After updating git master today I noticed that tests
1435 and 1436 fail when trying to run them through Privoxy's
test framework.

I have not yet bisected to see why the tests fail now and
appeared to work previously but suspect that Privoxy silently
wasn't being used and I just wasn't aware of it.

Currently the failure for test 1435 looks like this:

    fk_at_t520 ~ $~/git/privoxy/tests/cts/run-privoxy-tests.sh -t upstream-tests -- -v 1435
    Passing remaining arguments to runtests-wrapper.sh: -v 1435
    Test scenario: upstream-tests
    Not setting TESTDIR
    Using curl: /home/fk/git/curl/src/curl
    CMD (0): /home/fk/git/curl/src/curl --version 1>log/curlverout.log 2>log/curlvererr.log
    ********* System characteristics ********
    * curl 8.21.0-DEV (amd64-unknown-freebsd15.1)
    * libcurl/8.21.0-DEV OpenSSL/3.0.19 zlib/1.3.2 brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.5 nghttp2/1.68.1
    * Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt mqtts pop3 pop3s smtp smtps telnet tftp ws wss
    * Features: alt-svc AsynchDNS brotli Debug HSTS HTTP2 HTTPS-proxy IDN IPv6 Largefile libz PSL SSL threadsafe TLS-SRP UnixSockets zstd
    * Disabled: win32-ca-searchpath, win32-ca-search-safe, override-dns, ssl-sessions
    * Host: t520.local
    * System: ElectroBSD t520.local 15.1-STABLE ElectroBSD 15.1-STABLE #64 electrobsd-15-n283851-9c91bf3b2a6e: 2026-05-13 00:59:16 +0000 fk_at_t520.local:/usr/obj/usr/src/amd64.amd64/sys/ELECTRO_BEER amd64
    * OS: freebsd
    * Perl: v5.42.2 (/usr/local/bin/perl)
    * Args: -c /home/fk/git/curl/src/curl -L /home/fk/git/privoxy/tests/cts/privoxy-runtests.pm -P http://127.0.0.1:9119/ -E /home/fk/git/privoxy/tests/cts/curl-test-manifest-for-privoxy -a -n HTTP !skip HTTP -v 1435
    * Seed: 260565
    * Servers: SSL HTTP-IPv6 HTTP-unix FTP-IPv6
    *****************************************
    DISABLED: test 323
    DISABLED: test 594
    DISABLED: test 836
    DISABLED: test 882
    DISABLED: test 938
    DISABLED: test 1182
    DISABLED: test 1184
    DISABLED: test 1209
    DISABLED: test 1211
    DISABLED: test 1307
    DISABLED: test 1316
    DISABLED: test 1512
    DISABLED: test 1801
    DISABLED: test 2043
    startnew: /usr/local/bin/perl -I. -I. ./http-server.pl --keepalive 30 --pidfile "log/server/http_unix_server.pid" --logfile "log/http_unix_server.log" --logdir "log" --portfile log/server/http_unix_server.port --config log/server.cmd --unix-socket '/home/fk/git/curl/tests/log/server/http-uds' --srcdir "."
    RUN: HTTP-unix server is on PID 28 port 8999
    * pid http-unix => 28 28
    test 1435...[simple HTTP GET over Unix socket]
    /home/fk/git/curl/src/curl -q --output log/curl1435.out --include --trace-ascii log/trace1435 --trace-time --unix-socket /home/fk/git/curl/tests/log/server/http-uds http://server-interpreted.example.com/1435 --proxy http://127.0.0.1:9119/ > log/stdout1435 2> log/stderr1435
    CMD (14336): /home/fk/git/curl/src/curl -q --output log/curl1435.out --include --trace-ascii log/trace1435 --trace-time --unix-socket /home/fk/git/curl/tests/log/server/http-uds http://server-interpreted.example.com/1435 --proxy http://127.0.0.1:9119/ > log/stdout1435 2> log/stderr1435
    Expecting crlf
    Expecting no Connection: header
    Expecting no Proxy-Connection: header
    Skipping 'Proxy-Connection: Keep-Alive'

     1435: protocol FAILED:
    Unprocessed headers:
    --- log/check-expected 2026-05-15 11:23:43.825752000 +0200
    +++ log/check-generated 2026-05-15 11:23:43.825570000 +0200
    _at__at_ -1,5 +1,5 _at__at_
    -GET /1435 HTTP/1.1[CR][LF]
    -Host: server-interpreted.example.com[CR][LF]
    +CONNECT /home/fk/git/curl/tests/log/server/http-uds:0 HTTP/1.1[CR][LF]
    +Host: /home/fk/git/curl/tests/log/server/http-uds:0[CR][LF]
     User-Agent: curl/8.21.0-DEV[CR][LF]
    -Accept: */*[CR][LF]
    +Proxy-Connection: Keep-Alive[CR][LF]
     [CR][LF]
    Processed headers:
    Expecting crlf
    Expecting no Connection: header
    Expecting no Proxy-Connection: header
    Skipping 'Proxy-Connection: Keep-Alive'
    --- log/check-expected 2026-05-15 11:23:43.833750000 +0200
    +++ log/check-generated 2026-05-15 11:23:43.833643000 +0200
    _at__at_ -1,5 +1,4 _at__at_
    -GET /1435 HTTP/1.1[CR][LF]
    -Host: server-interpreted.example.com[CR][LF]
    +CONNECT /home/fk/git/curl/tests/log/server/http-uds:0 HTTP/1.1[CR][LF]
    +Host: /home/fk/git/curl/tests/log/server/http-uds:0[CR][LF]
     User-Agent: curl/8.21.0-DEV[CR][LF]
    -Accept: */*[CR][LF]
     [CR][LF]
    * kill pid for http-unix => 28
    RUN: Process with pid 28 signalled to die
    RUN: Process with pid 28 gracefully died
    TESTDONE: 1 tests were considered during 1 seconds.
    TESTDONE: 0 tests out of 1 reported OK: 0%

    FAIL 1435: 'simple HTTP GET over Unix socket' HTTP, HTTP GET, UnixSockets

    TESTFAIL: These test cases failed: 1435

As far as I can tell, Privoxy isn't actually being used and it
does not support Unix domain sockets anyway.

I obviously don't actually expect the test to work when using Privoxy
and only bring this up because the generated request looks invalid to
me.

Is the combination of --unix-socket and --proxy http://... expected
to work?

If not, it should probably be explicitly rejected.

Fabian
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
Received on 2026-05-15