From: Marc Hoersken Date: Sat, 6 Apr 2013 15:18:13 +0000 (+0200) Subject: tftpd.c: Follow up cleanup and restore of previous sockopt X-Git-Tag: curl-7_30_0~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9474c4a9a5828291fc3c1157b8536031d3fa4cac;p=thirdparty%2Fcurl.git tftpd.c: Follow up cleanup and restore of previous sockopt --- diff --git a/tests/server/tftpd.c b/tests/server/tftpd.c index 012e209e81..bfb7d58e28 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