Annotation of embedaddon/curl/src/tool_helpers.c, revision 1.1.1.1
1.1 misho 1: /***************************************************************************
2: * _ _ ____ _
3: * Project ___| | | | _ \| |
4: * / __| | | | |_) | |
5: * | (__| |_| | _ <| |___
6: * \___|\___/|_| \_\_____|
7: *
8: * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
9: *
10: * This software is licensed as described in the file COPYING, which
11: * you should have received as part of this distribution. The terms
12: * are also available at https://curl.haxx.se/docs/copyright.html.
13: *
14: * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15: * copies of the Software, and permit persons to whom the Software is
16: * furnished to do so, under the terms of the COPYING file.
17: *
18: * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19: * KIND, either express or implied.
20: *
21: ***************************************************************************/
22: #include "tool_setup.h"
23:
24: #include "strcase.h"
25:
26: #define ENABLE_CURLX_PRINTF
27: /* use our own printf() functions */
28: #include "curlx.h"
29:
30: #include "tool_cfgable.h"
31: #include "tool_msgs.h"
32: #include "tool_getparam.h"
33: #include "tool_helpers.h"
34:
35: #include "memdebug.h" /* keep this as LAST include */
36:
37: /*
38: ** Helper functions that are used from more than one source file.
39: */
40:
41: const char *param2text(int res)
42: {
43: ParameterError error = (ParameterError)res;
44: switch(error) {
45: case PARAM_GOT_EXTRA_PARAMETER:
46: return "had unsupported trailing garbage";
47: case PARAM_OPTION_UNKNOWN:
48: return "is unknown";
49: case PARAM_OPTION_AMBIGUOUS:
50: return "is ambiguous";
51: case PARAM_REQUIRES_PARAMETER:
52: return "requires parameter";
53: case PARAM_BAD_USE:
54: return "is badly used here";
55: case PARAM_BAD_NUMERIC:
56: return "expected a proper numerical parameter";
57: case PARAM_NEGATIVE_NUMERIC:
58: return "expected a positive numerical parameter";
59: case PARAM_LIBCURL_DOESNT_SUPPORT:
60: return "the installed libcurl version doesn't support this";
61: case PARAM_LIBCURL_UNSUPPORTED_PROTOCOL:
62: return "a specified protocol is unsupported by libcurl";
63: case PARAM_NO_MEM:
64: return "out of memory";
65: case PARAM_NO_PREFIX:
66: return "the given option can't be reversed with a --no- prefix";
67: case PARAM_NUMBER_TOO_LARGE:
68: return "too large number";
69: case PARAM_NO_NOT_BOOLEAN:
70: return "used '--no-' for option that isn't a boolean";
71: default:
72: return "unknown error";
73: }
74: }
75:
76: int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store)
77: {
78: /* this mirrors the HttpReq enum in tool_sdecls.h */
79: const char *reqname[]= {
80: "", /* unspec */
81: "GET (-G, --get)",
82: "HEAD (-I, --head)",
83: "multipart formpost (-F, --form)",
84: "POST (-d, --data)"
85: };
86:
87: if((*store == HTTPREQ_UNSPEC) ||
88: (*store == req)) {
89: *store = req;
90: return 0;
91: }
92: warnf(config->global, "You can only select one HTTP request method! "
93: "You asked for both %s and %s.\n",
94: reqname[req], reqname[*store]);
95:
96: return 1;
97: }
98:
99: void customrequest_helper(struct OperationConfig *config, HttpReq req,
100: char *method)
101: {
102: /* this mirrors the HttpReq enum in tool_sdecls.h */
103: const char *dflt[]= {
104: "GET",
105: "GET",
106: "HEAD",
107: "POST",
108: "POST"
109: };
110:
111: if(!method)
112: ;
113: else if(curl_strequal(method, dflt[req])) {
114: notef(config->global, "Unnecessary use of -X or --request, %s is already "
115: "inferred.\n", dflt[req]);
116: }
117: else if(curl_strequal(method, "head")) {
118: warnf(config->global,
119: "Setting custom HTTP method to HEAD with -X/--request may not work "
120: "the way you want. Consider using -I/--head instead.\n");
121: }
122: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>