From 894d4cba108fff3501def2d4178b68b2c7fed203 Mon Sep 17 00:00:00 2001
From: Marius Greuel <greuelm@mgtek.com>
Date: Thu, 29 Dec 2022 15:35:20 +0100
Subject: [PATCH 1/2] Make WIN32 implementation of ser_recv() fail on time-out

---
 src/ser_win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/ser_win32.c b/src/ser_win32.c
index 16df6fe9..3f0c58db 100644
--- a/src/ser_win32.c
+++ b/src/ser_win32.c
@@ -589,7 +589,7 @@ static int ser_recv(const union filedescriptor *fd, unsigned char * buf, size_t
 	}
 
 	/* time out detected */
-	if (read == 0) {
+	if (read < buflen) {
 		pmsg_notice2("ser_recv(): programmer is not responding\n");
 		return -1;
 	}

From 161e25e8862d5dc3231052d8d0f5bee90251f8d5 Mon Sep 17 00:00:00 2001
From: Marius Greuel <greuelm@mgtek.com>
Date: Fri, 30 Dec 2022 12:13:36 +0100
Subject: [PATCH 2/2] Correct messages in WIN32 net_recv()

---
 src/ser_win32.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/ser_win32.c b/src/ser_win32.c
index 3f0c58db..3c81571c 100644
--- a/src/ser_win32.c
+++ b/src/ser_win32.c
@@ -486,12 +486,12 @@ reselect:
 		nfds = select(fd->ifd + 1, &rfds, NULL, NULL, &to2);
 		if (nfds == 0) {
 			if (verbose > 1) {
-				pmsg_notice("ser_recv(): programmer is not responding\n");
+				pmsg_notice("net_recv(): programmer is not responding\n");
 			}
 			return -1;
 		} else if (nfds == -1) {
 			if (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEINPROGRESS) {
-				pmsg_notice("ser_recv(): programmer is not responding, reselecting\n");
+				pmsg_notice("net_recv(): programmer is not responding, reselecting\n");
 				goto reselect;
 			} else {
 				FormatMessage(