aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/socket_raw/socket_raw_socket.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-11-16 13:45:19 +0000
committerMartin Willi <martin@revosec.ch>2012-03-20 17:30:41 +0100
commit4ac22be0ec9d3f8aa0ef40dacf97c032fcd18e14 (patch)
treee9de0fcdbe142aa9d6951d73f41b9467d7ea2c95 /src/libcharon/plugins/socket_raw/socket_raw_socket.c
parentf7a8fcedc0305dfca7d82adba03c88401240d039 (diff)
downloadstrongswan-4ac22be0ec9d3f8aa0ef40dacf97c032fcd18e14.tar.bz2
strongswan-4ac22be0ec9d3f8aa0ef40dacf97c032fcd18e14.tar.xz
Fix unaligned aliasing warning in raw socket
Diffstat (limited to 'src/libcharon/plugins/socket_raw/socket_raw_socket.c')
-rw-r--r--src/libcharon/plugins/socket_raw/socket_raw_socket.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/libcharon/plugins/socket_raw/socket_raw_socket.c b/src/libcharon/plugins/socket_raw/socket_raw_socket.c
index f371ed502..ae37d8f2b 100644
--- a/src/libcharon/plugins/socket_raw/socket_raw_socket.c
+++ b/src/libcharon/plugins/socket_raw/socket_raw_socket.c
@@ -442,23 +442,22 @@ static int open_send_socket(private_socket_raw_socket_t *this,
int skt;
memset(&addr, 0, sizeof(addr));
+ addr.ss_family = family;
/* precalculate constants depending on address family */
switch (family)
{
case AF_INET:
{
struct sockaddr_in *sin = (struct sockaddr_in *)&addr;
- sin->sin_family = AF_INET;
- sin->sin_addr.s_addr = INADDR_ANY;
- sin->sin_port = htons(port);
+ htoun32(&sin->sin_addr.s_addr, INADDR_ANY);
+ htoun16(&sin->sin_port, port);
break;
}
case AF_INET6:
{
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&addr;
- sin6->sin6_family = AF_INET6;
memcpy(&sin6->sin6_addr, &in6addr_any, sizeof(in6addr_any));
- sin6->sin6_port = htons(port);
+ htoun16(&sin6->sin6_port, port);
break;
}
default: