mirror of
https://github.com/curl/curl.git
synced 2026-07-24 16:47:16 +03:00
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
This commit is contained in:
parent
176ec51382
commit
b778ae4c5e
21 changed files with 220 additions and 25 deletions
|
|
@ -1851,6 +1851,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
|||
case HTTPREQ_PUT:
|
||||
request = "PUT";
|
||||
break;
|
||||
case HTTPREQ_OPTIONS:
|
||||
request = "OPTIONS";
|
||||
break;
|
||||
default: /* this should never happen */
|
||||
case HTTPREQ_GET:
|
||||
request = "GET";
|
||||
|
|
@ -2266,6 +2269,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
|||
if(result)
|
||||
return result;
|
||||
|
||||
if(data->set.strip_path_slash)
|
||||
ppath++;
|
||||
|
||||
/* url */
|
||||
if(paste_ftp_userpwd)
|
||||
result = Curl_add_bufferf(req_buffer, "ftp://%s:%s@%s",
|
||||
|
|
|
|||
|
|
@ -829,6 +829,10 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option,
|
|||
then this can be changed to HEAD later on) */
|
||||
data->set.httpreq = HTTPREQ_GET;
|
||||
break;
|
||||
case CURLOPT_STRIP_PATH_SLASH:
|
||||
arg = va_arg(param, long);
|
||||
data->set.strip_path_slash = (bool)arg;
|
||||
break;
|
||||
case CURLOPT_FILETIME:
|
||||
/*
|
||||
* Try to get the file time of the remote document. The time will
|
||||
|
|
|
|||
|
|
@ -1264,6 +1264,7 @@ typedef enum {
|
|||
HTTPREQ_POST_FORM, /* we make a difference internally */
|
||||
HTTPREQ_PUT,
|
||||
HTTPREQ_HEAD,
|
||||
HTTPREQ_OPTIONS,
|
||||
HTTPREQ_CUSTOM,
|
||||
HTTPREQ_LAST /* last in list */
|
||||
} Curl_HttpReq;
|
||||
|
|
@ -1698,6 +1699,7 @@ struct UserDefined {
|
|||
Curl_HttpReq httpreq; /* what kind of HTTP request (if any) is this */
|
||||
long httpversion; /* when non-zero, a specific HTTP version requested to
|
||||
be used in the library's request(s) */
|
||||
bool strip_path_slash; /* strip off initial slash from path */
|
||||
struct ssl_config_data ssl; /* user defined SSL stuff */
|
||||
struct ssl_config_data proxy_ssl; /* user defined SSL stuff for proxy */
|
||||
struct ssl_general_config general_ssl; /* general user defined SSL stuff */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue