The ROUNDUP macro, used to account for the space occupied by a sockaddr when passed through a routing socket, is defined in a zillion places:
src/usr.sbin/IPXrouted/startup.c:#define ROUNDUP(a) \ src/usr.sbin/arp/arp.c:#define ROUNDUP(a) \ src/usr.sbin/ndp/ndp.c:#define ROUNDUP(a) \ src/usr.sbin/ppp/defs.h:#define ROUNDUP(x) ((x) ? (1 + (((x) - 1) | (sizeof(longsrc/usr.sbin/route6d/route6d.c:#define ROUNDUP(a) \ src/usr.sbin/rwhod/rwhod.c:#define ROUNDUP(a) \ src/sys/net/route.c.orig:#define ROUNDUP(a) (a>0 ? (1 + (((a) - 1) | (sizeof(lonsrc/sys/net/rtsock.c:#define ROUNDUP(a) \ A similar macro, ADVANCE, has similar problems. This is confusing at best, and a likely source of trouble. If there are no objections I would like to replace it with a centralised macro (possibly with a suitable name) which takes a sockaddr * as argument and returns the rounded-up size of the object as a result. BTW, i notice that the rounding is to multiples of "sizeof(long)", and i wonder if this is intentional, especially on 64-bit architectures. cheers luigi _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"