Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Jul 2011 04:31:50 +0000 (UTC)
From:      Hiroki Sato <hrs@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r224052 - in user/hrs/ipv6/usr.sbin: rtadvctl rtadvd
Message-ID:  <201107150431.p6F4VoR6060582@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107150431.p6F4VoR6060582>