diff options
author | gdt <gdt> | 2004-08-26 15:14:07 +0200 |
---|---|---|
committer | gdt <gdt> | 2004-08-26 15:14:07 +0200 |
commit | d0deca68371c222d1b2ff3fcf61312506395861c (patch) | |
tree | 387b78bd5cf21d645f33617ea4b5bb7eb58ce613 | |
parent | 2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com> (diff) | |
download | frr-d0deca68371c222d1b2ff3fcf61312506395861c.tar.xz frr-d0deca68371c222d1b2ff3fcf61312506395861c.zip |
2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com>
* ospf_packet.c (ospf_recv_packet): adjust size declaration of
buffer used to get interface index so that it compiles on other
than Linux and includes the required alignment space. Probably
this was only working on sparc/sparc64 because most of sockaddr_dl
was not being written.
-rw-r--r-- | ospfd/ChangeLog | 8 | ||||
-rw-r--r-- | ospfd/ospf_packet.c | 7 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 1339ba24a..3da4571f0 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,11 @@ +2004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com> + + * ospf_packet.c (ospf_recv_packet): adjust size declaration of + buffer used to get interface index so that it compiles on other + than Linux and includes the required alignment space. Probably + this was only working on sparc/sparc64 because most of sockaddr_dl + was not being written. + 2004-08-19 Paul Jakma <paul@dishone.st> * ospf_packet.c: update to match sockopt renames. diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index ce82ee27c..8bc49666b 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -1881,7 +1881,12 @@ ospf_recv_packet (int fd, struct interface **ifp) unsigned int ifindex = 0; struct iovec iov; struct cmsghdr *cmsg; - char buff [sizeof (*cmsg) + SOPT_SIZE_CMSG_PKTINFO_IPV4()]; +#if defined(CMSG_SPACE) + /* Header and data both require alignment. */ + char buff [CMSG_SPACE(SIZE_CMSG_IFINDEX_IPV4())]; +#else + char buff [sizeof (*cmsg) + SOPT_SIZE_CMSG_IFINDEX_IPV4()]; +#endif struct msghdr msgh; msgh.msg_name = NULL; |