mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
Fix IPv6 on non-Linux platforms
This commit is contained in:
parent
145ecece10
commit
cd0445455f
2 changed files with 8 additions and 7 deletions
|
@ -72,9 +72,10 @@ struct libwebsocket *libwebsocket_client_connect_2(
|
|||
/* map IPv4 to IPv6 */
|
||||
bzero((char *)&server_addr6.sin6_addr,
|
||||
sizeof(struct in6_addr));
|
||||
server_addr6.sin6_addr.s6_addr16[5] = 0xffff;
|
||||
bcopy(&((struct sockaddr_in *)result->ai_addr)->sin_addr,
|
||||
&server_addr6.sin6_addr.s6_addr16[6],
|
||||
server_addr6.sin6_addr.s6_addr[10] = 0xff;
|
||||
server_addr6.sin6_addr.s6_addr[11] = 0xff;
|
||||
memcpy(&server_addr6.sin6_addr.s6_addr[12],
|
||||
&((struct sockaddr_in *)result->ai_addr)->sin_addr,
|
||||
sizeof(struct in_addr));
|
||||
break;
|
||||
case AF_INET6:
|
||||
|
|
|
@ -2956,10 +2956,10 @@ interface_to_sa(struct libwebsocket_context *context,
|
|||
/* map IPv4 to IPv6 */
|
||||
bzero((char *)&addr6->sin6_addr,
|
||||
sizeof(struct in6_addr));
|
||||
addr6->sin6_addr.s6_addr16[5] = 0xffff;
|
||||
bcopy(&((struct sockaddr_in *)ifc->ifa_addr)->
|
||||
sin_addr,
|
||||
&addr6->sin6_addr.s6_addr16[6],
|
||||
addr6->sin6_addr.s6_addr[10] = 0xff;
|
||||
addr6->sin6_addr.s6_addr[11] = 0xff;
|
||||
memcpy(&addr6->sin6_addr.s6_addr[12],
|
||||
&((struct sockaddr_in *)ifc->ifa_addr)->sin_addr,
|
||||
sizeof(struct in_addr));
|
||||
} else
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue