X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fmingw%2Fdevice.c;h=54e09942ce70e07df62a7e37a0ef6d535445743a;hb=a742ea4d040ecfaabbc875c63f2625654ce68923;hp=eb3663d7921a322b2c15e4f19b34bc7b49d7c9f2;hpb=8145a3392bdcff4d7856ba72e66a90d73d887c00;p=tinc diff --git a/src/mingw/device.c b/src/mingw/device.c index eb3663d7..54e09942 100644 --- a/src/mingw/device.c +++ b/src/mingw/device.c @@ -72,9 +72,16 @@ static void device_issue_read() { static void device_handle_read(void *data, int flags) { DWORD len; + if(!GetOverlappedResult(device_handle, &device_read_overlapped, &len, FALSE)) { logger(DEBUG_ALWAYS, LOG_ERR, "Error getting read result from %s %s: %s", device_info, device, strerror(errno)); + + if(GetLastError() != ERROR_IO_INCOMPLETE) { + /* Must reset event or it will keep firing. */ + ResetEvent(device_read_overlapped.hEvent); + } + return; }