Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin use new scopeid functions
details: https://anonhg.NetBSD.org/src/rev/9bf32ce2bcc6
branches: trunk
changeset: 790702:9bf32ce2bcc6
user: christos <christos%NetBSD.org@localhost>
date: Sat Oct 19 17:16:25 2013 +0000
description:
use new scopeid functions
diffstat:
usr.sbin/faithd/faithd.c | 17 +++-----------
usr.sbin/ifmcstat/ifmcstat.c | 13 ++---------
usr.sbin/lpr/common_source/common.c | 22 ++++---------------
usr.sbin/ndp/ndp.c | 41 +++++++++---------------------------
usr.sbin/rpcbind/util.c | 22 +------------------
5 files changed, 24 insertions(+), 91 deletions(-)
diffs (256 lines):
diff -r 91391b9c38ec -r 9bf32ce2bcc6 usr.sbin/faithd/faithd.c
--- a/usr.sbin/faithd/faithd.c Sat Oct 19 17:10:17 2013 +0000
+++ b/usr.sbin/faithd/faithd.c Sat Oct 19 17:16:25 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: faithd.c,v 1.35 2011/09/16 15:39:37 joerg Exp $ */
+/* $NetBSD: faithd.c,v 1.36 2013/10/19 17:16:25 christos Exp $ */
/* $KAME: faithd.c,v 1.62 2003/08/19 21:20:33 itojun Exp $ */
/*
@@ -751,7 +751,6 @@
{
struct ifaddrs *ifap, *ifa;
struct myaddrs *p;
- struct sockaddr_in6 *sin6;
if (getifaddrs(&ifap) != 0) {
exit_failure("getifaddrs");
@@ -776,19 +775,11 @@
memcpy(p + 1, ifa->ifa_addr, ifa->ifa_addr->sa_len);
p->next = myaddrs;
p->addr = (void *)(p + 1);
-#ifdef __KAME__
if (ifa->ifa_addr->sa_family == AF_INET6) {
- sin6 = (void *)p->addr;
- if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)
- || IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr)) {
- sin6->sin6_scope_id =
- ntohs(*(uint16_t *)(void *)
- &sin6->sin6_addr.s6_addr[3]);
- sin6->sin6_addr.s6_addr[2] = 0;
- sin6->sin6_addr.s6_addr[3] = 0;
- }
+ struct sockaddr_in6 *sin6 = (void *)p->addr;
+ inet6_getscopeid(sin6, INET6_IS_ADDR_LINKLOCAL|
+ INET6_IS_ADDR_SITELOCAL);
}
-#endif
myaddrs = p;
if (dflag) {
char hbuf[NI_MAXHOST];
diff -r 91391b9c38ec -r 9bf32ce2bcc6 usr.sbin/ifmcstat/ifmcstat.c
--- a/usr.sbin/ifmcstat/ifmcstat.c Sat Oct 19 17:10:17 2013 +0000
+++ b/usr.sbin/ifmcstat/ifmcstat.c Sat Oct 19 17:16:25 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ifmcstat.c,v 1.11 2012/10/26 16:52:52 seanb Exp $ */
+/* $NetBSD: ifmcstat.c,v 1.12 2013/10/19 17:16:25 christos Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -110,21 +110,14 @@
{
static char buf[NI_MAXHOST];
struct sockaddr_in6 sin6;
- u_int32_t scopeid;
const int niflags = NI_NUMERICHOST;
memset(&sin6, 0, sizeof(sin6));
sin6.sin6_family = AF_INET6;
sin6.sin6_len = sizeof(struct sockaddr_in6);
sin6.sin6_addr = *p;
- if (IN6_IS_ADDR_LINKLOCAL(p) || IN6_IS_ADDR_MC_LINKLOCAL(p)) {
- scopeid = ntohs(*(u_int16_t *)&sin6.sin6_addr.s6_addr[2]);
- if (scopeid) {
- sin6.sin6_scope_id = scopeid;
- sin6.sin6_addr.s6_addr[2] = 0;
- sin6.sin6_addr.s6_addr[3] = 0;
- }
- }
+ inet6_getscopeid(&sin6, INET6_IS_ADDR_LINKLOCAL|
+ INET6_IS_ADDR_MC_LINKLOCAL);
if (getnameinfo((struct sockaddr *)&sin6, sin6.sin6_len,
buf, sizeof(buf), NULL, 0, niflags) == 0)
return buf;
diff -r 91391b9c38ec -r 9bf32ce2bcc6 usr.sbin/lpr/common_source/common.c
--- a/usr.sbin/lpr/common_source/common.c Sat Oct 19 17:10:17 2013 +0000
+++ b/usr.sbin/lpr/common_source/common.c Sat Oct 19 17:16:25 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: common.c,v 1.40 2009/07/13 19:05:41 roy Exp $ */
+/* $NetBSD: common.c,v 1.41 2013/10/19 17:16:25 christos Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -39,7 +39,7 @@
#if 0
static char sccsid[] = "@(#)common.c 8.5 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: common.c,v 1.40 2009/07/13 19:05:41 roy Exp $");
+__RCSID("$NetBSD: common.c,v 1.41 2013/10/19 17:16:25 christos Exp $");
#endif
#endif /* not lint */
@@ -396,27 +396,15 @@
rname, sizeof(rname), NULL, 0, niflags) != 0)
continue;
for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
-#ifdef __KAME__
sin6p = (struct sockaddr_in6 *)ifa->ifa_addr;
if (ifa->ifa_addr->sa_family == AF_INET6 &&
- ifa->ifa_addr->sa_len == sizeof(sin6) &&
- IN6_IS_ADDR_LINKLOCAL(&sin6p->sin6_addr) &&
- *(u_int16_t *)&sin6p->sin6_addr.s6_addr[2]) {
- /* kame scopeid hack */
- memcpy(&sin6, ifa->ifa_addr, sizeof(sin6));
- sin6.sin6_scope_id =
- ntohs(*(u_int16_t *)&sin6p->sin6_addr.s6_addr[2]);
- sin6.sin6_addr.s6_addr[2] = 0;
- sin6.sin6_addr.s6_addr[3] = 0;
+ ifa->ifa_addr->sa_len == sizeof(sin6)) {
+ inet6_getscopeid(sin6p, 3);
if (getnameinfo((struct sockaddr *)&sin6,
sin6.sin6_len, lname, sizeof(lname),
NULL, 0, niflags) != 0)
continue;
- } else
-#endif
- if (getnameinfo(ifa->ifa_addr, ifa->ifa_addr->sa_len,
- lname, sizeof(lname), NULL, 0, niflags) != 0)
- continue;
+ }
if (strcmp(rname, lname) == 0) {
remote = 0;
diff -r 91391b9c38ec -r 9bf32ce2bcc6 usr.sbin/ndp/ndp.c
--- a/usr.sbin/ndp/ndp.c Sat Oct 19 17:10:17 2013 +0000
+++ b/usr.sbin/ndp/ndp.c Sat Oct 19 17:16:25 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ndp.c,v 1.40 2011/08/31 13:32:38 joerg Exp $ */
+/* $NetBSD: ndp.c,v 1.41 2013/10/19 17:16:25 christos Exp $ */
/* $KAME: ndp.c,v 1.121 2005/07/13 11:30:13 keiichi Exp $ */
/*
@@ -357,12 +357,7 @@
return 1;
}
mysin->sin6_addr = ((struct sockaddr_in6 *)(void *)res->ai_addr)->sin6_addr;
-#ifdef __KAME__
- if (IN6_IS_ADDR_LINKLOCAL(&mysin->sin6_addr)) {
- *(u_int16_t *)(void *)&mysin->sin6_addr.s6_addr[2] =
- htons(((struct sockaddr_in6 *)(void *)res->ai_addr)->sin6_scope_id);
- }
-#endif
+ inet6_putscopeid(mysin, INET6_IS_ADDR_LINKLOCAL);
ea = (u_char *)LLADDR(&sdl_m);
if (ndp_ether_aton(eaddr, ea) == 0)
sdl_m.sdl_alen = 6;
@@ -429,12 +424,7 @@
return;
}
mysin->sin6_addr = ((struct sockaddr_in6 *)(void *)res->ai_addr)->sin6_addr;
-#ifdef __KAME__
- if (IN6_IS_ADDR_LINKLOCAL(&mysin->sin6_addr)) {
- *(u_int16_t *)(void *)&mysin->sin6_addr.s6_addr[2] =
- htons(((struct sockaddr_in6 *)(void *)res->ai_addr)->sin6_scope_id);
- }
-#endif
+ inet6_putscopeid(mysin, INET6_IS_ADDR_LINKLOCAL);
dump(&mysin->sin6_addr, 0);
if (found_entry == 0) {
(void)getnameinfo((struct sockaddr *)(void *)mysin,
@@ -468,12 +458,7 @@
return 1;
}
mysin->sin6_addr = ((struct sockaddr_in6 *)(void *)res->ai_addr)->sin6_addr;
-#ifdef __KAME__
- if (IN6_IS_ADDR_LINKLOCAL(&mysin->sin6_addr)) {
- *(u_int16_t *)(void *)&mysin->sin6_addr.s6_addr[2] =
- htons(((struct sockaddr_in6 *)(void *)res->ai_addr)->sin6_scope_id);
- }
-#endif
+ inet6_putscopeid(mysin, INET6_IS_ADDR_LINKLOCAL);
if (rtmsg(RTM_GET) < 0)
errx(1, "RTM_GET(%s) failed", host);
mysin = (struct sockaddr_in6 *)(void *)(rtm + 1);
@@ -500,12 +485,8 @@
if (rtmsg(RTM_DELETE) == 0) {
struct sockaddr_in6 s6 = *mysin; /* XXX: for safety */
-#ifdef __KAME__
- if (IN6_IS_ADDR_LINKLOCAL(&s6.sin6_addr)) {
- s6.sin6_scope_id = ntohs(*(u_int16_t *)(void *)&s6.sin6_addr.s6_addr[2]);
- *(u_int16_t *)(void *)&s6.sin6_addr.s6_addr[2] = 0;
- }
-#endif
+ mysin->sin6_scope_id = 0;
+ inet6_putscopeid(mysin, INET6_IS_ADDR_LINKLOCAL);
(void)getnameinfo((struct sockaddr *)(void *)&s6,
(socklen_t)s6.sin6_len, host_buf,
sizeof(host_buf), NULL, 0,
@@ -598,13 +579,11 @@
continue;
if (IN6_IS_ADDR_LINKLOCAL(&mysin->sin6_addr) ||
IN6_IS_ADDR_MC_LINKLOCAL(&mysin->sin6_addr)) {
- /* XXX: should scope id be filled in the kernel? */
- if (mysin->sin6_scope_id == 0)
+ uint16_t scopeid = mysin->sin6_scope_id;
+ inet6_getscopeid(mysin, INET6_IS_ADDR_LINKLOCAL|
+ INET6_IS_ADDR_MC_LINKLOCAL);
+ if (scopeid == 0)
mysin->sin6_scope_id = sdl->sdl_index;
-#ifdef __KAME__
- /* KAME specific hack; removed the embedded id */
- *(u_int16_t *)(void *)&mysin->sin6_addr.s6_addr[2] = 0;
-#endif
}
(void)getnameinfo((struct sockaddr *)(void *)mysin,
(socklen_t)mysin->sin6_len,
diff -r 91391b9c38ec -r 9bf32ce2bcc6 usr.sbin/rpcbind/util.c
--- a/usr.sbin/rpcbind/util.c Sat Oct 19 17:10:17 2013 +0000
+++ b/usr.sbin/rpcbind/util.c Sat Oct 19 17:16:25 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: util.c,v 1.16 2009/01/18 10:17:38 lukem Exp $ */
+/* $NetBSD: util.c,v 1.17 2013/10/19 17:16:25 christos Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -55,9 +55,6 @@
#endif
static int bitmaskcmp(void *, void *, void *, int);
-#ifdef INET6
-static void in6_fillscopeid(struct sockaddr_in6 *);
-#endif
/*
* For all bits set in "mask", compare the corresponding bits in
@@ -83,21 +80,6 @@
return 0;
}
-/*
- * Taken from ifconfig.c
- */
-#ifdef INET6
-static void
-in6_fillscopeid(struct sockaddr_in6 *sin6)
-{
- if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
- sin6->sin6_scope_id =
- ntohs(*(u_int16_t *)&sin6->sin6_addr.s6_addr[2]);
- sin6->sin6_addr.s6_addr[2] = sin6->sin6_addr.s6_addr[3] = 0;
- }
-}
-#endif
-
char *
addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr,
char *netid)
@@ -218,7 +200,7 @@
*/
realsin6 = (struct sockaddr_in6 *)clnt;
ifsin6 = (struct sockaddr_in6 *)ifap->ifa_addr;
- in6_fillscopeid(ifsin6);
+ inet6_getscopeid(ifsin6, 1);
clntsin6 = (struct sockaddr_in6 *)clnt_sa;
servsin6 = (struct sockaddr_in6 *)serv_sa;
sin6mask = (struct sockaddr_in6 *)ifap->ifa_netmask;
Home |
Main Index |
Thread Index |
Old Index