summaryrefslogtreecommitdiff
path: root/src/ra.c
diff options
context:
space:
mode:
authorVladislav Grishenko <themiron@mail.ru>2016-01-31 21:03:00 +0500
committerVladislav Grishenko <themiron@mail.ru>2016-01-31 21:03:00 +0500
commit57622fffb7e74065f4a7b32d37acd44299fe9759 (patch)
treea96d7cd24ecdd1fa9a59dee92f6c409a43f796e5 /src/ra.c
parentec7f4701b348f5c4c3191ca83ecd8453c431c432 (diff)
downloadodhcp6c-57622fffb7e74065f4a7b32d37acd44299fe9759.tar.gz
Use more conventional way for the alignment
Diffstat (limited to 'src/ra.c')
-rw-r--r--src/ra.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/ra.c b/src/ra.c
index dd5962a..f1b102d 100644
--- a/src/ra.c
+++ b/src/ra.c
@@ -275,7 +275,10 @@ bool ra_process(void)
bool found = false;
bool changed = false;
uint8_t buf[1500] __aligned(4);
- uint8_t cmsg_buf[128] __aligned(__alignof__(struct cmsghdr));
+ union {
+ struct cmsghdr hdr;
+ uint8_t buf[CMSG_SPACE(sizeof(int))];
+ } cmsg_buf;
struct nd_router_advert *adv = (struct nd_router_advert*)buf;
struct odhcp6c_entry *entry = alloca(sizeof(*entry) + 256);
const struct in6_addr any = IN6ADDR_ANY_INIT;
@@ -302,7 +305,7 @@ bool ra_process(void)
.msg_namelen = sizeof(from),
.msg_iov = &iov,
.msg_iovlen = 1,
- .msg_control = cmsg_buf,
+ .msg_control = cmsg_buf.buf,
.msg_controllen = sizeof(cmsg_buf),
.msg_flags = 0
};