1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-11 20:15:03 -05:00

tftpd.c: Follow up cleanup and restore of previous sockopt

This commit is contained in:
Marc Hoersken 2013-04-06 17:18:13 +02:00
parent 090b55c100
commit 9474c4a9a5

View File

@ -1196,8 +1196,8 @@ static void sendtftp(struct testcase *test, struct formats *pf)
*/ */
static void recvtftp(struct testcase *test, struct formats *pf) static void recvtftp(struct testcase *test, struct formats *pf)
{ {
#if USE_WINSOCK #ifdef USE_WINSOCK
DWORD recvtimeout; DWORD recvtimeout, recvtimeoutbak;
#endif #endif
ssize_t n, size; ssize_t n, size;
recvblock = 0; recvblock = 0;
@ -1269,13 +1269,16 @@ send_ack:
#endif #endif
/* normally times out and quits */ /* normally times out and quits */
#ifdef USE_WINSOCK #ifdef USE_WINSOCK
recvtimeout = sizeof(recvtimeoutbak);
getsockopt(peer, SOL_SOCKET, SO_RCVTIMEO,
(char*)&recvtimeoutbak, (int*)&recvtimeout);
recvtimeout = 10; recvtimeout = 10;
setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO, setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO,
(const char*)&recvtimeout, sizeof(recvtimeout)); (const char*)&recvtimeout, sizeof(recvtimeout));
#endif #endif
n = sread(peer, &buf.storage[0], sizeof(buf.storage)); n = sread(peer, &buf.storage[0], sizeof(buf.storage));
#ifdef USE_WINSOCK #ifdef USE_WINSOCK
recvtimeout = 0; recvtimeout = recvtimeoutbak;
setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO, setsockopt(peer, SOL_SOCKET, SO_RCVTIMEO,
(const char*)&recvtimeout, sizeof(recvtimeout)); (const char*)&recvtimeout, sizeof(recvtimeout));
#endif #endif