svn commit: r224052 - in user/hrs/ipv6/usr.sbin: rtadvctl rtadvd
Hiroki Sato
hrs at FreeBSD.org
Fri Jul 15 04:31:50 UTC 2011
Author: hrs
Date: Fri Jul 15 04:31:50 2011
New Revision: 224052
URL: http://svn.freebsd.org/changeset/base/224052
Log:
Add conditions to accept or send RAs on 8.X and prior to make MFC easier.
Modified:
user/hrs/ipv6/usr.sbin/rtadvctl/rtadvctl.c
user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.c
Modified: user/hrs/ipv6/usr.sbin/rtadvctl/rtadvctl.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtadvctl/rtadvctl.c Fri Jul 15 02:29:10 2011 (r224051)
+++ user/hrs/ipv6/usr.sbin/rtadvctl/rtadvctl.c Fri Jul 15 04:31:50 2011 (r224052)
@@ -454,12 +454,22 @@ action_show(int argc, char **argv)
ra_ifstatus = RA_IFSTATUS_INACTIVE;
if ((ifi_s->ifi_flags & IFF_UP) &&
(ifi_s->ifi_state == IFI_STATE_CONFIGURED)) {
+#if (__FreeBSD_version < 900000)
+ if (getinet6sysctl(IPV6CTL_FORWARDING) == 0) {
+ if (getinet6sysctl(IPV6CTL_ACCEPT_RTADV))
+ ra_ifstatus = RA_IFSTATUS_RA_RECV;
+ else
+ ra_ifstatus = RA_IFSTATUS_INACTIVE;
+ } else
+ ra_ifstatus = RA_IFSTATUS_RA_SEND;
+#else
if (ifi_s->ifi_nd_flags & ND6_IFF_ACCEPT_RTADV)
ra_ifstatus = RA_IFSTATUS_RA_RECV;
else if (getinet6sysctl(IPV6CTL_FORWARDING))
ra_ifstatus = RA_IFSTATUS_RA_SEND;
else
ra_ifstatus = RA_IFSTATUS_INACTIVE;
+#endif
}
c = 0;
Modified: user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.c
==============================================================================
--- user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.c Fri Jul 15 02:29:10 2011 (r224051)
+++ user/hrs/ipv6/usr.sbin/rtadvd/rtadvd.c Fri Jul 15 04:31:50 2011 (r224052)
@@ -975,7 +975,6 @@ static int
check_accept_rtadv(int idx)
{
struct ifinfo *ifi;
- int error;
TAILQ_FOREACH(ifi, &ifilist, ifi_next) {
if (ifi->ifi_ifindex == idx)
@@ -987,15 +986,19 @@ check_accept_rtadv(int idx)
__func__, idx);
return (0);
}
- error =update_ifinfo_nd_flags(ifi);
- if (error) {
+#if (__FreeBSD_version < 900000)
+ return ((getinet6sysctl(IPV6CTL_FORWARDING) == 0) &&
+ (getinet6sysctl(IPV6CTL_ACCEPT_RTADV) == 1));
+#else
+ if (update_ifinfo_nd_flags(ifi) != 0) {
syslog(LOG_ERR,
"<%s> nd6 flags failed (idx=%d)",
__func__, idx);
return (0);
}
-
+
return (ifi->ifi_nd_flags & ND6_IFF_ACCEPT_RTADV);
+#endif
}
static void
More information about the svn-src-user
mailing list