diff options
-rw-r--r-- | tests/server/tftpd.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/server/tftpd.c b/tests/server/tftpd.c index 48950c549..012e209e8 100644 --- a/tests/server/tftpd.c +++ b/tests/server/tftpd.c @@ -1196,6 +1196,9 @@ static void sendtftp(struct testcase *test, struct formats *pf) */ static void recvtftp(struct testcase *test, struct formats *pf) { +#if USE_WINSOCK + DWORD recvtimeout; +#endif ssize_t n, size; recvblock = 0; #if defined(HAVE_ALARM) && defined(SIGALRM) @@ -1265,7 +1268,17 @@ send_ack: alarm(rexmtval); #endif /* normally times out and quits */ +#ifdef USE_WINSOCK + recvtimeout = 10; + setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO, + (const char*)&recvtimeout, sizeof(recvtimeout)); +#endif n = sread(peer, &buf.storage[0], sizeof(buf.storage)); +#ifdef USE_WINSOCK + recvtimeout = 0; + setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO, + (const char*)&recvtimeout, sizeof(recvtimeout)); +#endif #ifdef HAVE_ALARM alarm(0); #endif |