aboutsummaryrefslogtreecommitdiff
path: root/tests/server/sockfilt.c
diff options
context:
space:
mode:
authorGunter Knauf <gk@gknw.de>2007-07-12 01:07:49 +0000
committerGunter Knauf <gk@gknw.de>2007-07-12 01:07:49 +0000
commit0878b14f79ffc967c1bde19bbda1d6363d05172d (patch)
treecd67e8df39f016c5dce11f9fcb4648057156efd9 /tests/server/sockfilt.c
parent7d56f353884bb46ddd4e1dd31bbd693142ccc44c (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.c15
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)");
}