From: Nicholas Nethercote Date: Wed, 29 Apr 2009 02:04:57 +0000 (+0000) Subject: Merge r9667 (fdleak_ipv4 portability tweak) from the DARWIN branch. X-Git-Tag: svn/VALGRIND_3_5_0~755 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4a812f8a14cad8340e5c4b5043be2d357220d881;p=thirdparty%2Fvalgrind.git Merge r9667 (fdleak_ipv4 portability tweak) from the DARWIN branch. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9669 --- diff --git a/none/tests/fdleak_ipv4.c b/none/tests/fdleak_ipv4.c index f595d6f64f..d3ef75d8ab 100644 --- a/none/tests/fdleak_ipv4.c +++ b/none/tests/fdleak_ipv4.c @@ -24,7 +24,7 @@ void server () memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr("127.0.0.1"); - addr.sin_port = 12321; + addr.sin_port = htons(12321); DO( bind(s, (struct sockaddr *)&addr, sizeof(addr)) ); @@ -42,16 +42,20 @@ void client () struct sockaddr_in addr; char buf[1024]; - s = DO( socket(PF_INET, SOCK_STREAM, 0) ); - addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr("127.0.0.1"); - addr.sin_port = 12321; + addr.sin_port = htons(12321); do { count++; + s = DO( socket(PF_INET, SOCK_STREAM, 0) ); ret = connect(s, (struct sockaddr *)&addr, sizeof(addr)); - if (ret == -1) sleep(1); + if (ret == -1) { + // If the connect() failed, we close the socket and reopen it before + // trying again. This isn't necessary on Linux, but it is on Darwin. + DO( close(s) ); + sleep(1); + } } while (count < 10 && ret == -1); if (ret == -1) {