Date: Sun, 26 Apr 2015 06:52:20 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r281993 - projects/ifnet/sys/net Message-ID: <201504260652.t3Q6qKj1033986@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Sun Apr 26 06:52:19 2015 New Revision: 281993 URL: https://svnweb.freebsd.org/changeset/base/281993 Log: To not confuse possible 3-rd party applications, always report historical IFF_RUNNING together with IFF_UP in getifaddrs(3). Modified: projects/ifnet/sys/net/rtsock.c Modified: projects/ifnet/sys/net/rtsock.c ============================================================================== --- projects/ifnet/sys/net/rtsock.c Sun Apr 26 01:41:10 2015 (r281992) +++ projects/ifnet/sys/net/rtsock.c Sun Apr 26 06:52:19 2015 (r281993) @@ -1253,6 +1253,8 @@ rt_ifmsg(struct ifnet *ifp) ifm = mtod(m, struct if_msghdr *); ifm->ifm_index = ifp->if_index; ifm->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm->ifm_flags |= IFF_RUNNING; if_data_copy(ifp, &ifm->ifm_data); ifm->ifm_addrs = 0; rt_dispatch(m, AF_UNSPEC); @@ -1558,6 +1560,8 @@ sysctl_iflist_ifml(struct ifnet *ifp, st ifm32 = (struct if_msghdrl32 *)ifm; ifm32->ifm_addrs = info->rti_addrs; ifm32->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm32->ifm_flags |= IFF_RUNNING; ifm32->ifm_index = ifp->if_index; ifm32->_ifm_spare1 = 0; ifm32->ifm_len = sizeof(*ifm32); @@ -1568,6 +1572,8 @@ sysctl_iflist_ifml(struct ifnet *ifp, st { ifm->ifm_addrs = info->rti_addrs; ifm->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm->ifm_flags |= IFF_RUNNING; ifm->ifm_index = ifp->if_index; ifm->_ifm_spare1 = 0; ifm->ifm_len = sizeof(*ifm); @@ -1596,6 +1602,8 @@ sysctl_iflist_ifm(struct ifnet *ifp, str ifm32 = (struct if_msghdr32 *)ifm; ifm32->ifm_addrs = info->rti_addrs; ifm32->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm32->ifm_flags |= IFF_RUNNING; ifm32->ifm_index = ifp->if_index; ifd = &ifm32->ifm_data; } else @@ -1603,6 +1611,8 @@ sysctl_iflist_ifm(struct ifnet *ifp, str { ifm->ifm_addrs = info->rti_addrs; ifm->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm->ifm_flags |= IFF_RUNNING; ifm->ifm_index = ifp->if_index; ifd = &ifm->ifm_data; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504260652.t3Q6qKj1033986>