to be Posix.1g compliant, fix ancillary message alignment. it will now be
authoritojun <itojun@openbsd.org>
Sat, 4 Mar 2000 02:34:23 +0000 (02:34 +0000)
committeritojun <itojun@openbsd.org>
Sat, 4 Mar 2000 02:34:23 +0000 (02:34 +0000)
aligned to ALIGNBYTES (arch dependent).
NOTE: the change requires you to recompile IPv6 userland, if you are
on arch that is ALIGNBYTES != sizeof(long) - 1 (sparc seems to be it).
sorry for the mess.

sys/sys/socket.h

index 680042f..6e2c892 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: socket.h,v 1.31 2000/02/18 05:21:01 itojun Exp $      */
+/*     $OpenBSD: socket.h,v 1.32 2000/03/04 02:34:23 itojun Exp $      */
 /*     $NetBSD: socket.h,v 1.14 1996/02/09 18:25:36 christos Exp $     */
 
 /*
 #ifndef _SYS_SOCKET_H_
 #define        _SYS_SOCKET_H_
 
+/*
+ * needed for ALIGNBYTES
+ */
+#include <machine/param.h>
+
 /*
  * Definitions related to sockets: types, address families, options.
  */
@@ -356,7 +361,7 @@ struct cmsghdr {
 #define        CMSG_FIRSTHDR(mhdr)     ((struct cmsghdr *)(mhdr)->msg_control)
 
 /* Round len up to next alignment boundary */
-#define        CMSG_ALIGN(len) (((len)+sizeof(long)-1) & ~(sizeof(long)-1))
+#define        CMSG_ALIGN(len) ALIGN(len)
 
 /* Length of the contents of a control message of length len */
 #define        CMSG_LEN(len)   (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))