mirror of
https://github.com/curl/curl.git
synced 2026-07-23 22:17:16 +03:00
tests/server: tidy-up error messages (Windows)
- show error description on `PeekNamedPipe()` error. - show `GetLastError()` instead of socket error on non-socket failures in the window handler. - include full hex `GetLastError()` numbers in error messages, syncing with Schannel code. - drop internal `win32_perror()` function, in favor of direct `curlx_*strerror()` calls. Closes #20477
This commit is contained in:
parent
4d0c3b690e
commit
373e89a021
2 changed files with 20 additions and 18 deletions
|
|
@ -526,7 +526,10 @@ static DWORD WINAPI select_ws_wait_thread(void *lpParameter)
|
|||
/* if the pipe has NOT been closed, sleep and continue waiting */
|
||||
ret = GetLastError();
|
||||
if(ret != ERROR_BROKEN_PIPE) {
|
||||
logmsg("[select_ws_wait_thread] PeekNamedPipe error (%lu)", ret);
|
||||
char buffer[WINAPI_ERROR_LEN];
|
||||
curlx_winapi_strerror(ret, buffer, sizeof(buffer));
|
||||
logmsg("[select_ws_wait_thread] PeekNamedPipe error: (0x%08lx) - %s",
|
||||
ret, buffer);
|
||||
SleepEx(0, FALSE);
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,17 +141,6 @@ void logmsg(const char *msg, ...)
|
|||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
/* use instead of perror() on generic Windows */
|
||||
static void win32_perror(const char *msg)
|
||||
{
|
||||
char buf[512];
|
||||
int err = SOCKERRNO;
|
||||
curlx_winapi_strerror(err, buf, sizeof(buf));
|
||||
if(msg)
|
||||
fprintf(stderr, "%s: ", msg);
|
||||
fprintf(stderr, "%s\n", buf);
|
||||
}
|
||||
|
||||
static void win32_cleanup(void)
|
||||
{
|
||||
#ifdef USE_WINSOCK
|
||||
|
|
@ -170,12 +159,13 @@ int win32_init(void)
|
|||
WORD wVersionRequested;
|
||||
WSADATA wsaData;
|
||||
int err;
|
||||
char buffer[STRERROR_LEN];
|
||||
|
||||
wVersionRequested = MAKEWORD(2, 2);
|
||||
err = WSAStartup(wVersionRequested, &wsaData);
|
||||
|
||||
if(err) {
|
||||
win32_perror("Winsock init failed");
|
||||
curlx_strerror(SOCKERRNO, buffer, sizeof(buffer));
|
||||
fprintf(stderr, "Winsock init failed: %s\n", buffer);
|
||||
logmsg("Error initialising Winsock -- aborting");
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -183,7 +173,8 @@ int win32_init(void)
|
|||
if(LOBYTE(wsaData.wVersion) != LOBYTE(wVersionRequested) ||
|
||||
HIBYTE(wsaData.wVersion) != HIBYTE(wVersionRequested)) {
|
||||
WSACleanup();
|
||||
win32_perror("Winsock init failed");
|
||||
curlx_strerror(SOCKERRNO, buffer, sizeof(buffer));
|
||||
fprintf(stderr, "Winsock init failed: %s\n", buffer);
|
||||
logmsg("No suitable winsock.dll found -- aborting");
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -485,13 +476,17 @@ static DWORD WINAPI main_window_loop(void *lpParameter)
|
|||
WNDCLASS wc;
|
||||
BOOL ret;
|
||||
MSG msg;
|
||||
DWORD err;
|
||||
char buffer[WINAPI_ERROR_LEN];
|
||||
|
||||
ZeroMemory(&wc, sizeof(wc));
|
||||
wc.lpfnWndProc = (WNDPROC)main_window_proc;
|
||||
wc.hInstance = (HINSTANCE)lpParameter;
|
||||
wc.lpszClassName = TEXT("MainWClass");
|
||||
if(!RegisterClass(&wc)) {
|
||||
win32_perror("RegisterClass failed");
|
||||
err = GetLastError();
|
||||
curlx_winapi_strerror(err, buffer, sizeof(buffer));
|
||||
fprintf(stderr, "RegisterClass failed: %s\n", buffer);
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
|
|
@ -503,14 +498,18 @@ static DWORD WINAPI main_window_loop(void *lpParameter)
|
|||
(HWND)NULL, (HMENU)NULL,
|
||||
wc.hInstance, NULL);
|
||||
if(!hidden_main_window) {
|
||||
win32_perror("CreateWindowEx failed");
|
||||
err = GetLastError();
|
||||
curlx_winapi_strerror(err, buffer, sizeof(buffer));
|
||||
fprintf(stderr, "CreateWindowEx failed: (0x%08lx) - %s\n", err, buffer);
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
do {
|
||||
ret = GetMessage(&msg, NULL, 0, 0);
|
||||
if(ret == -1) {
|
||||
win32_perror("GetMessage failed");
|
||||
err = GetLastError();
|
||||
curlx_winapi_strerror(err, buffer, sizeof(buffer));
|
||||
fprintf(stderr, "GetMessage failed: (0x%08lx) - %s\n", err, buffer);
|
||||
return (DWORD)-1;
|
||||
}
|
||||
else if(ret) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue