aboutsummaryrefslogtreecommitdiff
path: root/platform/windows/tcp_server_winsock.cpp
diff options
context:
space:
mode:
authorFabio Alessandrelli2016-10-22 07:23:07 +0200
committerRémi Verschelde2016-10-26 08:20:31 +0200
commit80e911647c5df21c5b6a06876f1d48e21cd1f5fc (patch)
tree6fc3a52e19b24492bdcbf6e231ccb7b9fa536c42 /platform/windows/tcp_server_winsock.cpp
parenta3131a6b5bf5357e5c70ba6fea4a0963f4b341b4 (diff)
downloadgodot-80e911647c5df21c5b6a06876f1d48e21cd1f5fc.tar.gz
godot-80e911647c5df21c5b6a06876f1d48e21cd1f5fc.tar.zst
godot-80e911647c5df21c5b6a06876f1d48e21cd1f5fc.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
Diffstat (limited to 'platform/windows/tcp_server_winsock.cpp')
-rw-r--r--platform/windows/tcp_server_winsock.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/platform/windows/tcp_server_winsock.cpp b/platform/windows/tcp_server_winsock.cpp
index 049e609d6..1aedc52bb 100644
--- a/platform/windows/tcp_server_winsock.cpp
+++ b/platform/windows/tcp_server_winsock.cpp
@@ -77,7 +77,7 @@ Error TCPServerWinsock::listen(uint16_t p_port, IP_Address::AddrType p_type,cons
};
struct sockaddr_storage my_addr;
- _set_listen_sockaddr(&my_addr, p_port, p_type, p_accepted_hosts);
+ size_t addr_size = _set_listen_sockaddr(&my_addr, p_port, p_type, p_accepted_hosts);
int reuse=1;
if(setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) < 0) {
@@ -86,7 +86,7 @@ Error TCPServerWinsock::listen(uint16_t p_port, IP_Address::AddrType p_type,cons
}
- if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof my_addr) != SOCKET_ERROR) {
+ if (bind(sockfd, (struct sockaddr *)&my_addr, addr_size) != SOCKET_ERROR) {
if (::listen(sockfd, SOMAXCONN) == SOCKET_ERROR) {