aboutsummaryrefslogtreecommitdiff
path: root/drivers/unix/tcp_server_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/tcp_server_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/tcp_server_posix.cpp')
-rw-r--r--drivers/unix/tcp_server_posix.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/unix/tcp_server_posix.cpp b/drivers/unix/tcp_server_posix.cpp
index 6aec5ad31..9049faebb 100644
--- a/drivers/unix/tcp_server_posix.cpp
+++ b/drivers/unix/tcp_server_posix.cpp
@@ -74,7 +74,11 @@ Error TCPServerPosix::listen(uint16_t p_port, const IP_Address p_bind_address) {
ERR_FAIL_COND_V(!p_bind_address.is_valid() && !p_bind_address.is_wildcard(), ERR_INVALID_PARAMETER);
int sockfd;
+#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 the bind address is valid use its type as the socket type
if (p_bind_address.is_valid())