Skip to content

Commit

Permalink
curl: point out the conflicting HTTP methods if used
Browse files Browse the repository at this point in the history
It isn't always clear to the user which options that cause the HTTP
methods to conflict so by spelling them out it should hopefully be
easier to understand why curl complains.
  • Loading branch information
bagder committed Aug 25, 2015
1 parent ce03435 commit 4a88944
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/tool_getparam.c
Expand Up @@ -1422,7 +1422,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
&config->last_post,
(subletter=='s')?TRUE:FALSE)) /* 's' means literal string */
return PARAM_BAD_USE;
if(SetHTTPrequest(config, HTTPREQ_POST, &config->httpreq))
if(SetHTTPrequest(config, HTTPREQ_FORMPOST, &config->httpreq))
return PARAM_BAD_USE;
break;

Expand Down
14 changes: 12 additions & 2 deletions src/tool_helpers.c
Expand Up @@ -69,13 +69,23 @@ const char *param2text(int res)

int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store)
{
/* this mirrors the HttpReq enum in tool_sdecls.h */
const char *reqname[]= {
"", /* unspec */
"GET (-G, --get)",
"HEAD (-I, --head)",
"multipart formpost (-F, --form)",
"POST (-d, --data)"
};

if((*store == HTTPREQ_UNSPEC) ||
(*store == req)) {
*store = req;
return 0;
}

warnf(config->global, "You can only select one HTTP request method!\n");
warnf(config->global, "You can only select one HTTP request method! "
"You asked for both %s and %s.\n",
reqname[req], reqname[*store]);

return 1;
}
2 changes: 1 addition & 1 deletion src/tool_operate.c
Expand Up @@ -935,7 +935,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE,
config->postfieldsize);
break;
case HTTPREQ_POST:
case HTTPREQ_FORMPOST:
my_setopt_httppost(curl, CURLOPT_HTTPPOST, config->httppost);
break;
default:
Expand Down
6 changes: 2 additions & 4 deletions src/tool_sdecls.h
Expand Up @@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
Expand Down Expand Up @@ -135,10 +135,8 @@ typedef enum {
HTTPREQ_UNSPEC, /* first in list */
HTTPREQ_GET,
HTTPREQ_HEAD,
HTTPREQ_POST,
HTTPREQ_FORMPOST,
HTTPREQ_SIMPLEPOST,
HTTPREQ_CUSTOM,
HTTPREQ_LAST /* last in list */
} HttpReq;


Expand Down

0 comments on commit 4a88944

Please sign in to comment.