diff options
author | Daniel Stenberg <daniel@haxx.se> | 2000-07-25 07:34:04 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2000-07-25 07:34:04 +0000 |
commit | 6bdfe18b67b0eb300cf7d78e6bfddfea59de0594 (patch) | |
tree | 369fb3a1800f4947c16bf9a570020a6ab22cc635 | |
parent | 78686a548780342ba98ab439bc19ace0abc45cff (diff) |
Added some logic that now prevents multiple conflicting HTTP request types
to get specified with the options.
-rw-r--r-- | src/main.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c index 72fb0504d..9de214c73 100644 --- a/src/main.c +++ b/src/main.c @@ -80,6 +80,16 @@ #include <fcntl.h> #endif +typedef enum { + HTTPREQ_UNSPEC, + HTTPREQ_GET, + HTTPREQ_HEAD, + HTTPREQ_POST, + HTTPREQ_SIMPLEPOST, + HTTPREQ_CUSTOM, + HTTPREQ_LAST +} HttpReq; + /* Just a set of bits */ #define CONF_DEFAULT 0 @@ -186,6 +196,16 @@ void main_free(void) win32_cleanup(); } +int SetHTTPrequest(HttpReq req, HttpReq *store) +{ + if((*store == HTTPREQ_UNSPEC) || + (*store == req)) { + *store = req; + return CURLE_OK; + } + fprintf(stderr, "You can only select one HTTP request!\n"); + return CURLE_FAILED_INIT; +} static void helpf(char *fmt, ...) { @@ -313,6 +333,8 @@ struct Configurable { struct HttpPost *httppost; struct HttpPost *last_post; + + HttpReq httpreq; }; static int parseconfig(char *filename, @@ -610,6 +632,8 @@ static int getparameter(char *flag, /* f or -long-flag */ } if(config->postfields) config->conf |= CONF_POST; + if(SetHTTPrequest(HTTPREQ_SIMPLEPOST, &config->httpreq)) + return CURLE_FAILED_INIT; break; case 'D': /* dump-header to given file name */ @@ -650,6 +674,8 @@ static int getparameter(char *flag, /* f or -long-flag */ &config->httppost, &config->last_post)) return CURLE_FAILED_INIT; + if(SetHTTPrequest(HTTPREQ_POST, &config->httpreq)) + return CURLE_FAILED_INIT; break; case 'h': /* h for help */ @@ -665,6 +691,8 @@ static int getparameter(char *flag, /* f or -long-flag */ case 'I': config->conf ^= CONF_HEADER; /* include the HTTP header in the output */ config->conf ^= CONF_NOBODY; /* don't fetch the body at all */ + if(SetHTTPrequest(HTTPREQ_HEAD, &config->httpreq)) + return CURLE_FAILED_INIT; break; case 'K': res = parseconfig(nextarg, config); @@ -794,6 +822,8 @@ static int getparameter(char *flag, /* f or -long-flag */ case 'X': /* HTTP request */ GetStr(&config->customrequest, nextarg); + if(SetHTTPrequest(HTTPREQ_CUSTOM, &config->httpreq)) + return CURLE_FAILED_INIT; break; case 'y': /* low speed time */ |