From 33365c2a0d7fc8d64e8e54cf7dfaebcfbc20ab80 Mon Sep 17 00:00:00 2001 From: X512 Date: Fri, 1 Dec 2023 06:50:41 +0900 Subject: [PATCH] AbstractSocket: do not bind AF_LOCAL socket when connecting Fix connection error for AF_LOCAL sockets. Change-Id: I2e822f34e64434ccdbdd484f1647de2a8a6232d7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7166 Reviewed-by: waddlesplash Tested-by: Commit checker robot --- src/kits/network/libnetapi/AbstractSocket.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kits/network/libnetapi/AbstractSocket.cpp b/src/kits/network/libnetapi/AbstractSocket.cpp index 93a0e66787..5e2ae561c5 100644 --- a/src/kits/network/libnetapi/AbstractSocket.cpp +++ b/src/kits/network/libnetapi/AbstractSocket.cpp @@ -223,9 +223,10 @@ BAbstractSocket::Connect(const BNetworkAddress& peer, int type, fInitStatus = SetTimeout(timeout); if (fInitStatus == B_OK && !IsBound()) { + // Bind to ADDR_ANY, if the address family supports it BNetworkAddress local; - local.SetToWildcard(peer.Family()); - fInitStatus = Bind(local, true); + if (local.SetToWildcard(peer.Family()) == B_OK) + fInitStatus = Bind(local, true); } if (fInitStatus != B_OK) return fInitStatus;