@@ -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