aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tool_cfgable.h1
-rw-r--r--src/tool_getparam.c6
-rw-r--r--src/tool_help.c3
-rw-r--r--src/tool_operate.c16
4 files changed, 20 insertions, 6 deletions
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index 5db86f4e3..0d2f765d2 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -230,6 +230,7 @@ struct OperationConfig {
bool nonpn; /* enable/disable TLS NPN extension */
bool noalpn; /* enable/disable TLS ALPN extension */
char *unix_socket_path; /* path to Unix domain socket */
+ bool abstract_unix_socket; /* path to an abstract Unix domain socket */
bool falsestart;
bool path_as_is;
double expect100timeout;
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index d8a3c07bc..2777a0a2e 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -183,6 +183,7 @@ static const struct LongShort aliases[]= {
{"$R", "expect100-timeout", TRUE},
{"$S", "tftp-no-options", FALSE},
{"$U", "connect-to", TRUE},
+ {"$W", "abstract-unix-socket", TRUE},
{"0", "http1.0", FALSE},
{"01", "http1.1", FALSE},
{"02", "http2", FALSE},
@@ -1024,6 +1025,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
#endif
break;
case 'M': /* --unix-socket */
+ config->abstract_unix_socket = FALSE;
GetStr(&config->unix_socket_path, nextarg);
break;
case 'N': /* --path-as-is */
@@ -1054,6 +1056,10 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
if(err)
return err;
break;
+ case 'W': /* --abstract-unix-socket */
+ config->abstract_unix_socket = TRUE;
+ GetStr(&config->unix_socket_path, nextarg);
+ break;
}
break;
case '#': /* --progress-bar */
diff --git a/src/tool_help.c b/src/tool_help.c
index a21a336d9..5085e542e 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -271,7 +271,8 @@ static const char *const helptext[] = {
" --tlsuser USER TLS username",
" --tlspassword STRING TLS password",
" --tlsauthtype STRING TLS authentication type (default: SRP)",
- " --unix-socket FILE Connect through this Unix domain socket",
+ " --unix-socket PATH Connect through this Unix domain socket",
+ " --abstract-unix-socket PATH Connect to an abstract Unix domain socket",
" -A, --user-agent STRING Send User-Agent STRING to server (H)",
" -v, --verbose Make the operation more talkative",
" -V, --version Show version number and quit",
diff --git a/src/tool_operate.c b/src/tool_operate.c
index eff939f8c..db53d0d5a 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -1393,11 +1393,17 @@ static CURLcode operate_do(struct GlobalConfig *global,
my_setopt(curl, CURLOPT_SSL_ENABLE_ALPN, 0L);
}
- /* new in 7.40.0 */
- if(config->unix_socket_path)
- my_setopt_str(curl, CURLOPT_UNIX_SOCKET_PATH,
- config->unix_socket_path);
-
+ /* new in 7.40.0, abstract support added in 7.53.0 */
+ if(config->unix_socket_path) {
+ if(config->abstract_unix_socket) {
+ my_setopt_str(curl, CURLOPT_ABSTRACT_UNIX_SOCKET,
+ config->unix_socket_path);
+ }
+ else {
+ my_setopt_str(curl, CURLOPT_UNIX_SOCKET_PATH,
+ config->unix_socket_path);
+ }
+ }
/* new in 7.45.0 */
if(config->proto_default)
my_setopt_str(curl, CURLOPT_DEFAULT_PROTOCOL, config->proto_default);