From aa7634ae013a8556fa8205203307bb6c7b6911e1 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 16 Jun 2026 13:50:51 +0200 Subject: [PATCH 1/5] macro --- tests/server/util.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/server/util.c b/tests/server/util.c index 6041bc0c6d..93e0d8f127 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -420,6 +420,8 @@ static void exit_signal_handler(int signum) #endif #ifdef _WIN32 +/* #define DEBUG_WIN32_CALLBACKS */ + /* CTRL event handler for Windows Console applications to simulate * SIGINT, SIGTERM and SIGBREAK on CTRL events and trigger signal handler. * From 68d35b45c65fe485c1dc42d6e85cb44f7bd54465 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 16 Jun 2026 13:45:03 +0200 Subject: [PATCH 2/5] ctrl_event_handler --- tests/server/util.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/server/util.c b/tests/server/util.c index 93e0d8f127..23dd5225e2 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -441,7 +441,15 @@ static void exit_signal_handler(int signum) static BOOL WINAPI ctrl_event_handler(DWORD dwCtrlType) { int signum = 0; +#ifdef DEBUG_WIN32_CALLBACKS logmsg("ctrl_event_handler: %lu", dwCtrlType); +#else + static const char msgbegin[] = "ctrl_event_handler: begin\n"; + static const char msgend[] = "ctrl_event_handler: end\n"; + HANDLE out = GetStdHandle(STD_ERROR_HANDLE); + DWORD dwWritten; + WriteFile(out, msgbegin, sizeof(msgbegin) - 1, &dwWritten, NULL); +#endif switch(dwCtrlType) { #ifdef SIGINT case CTRL_C_EVENT: @@ -462,7 +470,11 @@ static BOOL WINAPI ctrl_event_handler(DWORD dwCtrlType) return FALSE; } if(signum) { +#ifdef DEBUG_WIN32_CALLBACKS logmsg("ctrl_event_handler: %lu -> %d", dwCtrlType, signum); +#else + WriteFile(out, msgend, sizeof(msgend) - 1, &dwWritten, NULL); +#endif raise(signum); } return TRUE; From db58e29fa577d9e66e3319c30b5551a296d651a3 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 16 Jun 2026 13:53:18 +0200 Subject: [PATCH 3/5] main_window_proc --- tests/server/util.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/server/util.c b/tests/server/util.c index 23dd5225e2..7a57db863e 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -505,7 +505,14 @@ static LRESULT CALLBACK main_window_proc(HWND hwnd, UINT uMsg, break; } if(signum) { +#ifdef DEBUG_WIN32_CALLBACKS logmsg("main_window_proc: %u -> %d", uMsg, signum); +#else + static const char str[] = "main_window_proc\n"; + DWORD dwWritten; + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + &dwWritten, NULL); +#endif raise(signum); } } From b77a43cbcdd1a681bfefe0e7d4de93cc699db249 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 16 Jun 2026 13:55:43 +0200 Subject: [PATCH 4/5] main_window_loop --- tests/server/util.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/server/util.c b/tests/server/util.c index 7a57db863e..95e0a0ccf5 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -525,17 +525,27 @@ static DWORD WINAPI main_window_loop(void *lpParameter) WNDCLASS wc; BOOL ret; MSG msg; +#ifdef DEBUG_WIN32_CALLBACKS DWORD err; char buffer[WINAPI_ERROR_LEN]; +#else + DWORD dwWritten; +#endif ZeroMemory(&wc, sizeof(wc)); wc.lpfnWndProc = (WNDPROC)main_window_proc; wc.hInstance = (HINSTANCE)lpParameter; wc.lpszClassName = TEXT("MainWClass"); if(!RegisterClass(&wc)) { +#ifdef DEBUG_WIN32_CALLBACKS err = GetLastError(); curlx_winapi_strerror(err, buffer, sizeof(buffer)); fprintf(stderr, "RegisterClass failed: %s\n", buffer); +#else + static const char str[] = "RegisterClass() failed\n"; + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + &dwWritten, NULL); +#endif return (DWORD)-1; } @@ -547,18 +557,30 @@ static DWORD WINAPI main_window_loop(void *lpParameter) (HWND)NULL, (HMENU)NULL, wc.hInstance, NULL); if(!hidden_main_window) { +#ifdef DEBUG_WIN32_CALLBACKS err = GetLastError(); curlx_winapi_strerror(err, buffer, sizeof(buffer)); fprintf(stderr, "CreateWindowEx failed: (0x%08lx) - %s\n", err, buffer); +#else + static const char str[] = "CreateWindowEx() failed\n"; + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + &dwWritten, NULL); +#endif return (DWORD)-1; } do { ret = GetMessage(&msg, NULL, 0, 0); if(ret == -1) { +#ifdef DEBUG_WIN32_CALLBACKS err = GetLastError(); curlx_winapi_strerror(err, buffer, sizeof(buffer)); fprintf(stderr, "GetMessage failed: (0x%08lx) - %s\n", err, buffer); +#else + static const char str[] = "GetMessage() failed\n"; + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + &dwWritten, NULL); +#endif return (DWORD)-1; } else if(ret) { From e2b244c0e80afe45f8d32727da023ad95fd3b570 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 28 Jul 2026 22:31:02 +0200 Subject: [PATCH 5/5] use CURL_CSTRLEN() --- tests/server/util.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/server/util.c b/tests/server/util.c index 95e0a0ccf5..65a5f476d3 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -448,7 +448,7 @@ static BOOL WINAPI ctrl_event_handler(DWORD dwCtrlType) static const char msgend[] = "ctrl_event_handler: end\n"; HANDLE out = GetStdHandle(STD_ERROR_HANDLE); DWORD dwWritten; - WriteFile(out, msgbegin, sizeof(msgbegin) - 1, &dwWritten, NULL); + WriteFile(out, msgbegin, CURL_CSTRLEN(msgbegin), &dwWritten, NULL); #endif switch(dwCtrlType) { #ifdef SIGINT @@ -473,7 +473,7 @@ static BOOL WINAPI ctrl_event_handler(DWORD dwCtrlType) #ifdef DEBUG_WIN32_CALLBACKS logmsg("ctrl_event_handler: %lu -> %d", dwCtrlType, signum); #else - WriteFile(out, msgend, sizeof(msgend) - 1, &dwWritten, NULL); + WriteFile(out, msgend, CURL_CSTRLEN(msgend), &dwWritten, NULL); #endif raise(signum); } @@ -510,7 +510,7 @@ static LRESULT CALLBACK main_window_proc(HWND hwnd, UINT uMsg, #else static const char str[] = "main_window_proc\n"; DWORD dwWritten; - WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, CURL_CSTRLEN(str), &dwWritten, NULL); #endif raise(signum); @@ -543,7 +543,7 @@ static DWORD WINAPI main_window_loop(void *lpParameter) fprintf(stderr, "RegisterClass failed: %s\n", buffer); #else static const char str[] = "RegisterClass() failed\n"; - WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, CURL_CSTRLEN(str), &dwWritten, NULL); #endif return (DWORD)-1; @@ -563,7 +563,7 @@ static DWORD WINAPI main_window_loop(void *lpParameter) fprintf(stderr, "CreateWindowEx failed: (0x%08lx) - %s\n", err, buffer); #else static const char str[] = "CreateWindowEx() failed\n"; - WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, CURL_CSTRLEN(str), &dwWritten, NULL); #endif return (DWORD)-1; @@ -578,7 +578,7 @@ static DWORD WINAPI main_window_loop(void *lpParameter) fprintf(stderr, "GetMessage failed: (0x%08lx) - %s\n", err, buffer); #else static const char str[] = "GetMessage() failed\n"; - WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, sizeof(str) - 1, + WriteFile(GetStdHandle(STD_ERROR_HANDLE), str, CURL_CSTRLEN(str), &dwWritten, NULL); #endif return (DWORD)-1;