cURL / Mailing Lists / curl-library / Single Mail


User in URL with no_proxy - patch

From: James Bursa <>
Date: Fri, 15 May 2009 07:07:17 -0500

Fetching a URL with an embedded user and password when both the http_proxy and
no_proxy environment variables are set doesn't work correctly. For example:

$ export http_proxy=http://localhost:3128/
$ export no_proxy=

This works as expected:

$ curl -v
* About to connect() to port 80 (#0)

but this attempts to go through the proxy anyway:

$ curl -v http://u:p@
* About to connect() to proxy localhost port 3128 (#0)

I think the cause is the order of operations in create_conn(), which does
proxy detection before removing the user and password from conn->

The attached patch reorders the code to fix it. The reasoning behind this is:

1. ParseURLAndFillConnection() fills in conn->protostr and may also do
   conn->protocol |= PROT_MISSING
2. setup_connection_internals() uses conn->protostr and sets conn->protocol
3. parse_url_userpass() needs conn->protocol

so the patch keeps these in the same order, but moves them before proxy
detection so that proxy detection gets the conn-> altered by

This problem came up on the #curl IRC channel.


Received on 2009-05-15