aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-07-09 15:47:24 +0200
committerMartin Willi <martin@revosec.ch>2014-09-24 11:19:58 +0200
commit0404a29bfe7a24ca0c6d4f94405a01f6ff942f43 (patch)
tree1635f6083a58d22aa91b5f58d3a6a754e0736f91 /src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h
parent6fe02dda752cbb2c2389a3367a3b6e04add43425 (diff)
downloadstrongswan-0404a29bfe7a24ca0c6d4f94405a01f6ff942f43.tar.bz2
strongswan-0404a29bfe7a24ca0c6d4f94405a01f6ff942f43.tar.xz
kernel-netlink: Define netlink buffer as an union having a netlink header
This allows us to streamline the netlink buffers, and avoid extensive casting.
Diffstat (limited to 'src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h')
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h b/src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h
index 8be935bc3..1a03a89a8 100644
--- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h
+++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.h
@@ -26,7 +26,10 @@
* 1024 byte is currently sufficient for all operations. Some platform
* require an enforced aligment to four bytes (e.g. ARM).
*/
-typedef u_char netlink_buf_t[1024] __attribute__((aligned(RTA_ALIGNTO)));
+typedef union {
+ struct nlmsghdr hdr;
+ u_char bytes[1024];
+} netlink_buf_t __attribute__((aligned(RTA_ALIGNTO)));
typedef struct netlink_socket_t netlink_socket_t;