Module Name: src
Committed By: roy
Date: Mon Dec 12 01:11:33 UTC 2011
Modified Files:
src/usr.sbin/rtadvd: if.c
Log Message:
Use RT_ADVANCE when available.
Fixes PR/44838
To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/rtadvd/if.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/rtadvd/if.c
diff -u src/usr.sbin/rtadvd/if.c:1.20 src/usr.sbin/rtadvd/if.c:1.21
--- src/usr.sbin/rtadvd/if.c:1.20 Sun Dec 11 20:44:44 2011
+++ src/usr.sbin/rtadvd/if.c Mon Dec 12 01:11:33 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: if.c,v 1.20 2011/12/11 20:44:44 christos Exp $ */
+/* $NetBSD: if.c,v 1.21 2011/12/12 01:11:33 roy Exp $ */
/* $KAME: if.c,v 1.36 2004/11/30 22:32:01 suz Exp $ */
/*
@@ -50,13 +50,11 @@
#include "rtadvd.h"
#include "if.h"
-#define ROUNDUP(a, size) \
- (((a) & ((size)-1)) ? (1 + ((a) | ((size)-1))) : (a))
-
-#define NEXT_SA(ap) (ap) = (struct sockaddr *) \
- ((char *)(ap) + ((ap)->sa_len ? ROUNDUP((ap)->sa_len,\
- sizeof(u_long)) :\
- sizeof(u_long)))
+#ifndef RT_ROUNDUP
+#define RT_ROUNDUP(a) \
+ ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
+#define RT_ADVANCE(x, n) (x += RT_ROUNDUP((n)->sa_len))
+#endif
struct if_msghdr **iflist;
int iflist_init_ok;
@@ -75,7 +73,7 @@ get_rtaddrs(int addrs, struct sockaddr *
for (i = 0; i < RTAX_MAX; i++) {
if (addrs & (1 << i)) {
rti_info[i] = sa;
- NEXT_SA(sa);
+ RT_ADVANCE(sa, sa);
}
else
rti_info[i] = NULL;