diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-06-19 14:10:33 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-06-19 16:39:22 +0200 |
commit | b778ae4c5e5bcb6da4de789e25971f40f0673d86 (patch) | |
tree | 6a710c4bf1a37e78a5b613109af46dd6762369bd /src | |
parent | 176ec5138277fcda592fa604e499dfd6819eece9 (diff) | |
download | curl-b778ae4c5e5bcb6da4de789e25971f40f0673d86.tar.gz |
http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASH
... to enable sending "OPTIONS *" which wasn't possible previously.
This option currently only works for HTTP.
Added test cases 1298 + 1299 to verify
Fixes #1280
Closes #1462
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_cfgable.h | 1 | ||||
-rw-r--r-- | src/tool_getparam.c | 7 | ||||
-rw-r--r-- | src/tool_help.c | 2 | ||||
-rw-r--r-- | src/tool_operate.c | 2 |
4 files changed, 11 insertions, 1 deletions
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 8d74905d9..f6536e8e4 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -144,6 +144,7 @@ struct OperationConfig { bool readbusy; /* set when reading input returns EAGAIN */ bool globoff; bool use_httpget; + bool strip_path_slash; bool insecure_ok; /* set TRUE to allow insecure SSL connects */ bool proxy_insecure_ok; /* set TRUE to allow insecure SSL connects for proxy */ diff --git a/src/tool_getparam.c b/src/tool_getparam.c index bcb9e1ee2..642bba832 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -257,6 +257,7 @@ static const struct LongShort aliases[]= { {"Fs", "form-string", ARG_STRING}, {"g", "globoff", ARG_BOOL}, {"G", "get", ARG_NONE}, + {"Ga", "strip-path-slash", ARG_BOOL}, {"h", "help", ARG_BOOL}, {"H", "header", ARG_STRING}, {"Hp", "proxy-header", ARG_STRING}, @@ -1591,7 +1592,11 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */ break; case 'G': /* HTTP GET */ - config->use_httpget = TRUE; + if(subletter == 'a') { /* --strip-path-slash */ + config->strip_path_slash = TRUE; + } + else + config->use_httpget = TRUE; break; case 'h': /* h for help */ diff --git a/src/tool_help.c b/src/tool_help.c index 08a81f590..6d36e550f 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -400,6 +400,8 @@ static const struct helptxt helptext[] = { "Use SSLv3"}, {" --stderr", "Where to redirect stderr"}, + {" --strip-path-slash", + "Strip off the first slash of the path"}, {" --suppress-connect-headers", "Suppress proxy CONNECT response headers"}, {" --tcp-fastopen", diff --git a/src/tool_operate.c b/src/tool_operate.c index b80a77118..51a9aa9f6 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -972,6 +972,8 @@ static CURLcode operate_do(struct GlobalConfig *global, #endif /* !CURL_DISABLE_PROXY */ my_setopt(curl, CURLOPT_FAILONERROR, config->failonerror?1L:0L); + my_setopt(curl, CURLOPT_STRIP_PATH_SLASH, + config->strip_path_slash?1L:0L); my_setopt(curl, CURLOPT_UPLOAD, uploadfile?1L:0L); my_setopt(curl, CURLOPT_DIRLISTONLY, config->dirlistonly?1L:0L); my_setopt(curl, CURLOPT_APPEND, config->ftp_append?1L:0L); |