Hi,
After converting the last user of ioctl(SIOCGDRLST_IN6) to sysctl,
I would like to remove dead kernel ioctl code.
Is it save to just delete this?
ok?
bluhm
Index: netinet6/in6.c
===
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6.c,v
retrieving revision 1.116
diff -u -p -u -p -r1.116 in6.c
--- netinet6/in6.c 20 Jun 2013 12:03:40 - 1.116
+++ netinet6/in6.c 15 Aug 2013 15:06:06 -
@@ -361,10 +361,7 @@ in6_control(struct socket *so, u_long cm
if (!privileged)
return (EPERM);
/* FALLTHROUGH */
- case OSIOCGIFINFO_IN6:
case SIOCGIFINFO_IN6:
- case SIOCGDRLST_IN6:
- case SIOCGPRLST_IN6:
case SIOCGNBRINFO_IN6:
return (nd6_ioctl(cmd, data, ifp));
}
Index: netinet6/in6_var.h
===
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6_var.h,v
retrieving revision 1.40
diff -u -p -u -p -r1.40 in6_var.h
--- netinet6/in6_var.h 17 Jun 2013 18:02:24 - 1.40
+++ netinet6/in6_var.h 15 Aug 2013 15:03:46 -
@@ -400,11 +400,6 @@ struct in6_rrenumreq {
#define SIOCGIFAFLAG_IN6 _IOWR('i', 73, struct in6_ifreq)
-#define SIOCGDRLST_IN6 _IOWR('i', 74, struct in6_drlist)
-#define SIOCGPRLST_IN6 _IOWR('i', 75, struct in6_prlist)
-#ifdef _KERNEL
-#define OSIOCGIFINFO_IN6 _IOWR('i', 76, struct in6_ondireq)
-#endif
#define SIOCGIFINFO_IN6_IOWR('i', 108, struct in6_ndireq)
#define SIOCSNDFLUSH_IN6 _IOWR('i', 77, struct in6_ifreq)
#define SIOCGNBRINFO_IN6 _IOWR('i', 78, struct in6_nbrinfo)
Index: netinet6/nd6.c
===
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.99
diff -u -p -u -p -r1.99 nd6.c
--- netinet6/nd6.c 31 May 2013 15:04:24 - 1.99
+++ netinet6/nd6.c 15 Aug 2013 15:04:50 -
@@ -1238,111 +1238,13 @@ nd6_rtrequest(int req, struct rtentry *r
int
nd6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp)
{
- struct in6_drlist *drl = (struct in6_drlist *)data;
- struct in6_oprlist *oprl = (struct in6_oprlist *)data;
struct in6_ndireq *ndi = (struct in6_ndireq *)data;
struct in6_nbrinfo *nbi = (struct in6_nbrinfo *)data;
- struct nd_defrouter *dr;
- struct nd_prefix *pr;
struct rtentry *rt;
- int i = 0, error = 0;
+ int error = 0;
int s;
switch (cmd) {
- case SIOCGDRLST_IN6:
- /*
-* obsolete API, use sysctl under net.inet6.icmp6
-*/
- bzero(drl, sizeof(*drl));
- s = splsoftnet();
- TAILQ_FOREACH(dr, nd_defrouter, dr_entry) {
- if (i = DRLSTSIZ)
- break;
- drl-defrouter[i].rtaddr = dr-rtaddr;
- if (IN6_IS_ADDR_LINKLOCAL(drl-defrouter[i].rtaddr)) {
- /* XXX: need to this hack for KAME stack */
- drl-defrouter[i].rtaddr.s6_addr16[1] = 0;
- } else
- log(LOG_ERR,
- default router list contains a
- non-linklocal address(%s)\n,
- ip6_sprintf(drl-defrouter[i].rtaddr));
-
- drl-defrouter[i].flags = dr-flags;
- drl-defrouter[i].rtlifetime = dr-rtlifetime;
- drl-defrouter[i].expire = dr-expire;
- drl-defrouter[i].if_index = dr-ifp-if_index;
- i++;
- }
- splx(s);
- break;
- case SIOCGPRLST_IN6:
- /*
-* obsolete API, use sysctl under net.inet6.icmp6
-*
-* XXX the structure in6_prlist was changed in backward-
-* incompatible manner. in6_oprlist is used for SIOCGPRLST_IN6,
-* in6_prlist is used for nd6_sysctl() - fill_prlist().
-*/
- /*
-* XXX meaning of fields, especially raflags, is very
-* different between RA prefix list and RR/static prefix list.
-* how about separating ioctls into two?
-*/
- bzero(oprl, sizeof(*oprl));
- s = splsoftnet();
- LIST_FOREACH(pr, nd_prefix, ndpr_entry) {
- struct nd_pfxrouter *pfr;
- int j;
-
- if (i = PRLSTSIZ)
- break;
- oprl-prefix[i].prefix = pr-ndpr_prefix.sin6_addr;
- oprl-prefix[i].raflags = pr-ndpr_raf;
-