aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2015-08-25 09:20:56 +0200
committerDaniel Stenberg <daniel@haxx.se>2015-08-25 09:20:56 +0200
commit4a889441d318f9133dc9f3eba1939e360a8f7d58 (patch)
tree70eb52fd977b67edad237e758c6a4818f0beec48
parentce034356d2fc9ac94bca4959a4054169129bf5d8 (diff)
curl: point out the conflicting HTTP methods if used
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.
-rw-r--r--src/tool_getparam.c2
-rw-r--r--src/tool_helpers.c14
-rw-r--r--src/tool_operate.c2
-rw-r--r--src/tool_sdecls.h6
4 files changed, 16 insertions, 8 deletions
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index e97a1b98c..662c6eea2 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -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;
diff --git a/src/tool_helpers.c b/src/tool_helpers.c
index 08248c37c..2f74dc133 100644
--- a/src/tool_helpers.c
+++ b/src/tool_helpers.c
@@ -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;
}
diff --git a/src/tool_operate.c b/src/tool_operate.c
index d18175f04..b3fa14644 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -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:
diff --git a/src/tool_sdecls.h b/src/tool_sdecls.h
index e74020f77..9455a2510 100644
--- a/src/tool_sdecls.h
+++ b/src/tool_sdecls.h
@@ -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
@@ -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;