summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2001-06-27 13:58:44 +0000
committerAndrew Tridgell <tridge@samba.org>2001-06-27 13:58:44 +0000
commitd8e5409ebb883844d9a1abc9840af1809957a444 (patch)
tree24cda460a6f95a2c70519f2d8a29567146d22879
parent87f90d48d857828a6ed12bdc58d0d881be45dfce (diff)
downloadsamba-d8e5409ebb883844d9a1abc9840af1809957a444.tar.gz
on sco2 socketpair_tcp needs a bind
-rw-r--r--source/lib/util_sock.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/lib/util_sock.c b/source/lib/util_sock.c
index d7bef0697e5..e3673f011a1 100644
--- a/source/lib/util_sock.c
+++ b/source/lib/util_sock.c
@@ -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;