summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2023-01-11 14:15:26 +0100
committerDaniel Stenberg <daniel@haxx.se>2023-01-12 17:59:26 +0100
commit7d3b167f48eb2909b40f912e72c183c34e62024c (patch)
tree186849d28e6da6820e3f55438c4fd3e9067eaa8f
parent13991d60eeef7d1c6a7ac1e15a45c5210aa2a15d (diff)
downloadcurl-7d3b167f48eb2909b40f912e72c183c34e62024c.tar.gz
curl: output warning at --verbose output for debug-enabled version
+ a libcurl warning in the debug output Assisted-by: Jay Satiro Ref: https://curl.se/mail/lib-2023-01/0039.html Closes #10278
-rw-r--r--lib/multi.c9
-rw-r--r--lib/multihandle.h3
-rw-r--r--src/tool_help.c11
3 files changed, 23 insertions, 0 deletions
diff --git a/lib/multi.c b/lib/multi.c
index b6187cd20..403274814 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1861,6 +1861,15 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
multistate(data, MSTATE_COMPLETED);
}
+#ifdef DEBUGBUILD
+ if(!multi->warned) {
+ infof(data, "!!! WARNING !!!");
+ infof(data, "This is a debug build of libcurl, "
+ "do not use in production.");
+ multi->warned = true;
+ }
+#endif
+
do {
/* A "stream" here is a logical stream if the protocol can handle that
(HTTP/2), or the full connection for older protocols */
diff --git a/lib/multihandle.h b/lib/multihandle.h
index 7dd6a0a75..6cda65d44 100644
--- a/lib/multihandle.h
+++ b/lib/multihandle.h
@@ -170,6 +170,9 @@ struct Curl_multi {
#endif
BIT(dead); /* a callback returned error, everything needs to crash and
burn */
+#ifdef DEBUGBUILD
+ BIT(warned); /* true after user warned of DEBUGBUILD */
+#endif
};
#endif /* HEADER_CURL_MULTIHANDLE_H */
diff --git a/src/tool_help.c b/src/tool_help.c
index 709b8fefb..729b78c36 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -151,10 +151,21 @@ void tool_help(char *category)
free(category);
}
+static bool is_debug(void)
+{
+ const char *const *builtin;
+ for(builtin = feature_names; *builtin; ++builtin)
+ if(curl_strequal("debug", *builtin))
+ return TRUE;
+ return FALSE;
+}
void tool_version_info(void)
{
const char *const *builtin;
+ if(is_debug())
+ fprintf(stderr, "WARNING: this libcurl is Debug-enabled, "
+ "do not use in production\n\n");
printf(CURL_ID "%s\n", curl_version());
#ifdef CURL_PATCHSTAMP