on sco2 socketpair_tcp needs a bind
authorAndrew Tridgell <tridge@samba.org>
Wed, 27 Jun 2001 13:58:44 +0000 (13:58 +0000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 27 Jun 2001 13:58:44 +0000 (13:58 +0000)
(This used to be commit d8e5409ebb883844d9a1abc9840af1809957a444)

source3/lib/util_sock.c

index d7bef0697e5cd29fecbe48d32f4f5bfa1f478158..e3673f011a13d83a67507125ae4b9ced3a1a589a 100644 (file)
@@ -1158,6 +1158,7 @@ static int socketpair_tcp(int fd[2])
 {
        int listener;
        struct sockaddr sock;
+       struct sockaddr_in sock2;
        socklen_t socklen = sizeof(sock);
        int connect_done = 0;
        
@@ -1167,6 +1168,14 @@ static int socketpair_tcp(int fd[2])
        
        if ((listener = socket(PF_INET, SOCK_STREAM, 0)) == -1) goto failed;
 
+        memset(&sock2, 0, sizeof(sock2));
+#ifdef HAVE_SOCK_SIN_LEN
+        sock2.sin_len = sizeof(sock2);
+#endif
+        sock2.sin_family = PF_INET;
+
+        bind(listener, (struct sockaddr *)&sock2, sizeof(sock2));
+
        if (listen(listener, 1) != 0) goto failed;
 
        if (getsockname(listener, &sock, &socklen) != 0) goto failed;