url: fix unix-socket support for proxy-disabled builds
Prior to this change if curl was built with Unix Socket support
(--enable-unix-sockets) and without Proxy support (--disable-proxy) then
unix socket options would erroneously be ignored.
Regression introduced in:
0b8d682f81ee9acb763dd4c9ad805fe08d1227c0
Bug: https://github.com/curl/curl/issues/1274
Reported-by: mccormickt12@users.noreply.github.com
Closes https://github.com/curl/curl/pull/1289
diff --git a/lib/url.c b/lib/url.c
index b2dac8b..94c9bc6 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -6256,6 +6256,17 @@
}
}
+#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 @@
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