cURL / Mailing Lists / curl-library / Single Mail

curl-library

Proxy-Connection Header

From: Toshiyuki Maezawa <toshiyuki.maezawa_at_fujixerox.co.jp>
Date: Tue, 04 Jul 2006 17:40:27 +0900 (JST)

Hi,

I am trying to do GET/POST request via proxy and I want to add
"Proxy-Connection: close" header in the HTTP request.

Below is my sample code:

---
        curl = curl_easy_init();
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_PROXY, proxy);
        headers = curl_slist_append(headers, "Proxy-Connection: close");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_perform(curl);
---
I compiled it using libcurl/7.15.4, but this sample program sends
these two headers in the GET request: "Proxy-Connection: Keep-Alive"
and "Proxy-Connection: close".
My understanding is that it sends only "Proxy-Connection: close",
because a description of CURLOPT_HTTPHEADER in a manual says below.
    "If you add a header that is otherwise generated and used by
    libcurl internally, your added one will be used instead."
Is this my misunderstanding or a bug? If it is a bug, a patch below
seems to fix it.
--- http.c.orig	2006-05-06 07:14:40.000000000 +0900
+++ http.c	2006-07-04 16:11:03.629658000 +0900
@@ -1970,7 +1970,7 @@
                 (data->set.encoding && *data->set.encoding && conn->allocptr.accept_encoding)?
                 conn->allocptr.accept_encoding:"",
                 (data->change.referer && conn->allocptr.ref)?conn->allocptr.ref:"" /* Referer: <data> */,
-                (conn->bits.httpproxy && !conn->bits.tunnel_proxy)?
+                (conn->bits.httpproxy && !conn->bits.tunnel_proxy && !checkheaders(data, "Proxy-Connection:"))?
                   "Proxy-Connection: Keep-Alive\r\n":"",
                 te
                 );
---
Thanks
Received on 2006-07-04