Fix some IPv6 compatibility issues

This commit is contained in:
Cameron Gutman
2016-03-06 23:22:59 -08:00
parent 4f7ef11c23
commit b3e34fa1db
2 changed files with 6 additions and 42 deletions
+3 -21
View File
@@ -123,7 +123,7 @@ enet_address_equal (ENetAddress * address1, ENetAddress * address2)
sin6a = (struct sockaddr_in6 *) & address1 -> address;
sin6b = (struct sockaddr_in6 *) & address2 -> address;
return sin6a -> sin6_port == sin6b -> sin6_port &&
memcmp (& sin6a -> sin6_addr, & sin6b -> sin6_addr, sizeof (sin6a -> sin6_addr)) == sizeof(sin6a->sin6_addr);
! memcmp (& sin6a -> sin6_addr, & sin6b -> sin6_addr, sizeof (sin6a -> sin6_addr));
}
default:
{
@@ -184,27 +184,9 @@ enet_address_set_host (ENetAddress * address, const char * name)
int
enet_socket_bind (ENetSocket socket, const ENetAddress * address)
{
struct sockaddr_in sinAny;
struct sockaddr *sin;
socklen_t sinLength;
if (address != NULL)
{
sin = (struct sockaddr *) & address -> address;
sinLength = address -> addressLength;
}
else
{
memset (& sinAny, 0, sizeof (struct sockaddr_in));
sinAny.sin_family = AF_INET;
sin = (struct sockaddr *) & sinAny;
sinLength = sizeof (sinAny);
}
return bind (socket,
sin,
sinLength);
(struct sockaddr *) & address -> address,
address -> addressLength);
}
int
+3 -21
View File
@@ -102,7 +102,7 @@ enet_address_equal (ENetAddress * address1, ENetAddress * address2)
sin6a = (struct sockaddr_in6 *) & address1 -> address;
sin6b = (struct sockaddr_in6 *) & address2 -> address;
return sin6a -> sin6_port == sin6b -> sin6_port &&
memcmp (& sin6a -> sin6_addr, & sin6b -> sin6_addr, sizeof (sin6a -> sin6_addr)) == sizeof(sin6a->sin6_addr);
! memcmp (& sin6a -> sin6_addr, & sin6b -> sin6_addr, sizeof (sin6a -> sin6_addr));
}
default:
{
@@ -142,27 +142,9 @@ enet_address_set_host (ENetAddress * address, const char * name)
int
enet_socket_bind (ENetSocket socket, const ENetAddress * address)
{
struct sockaddr_in sinAny;
struct sockaddr *sin;
socklen_t sinLength;
if (address != NULL)
{
sin = (struct sockaddr *) & address -> address;
sinLength = address -> addressLength;
}
else
{
memset (& sinAny, 0, sizeof (struct sockaddr_in));
sinAny.sin_family = AF_INET;
sin = (struct sockaddr *) & sinAny;
sinLength = sizeof (sinAny);
}
return bind (socket,
sin,
sinLength);
(struct sockaddr *) & address -> address,
address -> addressLength);
}
int