Module Name: src Committed By: christos Date: Sat Oct 19 00:35:30 UTC 2013
Modified Files: src/sbin/ifconfig: af_atalk.c af_inet6.c ifconfig.c tunnel.c util.c util.h Log Message: use the new scopeid functions To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sbin/ifconfig/af_atalk.c cvs rdiff -u -r1.27 -r1.28 src/sbin/ifconfig/af_inet6.c cvs rdiff -u -r1.230 -r1.231 src/sbin/ifconfig/ifconfig.c cvs rdiff -u -r1.17 -r1.18 src/sbin/ifconfig/tunnel.c cvs rdiff -u -r1.16 -r1.17 src/sbin/ifconfig/util.c cvs rdiff -u -r1.9 -r1.10 src/sbin/ifconfig/util.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/ifconfig/af_atalk.c diff -u src/sbin/ifconfig/af_atalk.c:1.18 src/sbin/ifconfig/af_atalk.c:1.19 --- src/sbin/ifconfig/af_atalk.c:1.18 Sun Aug 14 08:15:15 2011 +++ src/sbin/ifconfig/af_atalk.c Fri Oct 18 20:35:30 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: af_atalk.c,v 1.18 2011/08/14 12:15:15 christos Exp $ */ +/* $NetBSD: af_atalk.c,v 1.19 2013/10/19 00:35:30 christos Exp $ */ /* * Copyright (c) 1983, 1993 @@ -31,7 +31,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: af_atalk.c,v 1.18 2011/08/14 12:15:15 christos Exp $"); +__RCSID("$NetBSD: af_atalk.c,v 1.19 2013/10/19 00:35:30 christos Exp $"); #endif /* not lint */ #include <sys/param.h> @@ -183,9 +183,8 @@ static void sat_print1(const char *prefix, const struct sockaddr *sa) { char buf[40]; - int rc; - rc = getnameinfo(sa, sa->sa_len, buf, sizeof(buf), NULL, 0, 0); + (void)getnameinfo(sa, sa->sa_len, buf, sizeof(buf), NULL, 0, 0); printf("%s%s", prefix, buf); } Index: src/sbin/ifconfig/af_inet6.c diff -u src/sbin/ifconfig/af_inet6.c:1.27 src/sbin/ifconfig/af_inet6.c:1.28 --- src/sbin/ifconfig/af_inet6.c:1.27 Mon Dec 13 12:35:08 2010 +++ src/sbin/ifconfig/af_inet6.c Fri Oct 18 20:35:30 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: af_inet6.c,v 1.27 2010/12/13 17:35:08 pooka Exp $ */ +/* $NetBSD: af_inet6.c,v 1.28 2013/10/19 00:35:30 christos Exp $ */ /* * Copyright (c) 1983, 1993 @@ -31,7 +31,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: af_inet6.c,v 1.27 2010/12/13 17:35:08 pooka Exp $"); +__RCSID("$NetBSD: af_inet6.c,v 1.28 2013/10/19 00:35:30 christos Exp $"); #endif /* not lint */ #include <sys/param.h> @@ -71,7 +71,6 @@ static int setia6vltime_impl(prop_dictio static int setia6lifetime(prop_dictionary_t, int64_t, time_t *, uint32_t *); -static void in6_delscopeid(struct sockaddr_in6 *sin6); static void in6_status(prop_dictionary_t, prop_dictionary_t, bool); static struct usage_func usage; @@ -257,18 +256,6 @@ setia6eui64_impl(prop_dictionary_t env, return 0; } -/* KAME idiosyncrasy */ -static void -in6_delscopeid(struct sockaddr_in6 *sin6) -{ - if (!IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr) || - sin6->sin6_scope_id == 0) - return; - - *(u_int16_t *)&sin6->sin6_addr.s6_addr[2] = htons(sin6->sin6_scope_id); - sin6->sin6_scope_id = 0; -} - /* XXX not really an alias */ void in6_alias(const char *ifname, prop_dictionary_t env, prop_dictionary_t oenv, @@ -291,7 +278,7 @@ in6_alias(const char *ifname, prop_dicti sin6 = &creq->ifr_addr; - in6_fillscopeid(sin6); + inet6_getscopeid(sin6, 1); scopeid = sin6->sin6_scope_id; if (getnameinfo((const struct sockaddr *)sin6, sin6->sin6_len, hbuf, sizeof(hbuf), NULL, 0, niflag)) @@ -311,7 +298,7 @@ in6_alias(const char *ifname, prop_dicti ifr6.ifr_addr.sin6_len = sizeof(struct sockaddr_in6); } sin6 = &ifr6.ifr_addr; - in6_fillscopeid(sin6); + inet6_getscopeid(sin6, 1); hbuf[0] = '\0'; if (getnameinfo((struct sockaddr *)sin6, sin6->sin6_len, hbuf, sizeof(hbuf), NULL, 0, niflag)) @@ -419,8 +406,8 @@ in6_pre_aifaddr(prop_dictionary_t env, c setia6vltime_impl(env, ifra); setia6pltime_impl(env, ifra); setia6flags_impl(env, ifra); - in6_delscopeid(&ifra->ifra_addr); - in6_delscopeid(&ifra->ifra_dstaddr); + inet6_putscopeid(&ifra->ifra_addr, 1); + inet6_putscopeid(&ifra->ifra_dstaddr, 1); return 0; } Index: src/sbin/ifconfig/ifconfig.c diff -u src/sbin/ifconfig/ifconfig.c:1.230 src/sbin/ifconfig/ifconfig.c:1.231 --- src/sbin/ifconfig/ifconfig.c:1.230 Wed Jul 17 11:40:42 2013 +++ src/sbin/ifconfig/ifconfig.c Fri Oct 18 20:35:30 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: ifconfig.c,v 1.230 2013/07/17 15:40:42 christos Exp $ */ +/* $NetBSD: ifconfig.c,v 1.231 2013/10/19 00:35:30 christos Exp $ */ /*- * Copyright (c) 1997, 1998, 2000 The NetBSD Foundation, Inc. @@ -63,7 +63,7 @@ #ifndef lint __COPYRIGHT("@(#) Copyright (c) 1983, 1993\ The Regents of the University of California. All rights reserved."); -__RCSID("$NetBSD: ifconfig.c,v 1.230 2013/07/17 15:40:42 christos Exp $"); +__RCSID("$NetBSD: ifconfig.c,v 1.231 2013/10/19 00:35:30 christos Exp $"); #endif /* not lint */ #include <sys/param.h> @@ -901,12 +901,10 @@ setifaddr(prop_dictionary_t env, prop_di static int setifnetmask(prop_dictionary_t env, prop_dictionary_t oenv) { - const struct paddr_prefix *pfx; prop_data_t d; d = (prop_data_t)prop_dictionary_get(env, "dstormask"); assert(d != NULL); - pfx = prop_data_data_nocopy(d); if (!prop_dictionary_set(oenv, "netmask", (prop_object_t)d)) return -1; @@ -917,7 +915,6 @@ setifnetmask(prop_dictionary_t env, prop static int setifbroadaddr(prop_dictionary_t env, prop_dictionary_t oenv) { - const struct paddr_prefix *pfx; prop_data_t d; unsigned short flags; @@ -929,7 +926,6 @@ setifbroadaddr(prop_dictionary_t env, pr d = (prop_data_t)prop_dictionary_get(env, "broadcast"); assert(d != NULL); - pfx = prop_data_data_nocopy(d); if (!prop_dictionary_set(oenv, "broadcast", (prop_object_t)d)) return -1; @@ -950,7 +946,6 @@ static int setifdstormask(prop_dictionary_t env, prop_dictionary_t oenv) { const char *key; - const struct paddr_prefix *pfx; prop_data_t d; unsigned short flags; @@ -959,7 +954,6 @@ setifdstormask(prop_dictionary_t env, pr d = (prop_data_t)prop_dictionary_get(env, "dstormask"); assert(d != NULL); - pfx = prop_data_data_nocopy(d); if ((flags & IFF_BROADCAST) == 0) { key = "dst"; @@ -1030,13 +1024,10 @@ static int setifcaps(prop_dictionary_t env, prop_dictionary_t oenv) { int64_t ifcap; - int s; bool rc; prop_data_t capdata; struct ifcapreq ifcr; - s = getsock(AF_INET); - rc = prop_dictionary_get_int64(env, "ifcap", &ifcap); assert(rc); Index: src/sbin/ifconfig/tunnel.c diff -u src/sbin/ifconfig/tunnel.c:1.17 src/sbin/ifconfig/tunnel.c:1.18 --- src/sbin/ifconfig/tunnel.c:1.17 Fri Aug 7 14:53:37 2009 +++ src/sbin/ifconfig/tunnel.c Fri Oct 18 20:35:30 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: tunnel.c,v 1.17 2009/08/07 18:53:37 dyoung Exp $ */ +/* $NetBSD: tunnel.c,v 1.18 2013/10/19 00:35:30 christos Exp $ */ /* * Copyright (c) 1983, 1993 @@ -31,7 +31,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: tunnel.c,v 1.17 2009/08/07 18:53:37 dyoung Exp $"); +__RCSID("$NetBSD: tunnel.c,v 1.18 2013/10/19 00:35:30 christos Exp $"); #endif /* not lint */ #include <sys/param.h> @@ -125,15 +125,8 @@ settunnel(prop_dictionary_t env, prop_di IN6_IS_ADDR_MULTICAST(&s6->sin6_addr)) errx(EXIT_FAILURE, "tunnel src/dst is multicast"); /* embed scopeid */ - if (s6->sin6_scope_id && - IN6_IS_ADDR_LINKLOCAL(&s6->sin6_addr)) { - *(u_int16_t *)&s6->sin6_addr.s6_addr[2] = - htons(s6->sin6_scope_id); - } - if (d->sin6_scope_id && IN6_IS_ADDR_LINKLOCAL(&d->sin6_addr)) { - *(u_int16_t *)&d->sin6_addr.s6_addr[2] = - htons(d->sin6_scope_id); - } + inet6_putscopeid(s6, 1); + inet6_getscopeid(d, 1); } #endif /* INET6 */ @@ -169,7 +162,7 @@ tunnel_status(prop_dictionary_t env, pro afp = lookup_af_bynum(req.addr.ss_family); #ifdef INET6 if (req.addr.ss_family == AF_INET6) - in6_fillscopeid((struct sockaddr_in6 *)&req.addr); + inet6_getscopeid((struct sockaddr_in6 *)&req.addr, 1); #endif /* INET6 */ getnameinfo((struct sockaddr *)&req.addr, req.addr.ss_len, psrcaddr, sizeof(psrcaddr), &srcserv[1], sizeof(srcserv) - 1, @@ -177,7 +170,7 @@ tunnel_status(prop_dictionary_t env, pro #ifdef INET6 if (req.dstaddr.ss_family == AF_INET6) - in6_fillscopeid((struct sockaddr_in6 *)&req.dstaddr); + inet6_getscopeid((struct sockaddr_in6 *)&req.dstaddr, 1); #endif getnameinfo((struct sockaddr *)&req.dstaddr, req.dstaddr.ss_len, pdstaddr, sizeof(pdstaddr), &dstserv[1], sizeof(dstserv) - 1, Index: src/sbin/ifconfig/util.c diff -u src/sbin/ifconfig/util.c:1.16 src/sbin/ifconfig/util.c:1.17 --- src/sbin/ifconfig/util.c:1.16 Mon Dec 13 12:35:08 2010 +++ src/sbin/ifconfig/util.c Fri Oct 18 20:35:30 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: util.c,v 1.16 2010/12/13 17:35:08 pooka Exp $ */ +/* $NetBSD: util.c,v 1.17 2013/10/19 00:35:30 christos Exp $ */ /*- * Copyright (c) 2008 David Young. All rights reserved. @@ -27,7 +27,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: util.c,v 1.16 2010/12/13 17:35:08 pooka Exp $"); +__RCSID("$NetBSD: util.c,v 1.17 2013/10/19 00:35:30 christos Exp $"); #endif /* not lint */ #include <ctype.h> @@ -344,17 +344,3 @@ ifa_any_preferences(const char *ifname, } return false; } - - -#ifdef INET6 -/* KAME idiosyncrasy */ -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 /* INET6 */ Index: src/sbin/ifconfig/util.h diff -u src/sbin/ifconfig/util.h:1.9 src/sbin/ifconfig/util.h:1.10 --- src/sbin/ifconfig/util.h:1.9 Thu Jul 1 12:44:05 2010 +++ src/sbin/ifconfig/util.h Fri Oct 18 20:35:30 2013 @@ -25,9 +25,6 @@ int getsock(int); struct paddr_prefix *prefixlen_to_mask(int, int); int direct_ioctl(prop_dictionary_t, unsigned long, void *); int indirect_ioctl(prop_dictionary_t, unsigned long, void *); -#ifdef INET6 -void in6_fillscopeid(struct sockaddr_in6 *sin6); -#endif /* INET6 */ bool ifa_any_preferences(const char *, struct ifaddrs *, int); void ifa_print_preference(const char *, const struct sockaddr *); int16_t ifa_get_preference(const char *, const struct sockaddr *);