aboutsummaryrefslogtreecommitdiff
path: root/drivers/unix/packet_peer_udp_posix.cpp
diff options
context:
space:
mode:
authorFabio Alessandrelli2017-01-18 17:17:44 +0100
committerFabio Alessandrelli2017-03-22 21:01:14 +0100
commit86de0bd081669c40578b408e2f38fea76b0416ce (patch)
tree309cb234fc805dc5c49ddcfc7e704f3702a5baf4 /drivers/unix/packet_peer_udp_posix.cpp
parentd9525082feb6165944082fb80ae7785b23a2250c (diff)
downloadgodot-86de0bd081669c40578b408e2f38fea76b0416ce.tar.gz
godot-86de0bd081669c40578b408e2f38fea76b0416ce.tar.zst
godot-86de0bd081669c40578b408e2f38fea76b0416ce.zip
Bind to IPv4 on OpenBSD when using wildcard
OpenBSD does not support binding on both IPv4 and IPv6 using the same socket (cherry picked from commit 619e7a2c8ba19d0dc45467e29d9d9aa8b3506ac8)
Diffstat (limited to 'drivers/unix/packet_peer_udp_posix.cpp')
-rw-r--r--drivers/unix/packet_peer_udp_posix.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/unix/packet_peer_udp_posix.cpp b/drivers/unix/packet_peer_udp_posix.cpp
index bfbbf6cce..4040aaaf4 100644
--- a/drivers/unix/packet_peer_udp_posix.cpp
+++ b/drivers/unix/packet_peer_udp_posix.cpp
@@ -127,7 +127,11 @@ Error PacketPeerUDPPosix::listen(int p_port, IP_Address p_bind_address, int p_re
ERR_FAIL_COND_V(sockfd != -1, ERR_ALREADY_IN_USE);
ERR_FAIL_COND_V(!p_bind_address.is_valid() && !p_bind_address.is_wildcard(), ERR_INVALID_PARAMETER);
+#ifdef __OpenBSD__
+ sock_type = IP::TYPE_IPV4; // OpenBSD does not support dual stacking, fallback to IPv4 only.
+#else
sock_type = IP::TYPE_ANY;
+#endif
if (p_bind_address.is_valid())
sock_type = p_bind_address.is_ipv4() ? IP::TYPE_IPV4 : IP::TYPE_IPV6;