From: Stefan Eissing Date: Mon, 28 Jul 2025 08:45:18 +0000 (+0200) Subject: build: fix disable-verbose X-Git-Tag: curl-8_16_0~365 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e1d817cb36bca2ed08296c363d89b75c7779dc8;p=thirdparty%2Fcurl.git build: fix disable-verbose Fix compile error when building with `--disable-verbose`. Adjust pytest to skip when curl is not a debug build but needs traces. Follow-up to b453a447ce4e6aa2a352b196 Closes #18053 --- diff --git a/lib/connect.c b/lib/connect.c index ef65eb9c48..35de2946a5 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -987,6 +987,7 @@ static CURLcode cf_he_connect(struct Curl_cfilter *cf, if(cf->conn->handler->protocol & PROTO_FAMILY_SSH) Curl_pgrsTime(data, TIMER_APPCONNECT); /* we are connected already */ +#ifndef CURL_DISABLE_VERBOSE_STRINGS if(Curl_trc_cf_is_verbose(cf, data)) { struct ip_quadruple ipquad; int is_ipv6; @@ -998,6 +999,7 @@ static CURLcode cf_he_connect(struct Curl_cfilter *cf, host, ipquad.remote_ip, ipquad.remote_port); } } +#endif data->info.numconnects++; /* to track the # of connections made */ } break; diff --git a/lib/curl_trc.c b/lib/curl_trc.c index 152a9d6323..7e6c48358f 100644 --- a/lib/curl_trc.c +++ b/lib/curl_trc.c @@ -161,10 +161,12 @@ void Curl_debug(struct Curl_easy *data, curl_infotype type, case CURLINFO_TEXT: case CURLINFO_HEADER_OUT: case CURLINFO_HEADER_IN: +#ifndef CURL_DISABLE_VERBOSE_STRINGS if(CURL_TRC_IDS(data)) { len = trc_print_ids(data, buf, TRC_LINE_MAX); fwrite(buf, len, 1, data->set.err); } +#endif fwrite(s_infotype[type], 2, 1, data->set.err); fwrite(ptr, size, 1, data->set.err); break; diff --git a/lib/http2.c b/lib/http2.c index 6c4f06463b..c6c7c21474 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -2220,7 +2220,7 @@ static CURLcode h2_submit(struct h2_stream_ctx **pstream, struct dynhds h2_headers; nghttp2_nv *nva = NULL; const void *body = NULL; - size_t nheader, bodylen, i; + size_t nheader, bodylen; nghttp2_data_provider data_prd; int32_t stream_id; nghttp2_priority_spec pri_spec; @@ -2282,9 +2282,10 @@ static CURLcode h2_submit(struct h2_stream_ctx **pstream, goto out; } +#ifndef CURL_DISABLE_VERBOSE_STRINGS #define MAX_ACC 60000 /* <64KB to account for some overhead */ if(Curl_trc_is_verbose(data)) { - size_t acc = 0; + size_t acc = 0, i; infof(data, "[HTTP/2] [%d] OPENED stream for %s", stream_id, data->state.url); @@ -2302,6 +2303,7 @@ static CURLcode h2_submit(struct h2_stream_ctx **pstream, "stream to be rejected.", MAX_ACC); } } +#endif stream->id = stream_id; diff --git a/lib/multi.c b/lib/multi.c index ba38f50415..2042719d06 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -596,17 +596,21 @@ static void multi_done_locked(struct connectdata *conn, #endif ) || conn->bits.close || (mdctx->premature && !Curl_conn_is_multiplex(conn, FIRSTSOCKET))) { +#ifndef CURL_DISABLE_VERBOSE_STRINGS CURL_TRC_M(data, "multi_done, terminating conn #%" FMT_OFF_T " to %s:%d, " "forbid=%d, close=%d, premature=%d, conn_multiplex=%d", conn->connection_id, host, port, data->set.reuse_forbid, conn->bits.close, mdctx->premature, Curl_conn_is_multiplex(conn, FIRSTSOCKET)); +#endif connclose(conn, "disconnecting"); Curl_conn_terminate(data, conn, mdctx->premature); } else if(!Curl_conn_get_max_concurrent(data, conn, FIRSTSOCKET)) { +#ifndef CURL_DISABLE_VERBOSE_STRINGS CURL_TRC_M(data, "multi_done, conn #%" FMT_OFF_T " to %s:%d was shutdown" " by server, not reusing", conn->connection_id, host, port); +#endif connclose(conn, "server shutdown"); Curl_conn_terminate(data, conn, mdctx->premature); } @@ -615,8 +619,10 @@ static void multi_done_locked(struct connectdata *conn, if(Curl_cpool_conn_now_idle(data, conn)) { /* connection kept in the cpool */ data->state.lastconnect_id = conn->connection_id; +#ifndef CURL_DISABLE_VERBOSE_STRINGS infof(data, "Connection #%" FMT_OFF_T " to host %s:%d left intact", conn->connection_id, host, port); +#endif } else { /* connection was removed from the cpool and destroyed. */ diff --git a/tests/http/test_02_download.py b/tests/http/test_02_download.py index 405a5e006d..472fb5147a 100644 --- a/tests/http/test_02_download.py +++ b/tests/http/test_02_download.py @@ -599,6 +599,7 @@ class TestDownload: # nghttpx is the only server we have that supports TLS early data @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") @pytest.mark.parametrize("proto", ['http/1.1', 'h2', 'h3']) def test_02_32_earlydata(self, env: Env, httpd, nghttpx, proto): if not env.curl_can_early_data(): diff --git a/tests/http/test_10_proxy.py b/tests/http/test_10_proxy.py index 8116a52e58..1138f945d1 100644 --- a/tests/http/test_10_proxy.py +++ b/tests/http/test_10_proxy.py @@ -150,6 +150,7 @@ class TestProxy: @pytest.mark.parametrize("proto", ['http/1.1', 'h2']) @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_10_06_proxytunnel_https(self, env: Env, httpd, nghttpx_fwd, proto, tunnel): if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'): pytest.skip('only supported with nghttp2') @@ -168,6 +169,7 @@ class TestProxy: # download many https: with proto via https: proxytunnel @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") @pytest.mark.parametrize("proto", ['http/1.1', 'h2']) @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.parametrize("fname, fcount", [ @@ -208,6 +210,7 @@ class TestProxy: ['data-100k', 20], ['data-1m', 5] ]) + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") def test_10_08_upload_seq_large(self, env: Env, httpd, nghttpx, proto, tunnel, fname, fcount): @@ -235,6 +238,7 @@ class TestProxy: @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL") @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_10_09_reuse_server(self, env: Env, httpd, nghttpx_fwd, tunnel): if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'): pytest.skip('only supported with nghttp2') @@ -258,6 +262,7 @@ class TestProxy: @pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL") @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_10_10_reuse_proxy(self, env: Env, httpd, nghttpx_fwd, tunnel): # url twice via https: proxy separated with '--next', will reuse if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'): @@ -286,6 +291,7 @@ class TestProxy: @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") @pytest.mark.skipif(condition=not Env.curl_uses_lib('openssl'), reason="tls13-ciphers not supported") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_10_11_noreuse_proxy_https(self, env: Env, httpd, nghttpx_fwd, tunnel): # different --proxy-tls13-ciphers, no reuse of connection for https: curl = CurlClient(env=env) @@ -312,6 +318,7 @@ class TestProxy: @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") @pytest.mark.skipif(condition=not Env.curl_uses_lib('openssl'), reason="tls13-ciphers not supported") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_10_12_noreuse_proxy_http(self, env: Env, httpd, nghttpx_fwd, tunnel): # different --proxy-tls13-ciphers, no reuse of connection for http: if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'): @@ -338,6 +345,7 @@ class TestProxy: @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") @pytest.mark.skipif(condition=not Env.curl_uses_lib('openssl'), reason="tls13-ciphers not supported") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_10_13_noreuse_https(self, env: Env, httpd, nghttpx_fwd, tunnel): # different --tls13-ciphers on https: same proxy config if tunnel == 'h2' and not env.curl_uses_lib('nghttp2'): diff --git a/tests/http/test_13_proxy_auth.py b/tests/http/test_13_proxy_auth.py index 6a9a7e6a84..57575953cc 100644 --- a/tests/http/test_13_proxy_auth.py +++ b/tests/http/test_13_proxy_auth.py @@ -119,6 +119,7 @@ class TestProxyAuth: @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") @pytest.mark.skipif(condition=not Env.curl_has_feature('HTTPS-proxy'), reason='curl lacks HTTPS-proxy support') + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") @pytest.mark.parametrize("proto", ['http/1.1', 'h2']) @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) def test_13_07_tunnels_no_auth(self, env: Env, httpd, configures_httpd, nghttpx_fwd, proto, tunnel): @@ -138,6 +139,7 @@ class TestProxyAuth: @pytest.mark.skipif(condition=not Env.have_nghttpx(), reason="no nghttpx available") @pytest.mark.skipif(condition=not Env.curl_has_feature('HTTPS-proxy'), reason='curl lacks HTTPS-proxy support') + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") @pytest.mark.parametrize("proto", ['http/1.1', 'h2']) @pytest.mark.parametrize("tunnel", ['http/1.1', 'h2']) def test_13_08_tunnels_auth(self, env: Env, httpd, configures_httpd, nghttpx_fwd, proto, tunnel): diff --git a/tests/http/test_15_tracing.py b/tests/http/test_15_tracing.py index 428fbd4194..7e7d55de71 100644 --- a/tests/http/test_15_tracing.py +++ b/tests/http/test_15_tracing.py @@ -26,6 +26,7 @@ # import logging import re +import pytest from testenv import Env from testenv import CurlClient @@ -34,6 +35,7 @@ from testenv import CurlClient log = logging.getLogger(__name__) +@pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") class TestTracing: # default verbose output diff --git a/tests/http/test_17_ssl_use.py b/tests/http/test_17_ssl_use.py index d3a3fcb5a5..89298a51a9 100644 --- a/tests/http/test_17_ssl_use.py +++ b/tests/http/test_17_ssl_use.py @@ -365,6 +365,7 @@ class TestSSLUse: else: assert r.exit_code != 0, f'should fail, server={server_ver:04x}, curl=[{curl_min_ver:04x}, {curl_max_ver:04x}]\n{r.dump_logs()}' + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_17_10_h3_session_reuse(self, env: Env, httpd, nghttpx): if not env.have_h3(): pytest.skip("h3 not supported") diff --git a/tests/http/test_30_vsftpd.py b/tests/http/test_30_vsftpd.py index 9c8138cf45..c6193c2c75 100644 --- a/tests/http/test_30_vsftpd.py +++ b/tests/http/test_30_vsftpd.py @@ -140,6 +140,7 @@ class TestVsFTPD: # check with `tcpdump` if curl causes any TCP RST packets @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_30_06_shutdownh_download(self, env: Env, vsftpd: VsFTPD): docname = 'data-1k' curl = CurlClient(env=env) @@ -156,6 +157,7 @@ class TestVsFTPD: # check with `tcpdump` if curl causes any TCP RST packets @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_30_07_shutdownh_upload(self, env: Env, vsftpd: VsFTPD): docname = 'upload-1k' curl = CurlClient(env=env) diff --git a/tests/http/test_31_vsftpds.py b/tests/http/test_31_vsftpds.py index 8da4a0da92..63f4b695d2 100644 --- a/tests/http/test_31_vsftpds.py +++ b/tests/http/test_31_vsftpds.py @@ -147,6 +147,7 @@ class TestVsFTPD: # check with `tcpdump` if curl causes any TCP RST packets @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_31_06_shutdownh_download(self, env: Env, vsftpds: VsFTPD): docname = 'data-1k' curl = CurlClient(env=env) @@ -162,6 +163,7 @@ class TestVsFTPD: # check with `tcpdump` if curl causes any TCP RST packets @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_31_07_shutdownh_upload(self, env: Env, vsftpds: VsFTPD): docname = 'upload-1k' curl = CurlClient(env=env) diff --git a/tests/http/test_32_ftps_vsftpd.py b/tests/http/test_32_ftps_vsftpd.py index 663db1381a..f6c55f5fc2 100644 --- a/tests/http/test_32_ftps_vsftpd.py +++ b/tests/http/test_32_ftps_vsftpd.py @@ -159,6 +159,7 @@ class TestFtpsVsFTPD: # check with `tcpdump` if curl causes any TCP RST packets @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_32_06_shutdownh_download(self, env: Env, vsftpds: VsFTPD): docname = 'data-1k' curl = CurlClient(env=env) @@ -174,6 +175,7 @@ class TestFtpsVsFTPD: # check with `tcpdump` if curl causes any TCP RST packets @pytest.mark.skipif(condition=not Env.tcpdump(), reason="tcpdump not available") + @pytest.mark.skipif(condition=not Env.curl_is_debug(), reason="needs curl debug") def test_32_07_shutdownh_upload(self, env: Env, vsftpds: VsFTPD): docname = 'upload-1k' curl = CurlClient(env=env)