Fix unaligned aliasing warning in raw socket
This commit is contained in:
@@ -442,23 +442,22 @@ static int open_send_socket(private_socket_raw_socket_t *this,
|
|||||||
int skt;
|
int skt;
|
||||||
|
|
||||||
memset(&addr, 0, sizeof(addr));
|
memset(&addr, 0, sizeof(addr));
|
||||||
|
addr.ss_family = family;
|
||||||
/* precalculate constants depending on address family */
|
/* precalculate constants depending on address family */
|
||||||
switch (family)
|
switch (family)
|
||||||
{
|
{
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
{
|
{
|
||||||
struct sockaddr_in *sin = (struct sockaddr_in *)&addr;
|
struct sockaddr_in *sin = (struct sockaddr_in *)&addr;
|
||||||
sin->sin_family = AF_INET;
|
htoun32(&sin->sin_addr.s_addr, INADDR_ANY);
|
||||||
sin->sin_addr.s_addr = INADDR_ANY;
|
htoun16(&sin->sin_port, port);
|
||||||
sin->sin_port = htons(port);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
{
|
{
|
||||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&addr;
|
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&addr;
|
||||||
sin6->sin6_family = AF_INET6;
|
|
||||||
memcpy(&sin6->sin6_addr, &in6addr_any, sizeof(in6addr_any));
|
memcpy(&sin6->sin6_addr, &in6addr_any, sizeof(in6addr_any));
|
||||||
sin6->sin6_port = htons(port);
|
htoun16(&sin6->sin6_port, port);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user