]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge r9667 (fdleak_ipv4 portability tweak) from the DARWIN branch.
authorNicholas Nethercote <njn@valgrind.org>
Wed, 29 Apr 2009 02:04:57 +0000 (02:04 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Wed, 29 Apr 2009 02:04:57 +0000 (02:04 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9669

none/tests/fdleak_ipv4.c

index f595d6f64f6252382eee897994c3b4ef822208ab..d3ef75d8abb5d51414218952b516da22b2150fa6 100644 (file)
@@ -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) {