summaryrefslogtreecommitdiffstats
path: root/sys/net/rtsock.c
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>2004-04-13 11:22:22 +0000
committerluigi <luigi@FreeBSD.org>2004-04-13 11:22:22 +0000
commitf83ca5e62d50a0c97e6da783970932ec1865b591 (patch)
treef81cadb2baf9d439843a5c8123c911c7980bb872 /sys/net/rtsock.c
parentc3b6d70103e7aa78831dc2504b16900173fbc234 (diff)
downloadFreeBSD-src-f83ca5e62d50a0c97e6da783970932ec1865b591.zip
FreeBSD-src-f83ca5e62d50a0c97e6da783970932ec1865b591.tar.gz
route.h: introduce a macro, SA_SIZE(struct sockaddr *) which returns
the space occupied by a struct sockaddr when passed through a routing socket. Use it to replace the macro ROUNDUP(int), that does the same but is redefined by every file which uses it, courtesy of the School of Cut'n'Paste Programming(TM). (partial) userland changes to follow.
Diffstat (limited to 'sys/net/rtsock.c')
-rw-r--r--sys/net/rtsock.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index 7bdd0d7..9189aaa 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -556,9 +556,6 @@ rt_getmetrics(struct rt_metrics_lite *in, struct rt_metrics *out)
#undef metric
}
-#define ROUNDUP(a) \
- ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
-
/*
* Extract the addresses of the passed sockaddrs.
* Do a little sanity checking so as to avoid bad memory references.
@@ -567,9 +564,8 @@ rt_getmetrics(struct rt_metrics_lite *in, struct rt_metrics *out)
static int
rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo)
{
-#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))
- register struct sockaddr *sa;
- register int i;
+ struct sockaddr *sa;
+ int i;
for (i = 0; i < RTAX_MAX && cp < cplim; i++) {
if ((rtinfo->rti_addrs & (1 << i)) == 0)
@@ -593,10 +589,9 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo)
}
/* accept it */
rtinfo->rti_info[i] = sa;
- ADVANCE(cp, sa);
+ cp += SA_SIZE(sa);
}
return (0);
-#undef ADVANCE
}
static struct mbuf *
@@ -651,7 +646,7 @@ rt_msg1(int type, struct rt_addrinfo *rtinfo)
if ((sa = rtinfo->rti_info[i]) == NULL)
continue;
rtinfo->rti_addrs |= (1 << i);
- dlen = ROUNDUP(sa->sa_len);
+ dlen = SA_SIZE(sa);
m_copyback(m, len, dlen, (caddr_t)sa);
len += dlen;
}
@@ -701,7 +696,7 @@ again:
if ((sa = rtinfo->rti_info[i]) == 0)
continue;
rtinfo->rti_addrs |= (1 << i);
- dlen = ROUNDUP(sa->sa_len);
+ dlen = SA_SIZE(sa);
if (cp) {
bcopy((caddr_t)sa, cp, (unsigned)dlen);
cp += dlen;
OpenPOWER on IntegriCloud