On Mon, Oct 16, 2017 at 12:35:35PM +0200, Martin Pieuchot wrote:
> The following ioctl(2)s are deprecated since 2001.  I'd like to
> remove our kernel support for them:
>       - SIOCSIFPHYADDR
>       - SIOCSIFPHYADDR_IN6
>       - SIOCGIFPSRCADDR
>       - SIOCGIFPSRCADDR_IN6
>       - SIOCGIFPDSTADDR
>       - SIOCGIFPDSTADDR_IN6

grep /usr/src found them also in etherip(4) and gif(4).  Please remove.

share/man/man4/etherip.4:.Dv SIOCSIFPHYADDR
share/man/man4/gif.4:.Dv SIOCSIFPHYADDR

> ok?

OK bluhm@

> Index: net/if.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if.c,v
> retrieving revision 1.517
> diff -u -p -r1.517 if.c
> --- net/if.c  16 Oct 2017 08:19:15 -0000      1.517
> +++ net/if.c  16 Oct 2017 10:30:05 -0000
> @@ -2008,11 +2008,7 @@ ifioctl(struct socket *so, u_long cmd, c
>                       rtm_ifchg(ifp);
>               break;
>  
> -     case SIOCSIFPHYADDR:
>       case SIOCDIFPHYADDR:
> -#ifdef INET6
> -     case SIOCSIFPHYADDR_IN6:
> -#endif
>       case SIOCSLIFPHYADDR:
>       case SIOCSLIFPHYRTABLE:
>       case SIOCSLIFPHYTTL:
> @@ -2026,8 +2022,6 @@ ifioctl(struct socket *so, u_long cmd, c
>               if ((error = suser(p, 0)) != 0)
>                       return (error);
>               /* FALLTHROUGH */
> -     case SIOCGIFPSRCADDR:
> -     case SIOCGIFPDSTADDR:
>       case SIOCGLIFPHYADDR:
>       case SIOCGLIFPHYRTABLE:
>       case SIOCGLIFPHYTTL:
> Index: net/if_gif.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if_gif.c,v
> retrieving revision 1.99
> diff -u -p -r1.99 if_gif.c
> --- net/if_gif.c      11 Aug 2017 21:24:19 -0000      1.99
> +++ net/if_gif.c      16 Oct 2017 10:30:00 -0000
> @@ -335,33 +335,9 @@ gif_ioctl(struct ifnet *ifp, u_long cmd,
>       case SIOCDELMULTI:
>               break;
>  
> -     case SIOCSIFPHYADDR:
> -#ifdef INET6
> -     case SIOCSIFPHYADDR_IN6:
> -#endif /* INET6 */
>       case SIOCSLIFPHYADDR:
> -             switch (cmd) {
> -             case SIOCSIFPHYADDR:
> -                     src = sintosa(
> -                             &(((struct in_aliasreq *)data)->ifra_addr));
> -                     dst = sintosa(
> -                             &(((struct in_aliasreq *)data)->ifra_dstaddr));
> -                     break;
> -#ifdef INET6
> -             case SIOCSIFPHYADDR_IN6:
> -                     src = sin6tosa(
> -                             &(((struct in6_aliasreq *)data)->ifra_addr));
> -                     dst = sin6tosa(
> -                             &(((struct in6_aliasreq *)data)->ifra_dstaddr));
> -                     break;
> -#endif
> -             case SIOCSLIFPHYADDR:
> -                     src = sstosa(&(((struct if_laddrreq *)data)->addr));
> -                     dst = sstosa(&(((struct if_laddrreq *)data)->dstaddr));
> -                     break;
> -             default:
> -                     return (EINVAL);
> -             }
> +             src = sstosa(&(((struct if_laddrreq *)data)->addr));
> +             dst = sstosa(&(((struct if_laddrreq *)data)->dstaddr));
>  
>               /* sa_family must be equal */
>               if (src->sa_family != dst->sa_family)
> @@ -397,23 +373,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd,
>                       return (EAFNOSUPPORT);
>               }
>  
> -             /* check sa_family looks sane for the cmd */
> -             switch (cmd) {
> -             case SIOCSIFPHYADDR:
> -                     if (src->sa_family == AF_INET)
> -                             break;
> -                     return (EAFNOSUPPORT);
> -#ifdef INET6
> -             case SIOCSIFPHYADDR_IN6:
> -                     if (src->sa_family == AF_INET6)
> -                             break;
> -                     return (EAFNOSUPPORT);
> -#endif /* INET6 */
> -             case SIOCSLIFPHYADDR:
> -                     /* checks done in the above */
> -                     break;
> -             }
> -
>               LIST_FOREACH(sc2, &gif_softc_list, gif_list) {
>                       if (sc2 == sc)
>                               continue;
> @@ -470,7 +429,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd,
>               error = 0;
>               break;
>  
> -#ifdef SIOCDIFPHYADDR
>       case SIOCDIFPHYADDR:
>               if (sc->gif_psrc) {
>                       free((caddr_t)sc->gif_psrc, M_IFADDR, 0);
> @@ -481,66 +439,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd,
>                       sc->gif_pdst = NULL;
>               }
>               /* change the IFF_{UP, RUNNING} flag as well? */
> -             break;
> -#endif
> -
> -     case SIOCGIFPSRCADDR:
> -#ifdef INET6
> -     case SIOCGIFPSRCADDR_IN6:
> -#endif /* INET6 */
> -             if (sc->gif_psrc == NULL) {
> -                     error = EADDRNOTAVAIL;
> -                     goto bad;
> -             }
> -             src = sc->gif_psrc;
> -             switch (cmd) {
> -             case SIOCGIFPSRCADDR:
> -                     dst = &ifr->ifr_addr;
> -                     size = sizeof(ifr->ifr_addr);
> -                     break;
> -#ifdef INET6
> -             case SIOCGIFPSRCADDR_IN6:
> -                     dst = sin6tosa(
> -                             &(((struct in6_ifreq *)data)->ifr_addr));
> -                     size = sizeof(((struct in6_ifreq *)data)->ifr_addr);
> -                     break;
> -#endif /* INET6 */
> -             default:
> -                     error = EADDRNOTAVAIL;
> -                     goto bad;
> -             }
> -             if (src->sa_len > size)
> -                     return (EINVAL);
> -             bcopy((caddr_t)src, (caddr_t)dst, src->sa_len);
> -             break;
> -
> -     case SIOCGIFPDSTADDR:
> -#ifdef INET6
> -     case SIOCGIFPDSTADDR_IN6:
> -#endif /* INET6 */
> -             if (sc->gif_pdst == NULL) {
> -                     error = EADDRNOTAVAIL;
> -                     goto bad;
> -             }
> -             src = sc->gif_pdst;
> -             switch (cmd) {
> -             case SIOCGIFPDSTADDR:
> -                     dst = &ifr->ifr_addr;
> -                     size = sizeof(ifr->ifr_addr);
> -                     break;
> -#ifdef INET6
> -             case SIOCGIFPDSTADDR_IN6:
> -                     dst = sin6tosa(&(((struct in6_ifreq *)data)->ifr_addr));
> -                     size = sizeof(((struct in6_ifreq *)data)->ifr_addr);
> -                     break;
> -#endif /* INET6 */
> -             default:
> -                     error = EADDRNOTAVAIL;
> -                     goto bad;
> -             }
> -             if (src->sa_len > size)
> -                     return (EINVAL);
> -             bcopy((caddr_t)src, (caddr_t)dst, src->sa_len);
>               break;
>  
>       case SIOCGLIFPHYADDR:
> Index: netinet6/in6.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/in6.c,v
> retrieving revision 1.211
> diff -u -p -r1.211 in6.c
> --- netinet6/in6.c    15 Aug 2017 06:08:52 -0000      1.211
> +++ netinet6/in6.c    16 Oct 2017 10:30:08 -0000
> @@ -250,15 +250,12 @@ in6_ioctl(u_long cmd, caddr_t data, stru
>        */
>       switch (cmd) {
>       case SIOCAIFADDR_IN6:
> -     case SIOCSIFPHYADDR_IN6:
>               sa6 = &ifra->ifra_addr;
>               break;
>       case SIOCGIFADDR_IN6:
>       case SIOCGIFDSTADDR_IN6:
>       case SIOCGIFNETMASK_IN6:
>       case SIOCDIFADDR_IN6:
> -     case SIOCGIFPSRCADDR_IN6:
> -     case SIOCGIFPDSTADDR_IN6:
>       case SIOCGIFAFLAG_IN6:
>       case SIOCSNDFLUSH_IN6:
>       case SIOCSPFXFLUSH_IN6:

Reply via email to