diff options
author | Gunter Knauf <gk@gknw.de> | 2007-07-12 01:07:49 +0000 |
---|---|---|
committer | Gunter Knauf <gk@gknw.de> | 2007-07-12 01:07:49 +0000 |
commit | 0878b14f79ffc967c1bde19bbda1d6363d05172d (patch) | |
tree | cd67e8df39f016c5dce11f9fcb4648057156efd9 /tests/server/sockfilt.c | |
parent | 7d56f353884bb46ddd4e1dd31bbd693142ccc44c (diff) |
added time loop to sockfilt.c in order to wait for SO_REUSEADDR;
added go_sleep() to util.c.
Diffstat (limited to 'tests/server/sockfilt.c')
-rw-r--r-- | tests/server/sockfilt.c | 15 |
1 files changed, 11 insertions, 4 deletions
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)"); } |