diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2016-10-22 07:23:07 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2016-10-26 08:20:31 +0200 |
commit | 80e911647c5df21c5b6a06876f1d48e21cd1f5fc (patch) | |
tree | 6fc3a52e19b24492bdcbf6e231ccb7b9fa536c42 /platform/windows/stream_peer_winsock.cpp | |
parent | a3131a6b5bf5357e5c70ba6fea4a0963f4b341b4 (diff) | |
download | redot-engine-80e911647c5df21c5b6a06876f1d48e21cd1f5fc.tar.gz |
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/stream_peer_winsock.cpp')
-rw-r--r-- | platform/windows/stream_peer_winsock.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/platform/windows/stream_peer_winsock.cpp b/platform/windows/stream_peer_winsock.cpp index cd9cc99024..b511e38ecb 100644 --- a/platform/windows/stream_peer_winsock.cpp +++ b/platform/windows/stream_peer_winsock.cpp @@ -88,9 +88,9 @@ Error StreamPeerWinsock::_poll_connection(bool p_block) const { }; struct sockaddr_storage their_addr; - _set_sockaddr(&their_addr, peer_host, peer_port); + size_t addr_size = _set_sockaddr(&their_addr, peer_host, peer_port); - if (::connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == SOCKET_ERROR) { + if (::connect(sockfd, (struct sockaddr *)&their_addr,addr_size) == SOCKET_ERROR) { int err = WSAGetLastError(); if (err == WSAEISCONN) { @@ -312,9 +312,9 @@ Error StreamPeerWinsock::connect(const IP_Address& p_host, uint16_t p_port) { }; struct sockaddr_storage their_addr; - _set_sockaddr(&their_addr, p_host, p_port); + size_t addr_size = _set_sockaddr(&their_addr, p_host, p_port); - if (::connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == SOCKET_ERROR) { + if (::connect(sockfd, (struct sockaddr *)&their_addr,addr_size) == SOCKET_ERROR) { if (WSAGetLastError() != WSAEWOULDBLOCK) { ERR_PRINT("Connection to remote host failed!"); |