diff options
author | Daniel Stenberg <daniel@haxx.se> | 2001-01-26 15:52:01 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2001-01-26 15:52:01 +0000 |
commit | fcb347d1249df552ef37faf47e2a15dbed5e7ce5 (patch) | |
tree | dc182c3d2ab87357d685141b9326381b27e3c282 | |
parent | c331ef02f9f2284c49826ac1485e8d1b1bd890f1 (diff) |
Added a httpreq field in the main struct so that there's one field to check
for what HTTP request that is being used. The old bit-style fields are still
in there as well.
-rw-r--r-- | lib/url.c | 9 | ||||
-rw-r--r-- | lib/urldata.h | 22 |
2 files changed, 24 insertions, 7 deletions
@@ -301,6 +301,8 @@ CURLcode curl_open(CURL **curl, char *url) data->current_speed = -1; /* init to negative == impossible */ + data->httpreq = HTTPREQ_GET; /* Default HTTP request */ + *curl = data; return CURLE_OK; } @@ -340,6 +342,7 @@ CURLcode curl_setopt(CURL *curl, CURLoption option, ...) break; case CURLOPT_POST: data->bits.http_post = va_arg(param, long)?TRUE:FALSE; + data->httpreq = HTTPREQ_POST; break; case CURLOPT_FILETIME: data->bits.get_filetime = va_arg(param, long)?TRUE:FALSE; @@ -361,19 +364,17 @@ CURLcode curl_setopt(CURL *curl, CURLoption option, ...) break; case CURLOPT_PUT: data->bits.http_put = va_arg(param, long)?TRUE:FALSE; + data->httpreq = HTTPREQ_PUT; break; case CURLOPT_MUTE: data->bits.mute = va_arg(param, long)?TRUE:FALSE; break; - case CURLOPT_TIMECONDITION: data->timecondition = va_arg(param, long); break; - case CURLOPT_TIMEVALUE: data->timevalue = va_arg(param, long); break; - case CURLOPT_SSLVERSION: data->ssl.version = va_arg(param, long); break; @@ -405,10 +406,12 @@ CURLcode curl_setopt(CURL *curl, CURLoption option, ...) break; case CURLOPT_CUSTOMREQUEST: data->customrequest = va_arg(param, char *); + data->httpreq = HTTPREQ_CUSTOM; break; case CURLOPT_HTTPPOST: data->httppost = va_arg(param, struct HttpPost *); data->bits.http_formpost = data->httppost?1:0; + data->httpreq = HTTPREQ_POST_FORM; break; case CURLOPT_INFILE: data->in = va_arg(param, FILE *); diff --git a/lib/urldata.h b/lib/urldata.h index 6a56eb1d0..e053caffd 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -278,9 +278,25 @@ struct FTP { char *file; /* decoded file */ }; +typedef enum { + HTTPREQ_NONE, /* first in list */ + HTTPREQ_GET, + HTTPREQ_POST, + HTTPREQ_POST_FORM, /* we make a difference internally */ + HTTPREQ_PUT, + HTTPREQ_CUSTOM, + HTTPREQ_LAST /* last in list */ +} Curl_HttpReq; + /* This struct is for boolean settings that define how to behave during this session. */ struct Configbits { + /* these four request types mirror the httpreq field */ + bool http_formpost; + bool http_post; + bool http_put; + bool http_get; + bool get_filetime; bool tunnel_thru_httpproxy; bool ftp_append; @@ -290,10 +306,7 @@ struct Configbits { bool hide_progress; bool http_fail_on_error; bool http_follow_location; - bool http_formpost; bool http_include_header; - bool http_post; - bool http_put; bool http_set_referer; bool http_auto_referer; /* set "correct" referer when following location: */ bool httpproxy; @@ -308,7 +321,6 @@ struct Configbits { bool verbose; bool this_is_a_follow; /* this is a followed Location: request */ bool krb4; /* kerberos4 connection requested */ - bool proxystringalloc; /* the http proxy string is malloc()'ed */ bool rangestringalloc; /* the range string is malloc()'ed */ bool urlstringalloc; /* the URL string is malloc()'ed */ @@ -481,6 +493,8 @@ struct UrlData { TimeCond timecondition; /* kind of comparison */ time_t timevalue; /* what time to compare with */ + Curl_HttpReq httpreq; /* what kind of HTTP request (if any) is this */ + char *customrequest; /* http/ftp request to use */ char *headerbuff; /* allocated buffer to store headers in */ |