From 017ee34bbad9885e524f735401be7ad859cdbd84 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 25 May 2011 15:57:38 +0200 Subject: [PATCH] create_conn: only switch protocol handler if necessary When switching to HTTP because a HTTP proxy is being used, the existing handler is now checked if it already is "compatible". This allows the https handler remain while other non-http handlers will be redirected. Bug: http://curl.haxx.se/mail/lib-2011-05/0214.html Reported by: Jerome Robert --- lib/url.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/url.c b/lib/url.c index ac3399b9e8..d37fe6dfc9 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4812,8 +4812,11 @@ static CURLcode create_conn(struct SessionHandle *data, /* asking for a HTTP proxy is a bit funny when HTTP is disabled... */ return CURLE_UNSUPPORTED_PROTOCOL; #else - /* force this connection's protocol to become HTTP */ - conn->handler = &Curl_handler_http; + /* force this connection's protocol to become HTTP if not already + compatible */ + if(!(conn->handler->protocol & CURLPROTO_HTTP)) + conn->handler = &Curl_handler_http; + conn->bits.httpproxy = TRUE; #endif }