]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
curl_log: evaluate log statement only when transfer is verbose
authorStefan Eissing <stefan@eissing.org>
Fri, 2 Jun 2023 13:57:46 +0000 (15:57 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 2 Jun 2023 21:03:45 +0000 (23:03 +0200)
Closes #11238

lib/curl_log.c
lib/curl_log.h

index 71024cfc62627cd155abcbc866b768ccb1e2144b..c1f70a6d311dd90f9a55081d51309475e42711fb 100644 (file)
@@ -130,7 +130,7 @@ void Curl_log_cf_debug(struct Curl_easy *data, struct Curl_cfilter *cf,
                        const char *fmt, ...)
 {
   DEBUGASSERT(cf);
-  if(data && Curl_log_cf_is_debug(cf)) {
+  if(data && Curl_log_cf_is_debug(cf, data)) {
     va_list ap;
     int len;
     char buffer[MAXINFO + 2];
index ad6143fa991c3d22b32617ccfbe0c5132db38424..acf5630163a96028194eac1b185842047b660fe8 100644 (file)
@@ -74,7 +74,7 @@ void Curl_debug(struct Curl_easy *data, curl_infotype type,
     defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
 
 #define LOG_CF(data, cf, ...) \
-  do { if(Curl_log_cf_is_debug(cf)) \
+  do { if(Curl_log_cf_is_debug(cf, data)) \
          Curl_log_cf_debug(data, cf, __VA_ARGS__); } while(0)
 #else
 #define LOG_CF Curl_log_cf_debug
@@ -90,8 +90,10 @@ void Curl_log_cf_debug(struct Curl_easy *data, struct Curl_cfilter *cf,
                        const char *fmt, ...);
 #endif
 
-#define Curl_log_cf_is_debug(cf) \
-    ((cf) && (cf)->cft->log_level >= CURL_LOG_DEBUG)
+#define Curl_log_cf_is_debug(cf, data) \
+    ((data) && (data)->set.verbose && \
+     (cf) && (cf)->cft->log_level >= CURL_LOG_DEBUG)
+
 
 #else /* !DEBUGBUILD */
 
@@ -110,11 +112,11 @@ void Curl_log_cf_debug(struct Curl_easy *data, struct Curl_cfilter *cf,
                        const char *fmt, ...);
 #endif
 
-#define Curl_log_cf_is_debug(x)   ((void)(x), FALSE)
+#define Curl_log_cf_is_debug(x,y)   ((void)(x), (void)(y), FALSE)
 
 #endif  /* !DEBUGBUILD */
 
-#define LOG_CF_IS_DEBUG(x)        Curl_log_cf_is_debug(x)
+#define LOG_CF_IS_DEBUG(cf, data)        Curl_log_cf_is_debug(cf, data)
 
 /* Macros intended for DEBUGF logging, use like:
  * DEBUGF(infof(data, CFMSG(cf, "this filter %s rocks"), "very much"));