Author: glebius Date: Tue Nov 5 10:29:47 2013 New Revision: 257696 URL: http://svnweb.freebsd.org/changeset/base/257696
Log: Drop support for historic ioctls and also undefine them, so that code that checks their presence via ifdef, won't use them. Bump __FreeBSD_version as safety measure. Modified: head/libexec/rbootd/bpf.c head/share/man/man9/ifnet.9 head/sys/compat/svr4/svr4_sockio.c head/sys/net/if.c head/sys/net/if.h head/sys/net/if_tap.c head/sys/sys/param.h head/sys/sys/sockio.h Modified: head/libexec/rbootd/bpf.c ============================================================================== --- head/libexec/rbootd/bpf.c Tue Nov 5 09:46:01 2013 (r257695) +++ head/libexec/rbootd/bpf.c Tue Nov 5 10:29:47 2013 (r257696) @@ -237,19 +237,11 @@ BpfGetIntfName(char **errmsg) ifc.ifc_len = sizeof ibuf; ifc.ifc_buf = (caddr_t)ibuf; -#ifdef OSIOCGIFCONF - if (ioctl(fd, OSIOCGIFCONF, (char *)&ifc) < 0 || - ifc.ifc_len < sizeof(struct ifreq)) { - (void) strcpy(errbuf, "bpf: ioctl(OSIOCGIFCONF): %m"); - return(NULL); - } -#else if (ioctl(fd, SIOCGIFCONF, (char *)&ifc) < 0 || ifc.ifc_len < sizeof(struct ifreq)) { (void) strcpy(errbuf, "bpf: ioctl(SIOCGIFCONF): %m"); return(NULL); } -#endif ifrp = ibuf; ifend = (struct ifreq *)((char *)ibuf + ifc.ifc_len); Modified: head/share/man/man9/ifnet.9 ============================================================================== --- head/share/man/man9/ifnet.9 Tue Nov 5 09:46:01 2013 (r257695) +++ head/share/man/man9/ifnet.9 Tue Nov 5 10:29:47 2013 (r257696) @@ -1284,9 +1284,8 @@ further interpretation. The following commands are handled by .Fn ifioctl : .Pp -.Bl -tag -width ".Dv OSIOCGIFNETMASK" -offset indent -compact +.Bl -tag -width ".Dv SIOCGIFNETMASK" -offset indent -compact .It Dv SIOCGIFCONF -.It Dv OSIOCGIFCONF Get interface configuration. (No call-down to driver.) .Pp @@ -1380,17 +1379,6 @@ function is called to perform the operat The socket's protocol control routine is called to implement the requested action. .Pp -.It Dv OSIOCGIFADDR -.It Dv OSIOCGIFDSTADDR -.It Dv OSIOCGIFBRDADDR -.It Dv OSIOCGIFNETMASK -The socket's protocol control routine is called to implement the -requested action. -On return, -.Vt sockaddr -structures are converted into old-style (no -.Va sa_len -member). .El .El .Pp Modified: head/sys/compat/svr4/svr4_sockio.c ============================================================================== --- head/sys/compat/svr4/svr4_sockio.c Tue Nov 5 09:46:01 2013 (r257695) +++ head/sys/compat/svr4/svr4_sockio.c Tue Nov 5 10:29:47 2013 (r257696) @@ -144,6 +144,7 @@ svr4_sock_ioctl(fp, td, retval, fd, cmd, case SVR4_SIOCGIFCONF: { struct svr4_ifconf sc; + struct ifconf *ifc; if ((error = copyin(data, &sc, sizeof(sc))) != 0) return error; @@ -152,9 +153,18 @@ svr4_sock_ioctl(fp, td, retval, fd, cmd, sizeof(struct ifreq), sizeof(struct svr4_ifreq), sc.svr4_ifc_len)); - if ((error = fo_ioctl(fp, OSIOCGIFCONF, - (caddr_t) &sc, td->td_ucred, - td)) != 0) + ifc = (struct ifconf *)≻ + ifc->ifc_req.ifr_addr.sa_family = + sc.svr4_ifc_req.svr4_ifr_addr.sa_family; + ifc->ifc_req.ifr_addr.sa_len = sizeof(struct osockaddr); + + error = fo_ioctl(fp, SIOCGIFCONF, &sc, + td->td_ucred, td)); + + sc.svr4_ifc_req.svr4_ifr_addr.sa_family = + ifc->ifc_req.ifr_addr.sa_family; + + if (error != 0) return error; DPRINTF(("SIOCGIFCONF\n")); Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Nov 5 09:46:01 2013 (r257695) +++ head/sys/net/if.c Tue Nov 5 10:29:47 2013 (r257696) @@ -2511,7 +2511,6 @@ ifioctl(struct socket *so, u_long cmd, c CURVNET_SET(so->so_vnet); switch (cmd) { case SIOCGIFCONF: - case OSIOCGIFCONF: error = ifconf(cmd, data); CURVNET_RESTORE(); return (error); @@ -2611,71 +2610,12 @@ ifioctl(struct socket *so, u_long cmd, c * layer, and do not perform any credentials checks or input * validation. */ -#ifndef COMPAT_43 - error = ((*so->so_proto->pr_usrreqs->pru_control)(so, cmd, - data, - ifp, td)); + error = ((*so->so_proto->pr_usrreqs->pru_control)(so, cmd, data, + ifp, td)); if (error == EOPNOTSUPP && ifp != NULL && ifp->if_ioctl != NULL && cmd != SIOCSIFADDR && cmd != SIOCSIFBRDADDR && cmd != SIOCSIFDSTADDR && cmd != SIOCSIFNETMASK) error = (*ifp->if_ioctl)(ifp, cmd, data); -#else - { - u_long ocmd = cmd; - - switch (cmd) { - - case SIOCSIFDSTADDR: - case SIOCSIFADDR: - case SIOCSIFBRDADDR: - case SIOCSIFNETMASK: -#if BYTE_ORDER != BIG_ENDIAN - if (ifr->ifr_addr.sa_family == 0 && - ifr->ifr_addr.sa_len < 16) { - ifr->ifr_addr.sa_family = ifr->ifr_addr.sa_len; - ifr->ifr_addr.sa_len = 16; - } -#else - if (ifr->ifr_addr.sa_len == 0) - ifr->ifr_addr.sa_len = 16; -#endif - break; - - case OSIOCGIFADDR: - cmd = SIOCGIFADDR; - break; - - case OSIOCGIFDSTADDR: - cmd = SIOCGIFDSTADDR; - break; - - case OSIOCGIFBRDADDR: - cmd = SIOCGIFBRDADDR; - break; - - case OSIOCGIFNETMASK: - cmd = SIOCGIFNETMASK; - } - error = ((*so->so_proto->pr_usrreqs->pru_control)(so, - cmd, - data, - ifp, td)); - if (error == EOPNOTSUPP && ifp != NULL && - ifp->if_ioctl != NULL && - cmd != SIOCSIFADDR && cmd != SIOCSIFBRDADDR && - cmd != SIOCSIFDSTADDR && cmd != SIOCSIFNETMASK) - error = (*ifp->if_ioctl)(ifp, cmd, data); - switch (ocmd) { - - case OSIOCGIFADDR: - case OSIOCGIFDSTADDR: - case OSIOCGIFBRDADDR: - case OSIOCGIFNETMASK: - *(u_short *)&ifr->ifr_addr = ifr->ifr_addr.sa_family; - - } - } -#endif /* COMPAT_43 */ if ((oif_flags ^ ifp->if_flags) & IFF_UP) { #ifdef INET6 @@ -2841,16 +2781,6 @@ again: if (prison_if(curthread->td_ucred, sa) != 0) continue; addrs++; -#ifdef COMPAT_43 - if (cmd == OSIOCGIFCONF) { - struct osockaddr *osa = - (struct osockaddr *)&ifr.ifr_addr; - ifr.ifr_addr = *sa; - osa->sa_family = sa->sa_family; - sbuf_bcat(sb, &ifr, sizeof(ifr)); - max_len += sizeof(ifr); - } else -#endif if (sa->sa_len <= sizeof(*sa)) { ifr.ifr_addr = *sa; sbuf_bcat(sb, &ifr, sizeof(ifr)); Modified: head/sys/net/if.h ============================================================================== --- head/sys/net/if.h Tue Nov 5 09:46:01 2013 (r257695) +++ head/sys/net/if.h Tue Nov 5 10:29:47 2013 (r257696) @@ -412,14 +412,6 @@ struct ifaliasreq { int ifra_vhid; }; -/* Compat with pre-10.x */ -struct oifaliasreq { - char ifra_name[IFNAMSIZ]; - struct sockaddr ifra_addr; - struct sockaddr ifra_broadaddr; - struct sockaddr ifra_mask; -}; - struct ifmediareq { char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */ int ifm_current; /* current media options */ Modified: head/sys/net/if_tap.c ============================================================================== --- head/sys/net/if_tap.c Tue Nov 5 09:46:01 2013 (r257695) +++ head/sys/net/if_tap.c Tue Nov 5 10:29:47 2013 (r257696) @@ -829,8 +829,7 @@ tapioctl(struct cdev *dev, u_long cmd, c mtx_unlock(&tp->tap_mtx); break; - case OSIOCGIFADDR: /* get MAC address of the remote side */ - case SIOCGIFADDR: + case SIOCGIFADDR: /* get MAC address of the remote side */ mtx_lock(&tp->tap_mtx); bcopy(tp->ether_addr, data, sizeof(tp->ether_addr)); mtx_unlock(&tp->tap_mtx); Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Tue Nov 5 09:46:01 2013 (r257695) +++ head/sys/sys/param.h Tue Nov 5 10:29:47 2013 (r257696) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1100001 /* Master, propagated to newvers */ +#define __FreeBSD_version 1100002 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, Modified: head/sys/sys/sockio.h ============================================================================== --- head/sys/sys/sockio.h Tue Nov 5 09:46:01 2013 (r257695) +++ head/sys/sys/sockio.h Tue Nov 5 10:29:47 2013 (r257696) @@ -50,25 +50,25 @@ #define SIOCGETSGCNT _IOWR('r', 16, struct sioc_sg_req) /* get s,g pkt cnt */ #define SIOCSIFADDR _IOW('i', 12, struct ifreq) /* set ifnet address */ -#define OSIOCGIFADDR _IOWR('i', 13, struct ifreq) /* get ifnet address */ +/* OSIOCGIFADDR _IOWR('i', 13, struct ifreq) 4.3BSD */ #define SIOCGIFADDR _IOWR('i', 33, struct ifreq) /* get ifnet address */ #define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */ -#define OSIOCGIFDSTADDR _IOWR('i', 15, struct ifreq) /* get p-p address */ +/* OSIOCGIFDSTADDR _IOWR('i', 15, struct ifreq) 4.3BSD */ #define SIOCGIFDSTADDR _IOWR('i', 34, struct ifreq) /* get p-p address */ #define SIOCSIFFLAGS _IOW('i', 16, struct ifreq) /* set ifnet flags */ #define SIOCGIFFLAGS _IOWR('i', 17, struct ifreq) /* get ifnet flags */ -#define OSIOCGIFBRDADDR _IOWR('i', 18, struct ifreq) /* get broadcast addr */ +/* OSIOCGIFBRDADDR _IOWR('i', 18, struct ifreq) 4.3BSD */ #define SIOCGIFBRDADDR _IOWR('i', 35, struct ifreq) /* get broadcast addr */ #define SIOCSIFBRDADDR _IOW('i', 19, struct ifreq) /* set broadcast addr */ -#define OSIOCGIFCONF _IOWR('i', 20, struct ifconf) /* get ifnet list */ +/* OSIOCGIFCONF _IOWR('i', 20, struct ifconf) 4.3BSD */ #define SIOCGIFCONF _IOWR('i', 36, struct ifconf) /* get ifnet list */ -#define OSIOCGIFNETMASK _IOWR('i', 21, struct ifreq) /* get net addr mask */ +/* OSIOCGIFNETMASK _IOWR('i', 21, struct ifreq) 4.3BSD */ #define SIOCGIFNETMASK _IOWR('i', 37, struct ifreq) /* get net addr mask */ #define SIOCSIFNETMASK _IOW('i', 22, struct ifreq) /* set net addr mask */ #define SIOCGIFMETRIC _IOWR('i', 23, struct ifreq) /* get IF metric */ #define SIOCSIFMETRIC _IOW('i', 24, struct ifreq) /* set IF metric */ #define SIOCDIFADDR _IOW('i', 25, struct ifreq) /* delete IF addr */ -#define OSIOCAIFADDR _IOW('i', 26, struct oifaliasreq)/* add/chg IF alias */ +/* OSIOCAIFADDR _IOW('i', 26, struct oifaliasreq) FreeBSD 9.x */ #define SIOCALIFADDR _IOW('i', 27, struct if_laddrreq) /* add IF addr */ #define SIOCGLIFADDR _IOWR('i', 28, struct if_laddrreq) /* get IF addr */ #define SIOCDLIFADDR _IOW('i', 29, struct if_laddrreq) /* delete IF addr */ _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"