aboutsummaryrefslogtreecommitdiff
path: root/lib/http.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/http.c')
-rw-r--r--lib/http.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/http.c b/lib/http.c
index 89f5c7615..d537407d2 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -1409,8 +1409,15 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
keepon = FALSE;
else if(gotbytes <= 0) {
keepon = FALSE;
- error = SELECT_ERROR;
- failf(data, "Proxy CONNECT aborted");
+ if(data->set.proxyauth && data->state.authproxy.avail) {
+ /* proxy auth was requested and there was proxy auth available,
+ then deem this as "mere" proxy disconnect */
+ conn->bits.proxy_connect_closed = TRUE;
+ }
+ else {
+ error = SELECT_ERROR;
+ failf(data, "Proxy CONNECT aborted");
+ }
}
else {
/*
@@ -1590,6 +1597,8 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
}
break;
} /* switch */
+ if(Curl_pgrsUpdate(conn))
+ return CURLE_ABORTED_BY_CALLBACK;
} /* while there's buffer left and loop is requested */
if(error)