Module Name: src Committed By: drochner Date: Mon Jun 6 16:50:46 UTC 2011
Modified Files: src/usr.sbin/ndp: ndp.c Log Message: make this work again after routing socket alignment changes To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/usr.sbin/ndp/ndp.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/ndp/ndp.c diff -u src/usr.sbin/ndp/ndp.c:1.38 src/usr.sbin/ndp/ndp.c:1.39 --- src/usr.sbin/ndp/ndp.c:1.38 Fri Nov 6 20:51:19 2009 +++ src/usr.sbin/ndp/ndp.c Mon Jun 6 16:50:46 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ndp.c,v 1.38 2009/11/06 20:51:19 dyoung Exp $ */ +/* $NetBSD: ndp.c,v 1.39 2011/06/06 16:50:46 drochner Exp $ */ /* $KAME: ndp.c,v 1.121 2005/07/13 11:30:13 keiichi Exp $ */ /* @@ -106,11 +106,6 @@ #include <unistd.h> #include "gmt2local.h" -/* packing rule for routing socket */ -#define ROUNDUP(a) \ - ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) - static pid_t pid; static int nflag; static int tflag; @@ -387,7 +382,7 @@ /* NOTREACHED */ } mysin = (struct sockaddr_in6 *)(void *)(rtm + 1); - sdl = (struct sockaddr_dl *)(void *)(ROUNDUP(mysin->sin6_len) + (char *)(void *)mysin); + sdl = (struct sockaddr_dl *)(void *)(RT_ROUNDUP(mysin->sin6_len) + (char *)(void *)mysin); if (IN6_ARE_ADDR_EQUAL(&mysin->sin6_addr, &sin_m.sin6_addr)) { if (sdl->sdl_family == AF_LINK && (rtm->rtm_flags & RTF_LLINFO) && @@ -482,7 +477,7 @@ if (rtmsg(RTM_GET) < 0) errx(1, "RTM_GET(%s) failed", host); mysin = (struct sockaddr_in6 *)(void *)(rtm + 1); - sdl = (struct sockaddr_dl *)(void *)(ROUNDUP(mysin->sin6_len) + + sdl = (struct sockaddr_dl *)(void *)(RT_ROUNDUP(mysin->sin6_len) + (char *)(void *)mysin); if (IN6_ARE_ADDR_EQUAL(&mysin->sin6_addr, &sin_m.sin6_addr)) { if (sdl->sdl_family == AF_LINK && @@ -574,7 +569,7 @@ rtm = (struct rt_msghdr *)(void *)next; mysin = (struct sockaddr_in6 *)(void *)(rtm + 1); - sdl = (struct sockaddr_dl *)(void *)((char *)(void *)mysin + ROUNDUP(mysin->sin6_len)); + sdl = (struct sockaddr_dl *)(void *)((char *)(void *)mysin + RT_ROUNDUP(mysin->sin6_len)); /* * Some OSes can produce a route that has the LINK flag but @@ -850,7 +845,7 @@ #define NEXTADDR(w, s) \ if (rtm->rtm_addrs & (w)) { \ (void)memcpy(cp, &s, sizeof(s)); \ - ADVANCE(cp, (struct sockaddr *)(void *)&s); \ + RT_ADVANCE(cp, (struct sockaddr *)(void *)&s); \ } NEXTADDR(RTA_DST, sin_m);