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;

Reply via email to