curl: point out unnecessary uses of -X in verbose mode
It uses 'Note:' as a prefix as opposed to the common 'Warning:' to take down the tone a bit. It adds a warning for using -XHEAD on other methods becasue that may lead to a hanging connection.
This commit is contained in:
parent
df6a4d3519
commit
481e0de00a
@ -89,3 +89,26 @@ int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store)
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void customrequest_helper(struct OperationConfig *config, HttpReq req,
|
||||||
|
char *method)
|
||||||
|
{
|
||||||
|
/* this mirrors the HttpReq enum in tool_sdecls.h */
|
||||||
|
const char *dflt[]= {
|
||||||
|
"GET",
|
||||||
|
"GET",
|
||||||
|
"HEAD",
|
||||||
|
"POST",
|
||||||
|
"POST"
|
||||||
|
};
|
||||||
|
|
||||||
|
if(curl_strequal(method, dflt[req])) {
|
||||||
|
notef(config->global, "Unnecessary use of -X or --request, %s is already "
|
||||||
|
"inferred.\n", dflt[req]);
|
||||||
|
}
|
||||||
|
else if(curl_strequal(method, "head")) {
|
||||||
|
warnf(config->global,
|
||||||
|
"Setting custom HTTP method to HEAD may not work the way you "
|
||||||
|
"want.\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -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
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@ -28,5 +28,8 @@ const char *param2text(int res);
|
|||||||
int SetHTTPrequest(struct OperationConfig *config, HttpReq req,
|
int SetHTTPrequest(struct OperationConfig *config, HttpReq req,
|
||||||
HttpReq *store);
|
HttpReq *store);
|
||||||
|
|
||||||
|
void customrequest_helper(struct OperationConfig *config, HttpReq req,
|
||||||
|
char *method);
|
||||||
|
|
||||||
#endif /* HEADER_CURL_TOOL_HELPERS_H */
|
#endif /* HEADER_CURL_TOOL_HELPERS_H */
|
||||||
|
|
||||||
|
@ -31,31 +31,27 @@
|
|||||||
#include "memdebug.h" /* keep this as LAST include */
|
#include "memdebug.h" /* keep this as LAST include */
|
||||||
|
|
||||||
#define WARN_PREFIX "Warning: "
|
#define WARN_PREFIX "Warning: "
|
||||||
#define WARN_TEXTWIDTH (79 - (int)strlen(WARN_PREFIX))
|
#define NOTE_PREFIX "Note: "
|
||||||
|
|
||||||
/*
|
static void voutf(struct GlobalConfig *config,
|
||||||
* Emit warning formatted message on configured 'errors' stream unless
|
const char *prefix,
|
||||||
* mute (--silent) was selected.
|
const char *fmt,
|
||||||
*/
|
va_list ap)
|
||||||
|
|
||||||
void warnf(struct GlobalConfig *config, const char *fmt, ...)
|
|
||||||
{
|
{
|
||||||
|
size_t width = (79 - (int)strlen(prefix));
|
||||||
if(!config->mute) {
|
if(!config->mute) {
|
||||||
va_list ap;
|
size_t len;
|
||||||
int len;
|
|
||||||
char *ptr;
|
char *ptr;
|
||||||
char print_buffer[256];
|
char print_buffer[256];
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
len = vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap);
|
len = vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap);
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
ptr = print_buffer;
|
ptr = print_buffer;
|
||||||
while(len > 0) {
|
while(len > 0) {
|
||||||
fputs(WARN_PREFIX, config->errors);
|
fputs(prefix, config->errors);
|
||||||
|
|
||||||
if(len > (int)WARN_TEXTWIDTH) {
|
if(len > width) {
|
||||||
int cut = WARN_TEXTWIDTH-1;
|
size_t cut = width-1;
|
||||||
|
|
||||||
while(!ISSPACE(ptr[cut]) && cut) {
|
while(!ISSPACE(ptr[cut]) && cut) {
|
||||||
cut--;
|
cut--;
|
||||||
@ -63,7 +59,7 @@ void warnf(struct GlobalConfig *config, const char *fmt, ...)
|
|||||||
if(0 == cut)
|
if(0 == cut)
|
||||||
/* not a single cutting position was found, just cut it at the
|
/* not a single cutting position was found, just cut it at the
|
||||||
max text width then! */
|
max text width then! */
|
||||||
cut = WARN_TEXTWIDTH-1;
|
cut = width-1;
|
||||||
|
|
||||||
(void)fwrite(ptr, cut + 1, 1, config->errors);
|
(void)fwrite(ptr, cut + 1, 1, config->errors);
|
||||||
fputs("\n", config->errors);
|
fputs("\n", config->errors);
|
||||||
@ -78,6 +74,31 @@ void warnf(struct GlobalConfig *config, const char *fmt, ...)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Emit 'note' formatted message on configured 'errors' stream, if verbose was
|
||||||
|
* selected.
|
||||||
|
*/
|
||||||
|
void notef(struct GlobalConfig *config, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
|
if(config->tracetype)
|
||||||
|
voutf(config, NOTE_PREFIX, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Emit warning formatted message on configured 'errors' stream unless
|
||||||
|
* mute (--silent) was selected.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void warnf(struct GlobalConfig *config, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, fmt);
|
||||||
|
voutf(config, WARN_PREFIX, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Emit help formatted message on given stream.
|
* Emit help formatted message on given stream.
|
||||||
*/
|
*/
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "tool_setup.h"
|
#include "tool_setup.h"
|
||||||
|
|
||||||
void warnf(struct GlobalConfig *config, const char *fmt, ...);
|
void warnf(struct GlobalConfig *config, const char *fmt, ...);
|
||||||
|
void notef(struct GlobalConfig *config, const char *fmt, ...);
|
||||||
|
|
||||||
void helpf(FILE *errors, const char *fmt, ...);
|
void helpf(FILE *errors, const char *fmt, ...);
|
||||||
|
|
||||||
|
@ -1108,6 +1108,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||||||
my_setopt_enum(curl, CURLOPT_TIMECONDITION, (long)config->timecond);
|
my_setopt_enum(curl, CURLOPT_TIMECONDITION, (long)config->timecond);
|
||||||
my_setopt(curl, CURLOPT_TIMEVALUE, (long)config->condtime);
|
my_setopt(curl, CURLOPT_TIMEVALUE, (long)config->condtime);
|
||||||
my_setopt_str(curl, CURLOPT_CUSTOMREQUEST, config->customrequest);
|
my_setopt_str(curl, CURLOPT_CUSTOMREQUEST, config->customrequest);
|
||||||
|
customrequest_helper(config, config->httpreq, config->customrequest);
|
||||||
my_setopt(curl, CURLOPT_STDERR, global->errors);
|
my_setopt(curl, CURLOPT_STDERR, global->errors);
|
||||||
|
|
||||||
/* three new ones in libcurl 7.3: */
|
/* three new ones in libcurl 7.3: */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user