diff options
| -rw-r--r-- | tests/server/tftpd.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/tests/server/tftpd.c b/tests/server/tftpd.c index 012e209e8..bfb7d58e2 100644 --- a/tests/server/tftpd.c +++ b/tests/server/tftpd.c @@ -1196,8 +1196,8 @@ static void sendtftp(struct testcase *test, struct formats *pf)   */  static void recvtftp(struct testcase *test, struct formats *pf)  { -#if USE_WINSOCK -  DWORD recvtimeout; +#ifdef USE_WINSOCK +  DWORD recvtimeout, recvtimeoutbak;  #endif    ssize_t n, size;    recvblock = 0; @@ -1269,13 +1269,16 @@ send_ack:  #endif    /* normally times out and quits */  #ifdef USE_WINSOCK +  recvtimeout = sizeof(recvtimeoutbak); +  getsockopt(peer, SOL_SOCKET, SO_RCVTIMEO, +             (char*)&recvtimeoutbak, (int*)&recvtimeout);    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; +  recvtimeout = recvtimeoutbak;    setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO,               (const char*)&recvtimeout, sizeof(recvtimeout));  #endif | 
