]> granicus.if.org Git - curl/commitdiff
curl: point out unnecessary uses of -X in verbose mode
authorDaniel Stenberg <daniel@haxx.se>
Sat, 29 Aug 2015 21:56:28 +0000 (23:56 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 11 Sep 2015 06:53:53 +0000 (08:53 +0200)
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.

src/tool_helpers.c
src/tool_helpers.h
src/tool_msgs.c
src/tool_msgs.h
src/tool_operate.c

index 2f74dc13343469cf055fb14b2775bf739ad96eb0..f17d09f50900e8a5c86bf0b69797a4def313aae9 100644 (file)
@@ -89,3 +89,26 @@ int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store)
 
   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");
+  }
+}
index 73bcfc771f01930f077650b54a245cff77a1536a..117334cbc44db7b00112ed1a7ac4a13ef02a3035 100644 (file)
@@ -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
@@ -28,5 +28,8 @@ const char *param2text(int res);
 int SetHTTPrequest(struct OperationConfig *config, HttpReq req,
                    HttpReq *store);
 
+void customrequest_helper(struct OperationConfig *config, HttpReq req,
+                          char *method);
+
 #endif /* HEADER_CURL_TOOL_HELPERS_H */
 
index 38de977aa669bf520587298830b21d52e5672da3..565e283813323732f226c501e5e065abd7bae55b 100644 (file)
 #include "memdebug.h" /* keep this as LAST include */
 
 #define WARN_PREFIX "Warning: "
-#define WARN_TEXTWIDTH (79 - (int)strlen(WARN_PREFIX))
+#define NOTE_PREFIX "Note: "
 
-/*
- * Emit warning formatted message on configured 'errors' stream unless
- * mute (--silent) was selected.
- */
-
-void warnf(struct GlobalConfig *config, const char *fmt, ...)
+static void voutf(struct GlobalConfig *config,
+                  const char *prefix,
+                  const char *fmt,
+                  va_list ap)
 {
+  size_t width = (79 - (int)strlen(prefix));
   if(!config->mute) {
-    va_list ap;
-    int len;
+    size_t len;
     char *ptr;
     char print_buffer[256];
 
-    va_start(ap, fmt);
     len = vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap);
-    va_end(ap);
 
     ptr = print_buffer;
     while(len > 0) {
-      fputs(WARN_PREFIX, config->errors);
+      fputs(prefix, config->errors);
 
-      if(len > (int)WARN_TEXTWIDTH) {
-        int cut = WARN_TEXTWIDTH-1;
+      if(len > width) {
+        size_t cut = width-1;
 
         while(!ISSPACE(ptr[cut]) && cut) {
           cut--;
@@ -63,7 +59,7 @@ void warnf(struct GlobalConfig *config, const char *fmt, ...)
         if(0 == cut)
           /* not a single cutting position was found, just cut it at the
              max text width then! */
-          cut = WARN_TEXTWIDTH-1;
+          cut = width-1;
 
         (void)fwrite(ptr, cut + 1, 1, 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.
  */
index bf97bfba73c4bca33201b86c93522bae440de9f5..e8ad259c51e7ec69c9235f4b3a85451eee7a48b8 100644 (file)
@@ -24,6 +24,7 @@
 #include "tool_setup.h"
 
 void warnf(struct GlobalConfig *config, const char *fmt, ...);
+void notef(struct GlobalConfig *config, const char *fmt, ...);
 
 void helpf(FILE *errors, const char *fmt, ...);
 
index b3fa14644daccc3e415f53245fd7ca43b6826ee9..38d355da582f219782b6ffdda62740b0e51d9e7d 100644 (file)
@@ -1108,6 +1108,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
         my_setopt_enum(curl, CURLOPT_TIMECONDITION, (long)config->timecond);
         my_setopt(curl, CURLOPT_TIMEVALUE, (long)config->condtime);
         my_setopt_str(curl, CURLOPT_CUSTOMREQUEST, config->customrequest);
+        customrequest_helper(config, config->httpreq, config->customrequest);
         my_setopt(curl, CURLOPT_STDERR, global->errors);
 
         /* three new ones in libcurl 7.3: */