From 0878b14f79ffc967c1bde19bbda1d6363d05172d Mon Sep 17 00:00:00 2001 From: Gunter Knauf Date: Thu, 12 Jul 2007 01:07:49 +0000 Subject: added time loop to sockfilt.c in order to wait for SO_REUSEADDR; added go_sleep() to util.c. --- tests/server/sockfilt.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'tests/server/sockfilt.c') diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index ab6682ec5..e8d701393 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -399,10 +399,17 @@ static curl_socket_t sockdaemon(curl_socket_t sock, #endif /* ENABLE_IPV6 */ int flag = 1; int rc; - - if (setsockopt - (sock, SOL_SOCKET, SO_REUSEADDR, (void *)&flag, - sizeof(flag)) < 0) { + int maxretr = 100; + + rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, + (void *)&flag, sizeof(flag)); + while ((rc < 0) && maxretr) { + maxretr--; + go_sleep(10); + rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, + (void *)&flag, sizeof(flag)); + } + if (rc < 0) { perror("setsockopt(SO_REUSEADDR)"); } -- cgit v1.2.3