aboutsummaryrefslogtreecommitdiff
path: root/drivers/unix/tcp_server_posix.cpp
diff options
context:
space:
mode:
authorFabio Alessandrelli2016-10-22 07:23:07 +0200
committerFabio Alessandrelli2016-12-11 12:35:06 +0100
commitb3443fd84889ddc8e8a7d9d90a759497d1cdb776 (patch)
tree6a2088a211562b32d8d6588471f8c255fff6b3ac /drivers/unix/tcp_server_posix.cpp
parent5546929712bb2e410319affb6ba2813c0108ba23 (diff)
downloadgodot-b3443fd84889ddc8e8a7d9d90a759497d1cdb776.tar.gz
godot-b3443fd84889ddc8e8a7d9d90a759497d1cdb776.tar.zst
godot-b3443fd84889ddc8e8a7d9d90a759497d1cdb776.zip
Pass correct address size (ipv4,ipv6) to socket connect, bind, sendto
The address size passed to network system calls now reflects the the actual IP type (v4 or v6). Fix Windows and OSX ipv6 sockets (cherry picked from commit 80e911647c5df21c5b6a06876f1d48e21cd1f5fc)
Diffstat (limited to 'drivers/unix/tcp_server_posix.cpp')
-rw-r--r--drivers/unix/tcp_server_posix.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/unix/tcp_server_posix.cpp b/drivers/unix/tcp_server_posix.cpp
index 27c561847..05b739804 100644
--- a/drivers/unix/tcp_server_posix.cpp
+++ b/drivers/unix/tcp_server_posix.cpp
@@ -87,11 +87,11 @@ Error TCPServerPosix::listen(uint16_t p_port, IP_Address::AddrType p_type, const
}
struct sockaddr_storage addr;
- _set_listen_sockaddr(&addr, p_port, p_type, p_accepted_hosts);
+ size_t addr_size = _set_listen_sockaddr(&addr, p_port, p_type, p_accepted_hosts);
// automatically fill with my IP TODO: use p_accepted_hosts
- if (bind(sockfd, (struct sockaddr *)&addr, sizeof addr) != -1) {
+ if (bind(sockfd, (struct sockaddr *)&addr, addr_size) != -1) {
if (::listen(sockfd, 1) == -1) {