aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/url.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/lib/url.c b/lib/url.c
index b2dac8bcb..94c9bc681 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -6256,6 +6256,17 @@ static CURLcode create_conn(struct Curl_easy *data,
}
}
+#ifdef USE_UNIX_SOCKETS
+ if(data->set.str[STRING_UNIX_SOCKET_PATH]) {
+ conn->unix_domain_socket = strdup(data->set.str[STRING_UNIX_SOCKET_PATH]);
+ if(conn->unix_domain_socket == NULL) {
+ result = CURLE_OUT_OF_MEMORY;
+ goto out;
+ }
+ conn->abstract_unix_socket = data->set.abstract_unix_socket;
+ }
+#endif
+
#ifndef CURL_DISABLE_PROXY
/*************************************************************
* Extract the user and password from the authentication string
@@ -6310,17 +6321,10 @@ static CURLcode create_conn(struct Curl_easy *data,
Curl_safefree(no_proxy);
#ifdef USE_UNIX_SOCKETS
- if(data->set.str[STRING_UNIX_SOCKET_PATH]) {
- if(proxy) {
- free(proxy); /* Unix domain sockets cannot be proxied, so disable it */
- proxy = NULL;
- }
- conn->unix_domain_socket = strdup(data->set.str[STRING_UNIX_SOCKET_PATH]);
- if(conn->unix_domain_socket == NULL) {
- result = CURLE_OUT_OF_MEMORY;
- goto out;
- }
- conn->abstract_unix_socket = data->set.abstract_unix_socket;
+ /* For the time being do not mix proxy and unix domain sockets. See #1274 */
+ if(proxy && conn->unix_domain_socket) {
+ free(proxy);
+ proxy = NULL;
}
#endif