Hi Hans,
On 11/23/18 11:35 AM, Hans Leidekker wrote:
DWORD status;HANDLE thread;struct resolve_args ra;ra.hostname = hostname;ra.port = port;ra.sa = sa;thread = CreateThread( NULL, 0, resolve_proc, &ra, 0, NULL );if (!thread) return FALSE;
struct async_resolve async;
status = WaitForSingleObject( thread, timeout );if (status == WAIT_OBJECT_0) GetExitCodeThread( thread, &ret );else ret = ERROR_WINHTTP_TIMEOUT;CloseHandle( thread );
async.hostname = hostname;async.port = port;async.addr = addr;if (!(async.done = CreateEventW( NULL, FALSE, FALSE, NULL ))) return FALSE;if (!TrySubmitThreadpoolCallback( resolve_proc, &async, NULL ))
The patch looks good to me, but note that we could consider just using GetAddrInfoEx instead (although it doesn't support timeout yet).
Jacek