Skip to content

Commit 5a9a2ca

Browse files
committed
Networking (Windows): fix calling IPv6 server
1 parent 6c8b4b2 commit 5a9a2ca

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

src/common/networking_windows.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,21 @@ const char* ffNetworkingSendHttpRequest(FFNetworkingState* state, const char* ho
6363
return "socket() failed";
6464
}
6565

66-
{
67-
//ConnectEx requires the socket to be initially bound
68-
if(bind(state->sockfd, (SOCKADDR *) &(struct sockaddr_in) {
66+
//ConnectEx requires the socket to be initially bound
67+
if((state->ipv6
68+
? bind(state->sockfd, (SOCKADDR *) &(struct sockaddr_in6) {
69+
.sin6_family = AF_INET6,
70+
.sin6_addr = in6addr_any,
71+
}, sizeof(struct sockaddr_in6))
72+
: bind(state->sockfd, (SOCKADDR *) &(struct sockaddr_in) {
6973
.sin_family = AF_INET,
7074
.sin_addr.s_addr = INADDR_ANY,
71-
.sin_port = 0,
72-
}, sizeof(struct sockaddr_in)) != 0)
73-
{
74-
closesocket(state->sockfd);
75-
freeaddrinfo(addr);
76-
state->sockfd = INVALID_SOCKET;
77-
return "bind() failed";
78-
}
75+
}, sizeof(struct sockaddr_in))) != 0)
76+
{
77+
closesocket(state->sockfd);
78+
freeaddrinfo(addr);
79+
state->sockfd = INVALID_SOCKET;
80+
return "bind() failed";
7981
}
8082

8183
FF_STRBUF_AUTO_DESTROY command = ffStrbufCreateA(64);
@@ -93,7 +95,6 @@ const char* ffNetworkingSendHttpRequest(FFNetworkingState* state, const char* ho
9395
if(!result && WSAGetLastError() != WSA_IO_PENDING)
9496
{
9597
closesocket(state->sockfd);
96-
freeaddrinfo(addr);
9798
state->sockfd = INVALID_SOCKET;
9899
return "ConnectEx() failed";
99100
}

0 commit comments

Comments
 (0)