6435899 Solaris host does not properly process 'Cur hop limit' field of Router Advertisement.
authordd193516
Thu, 03 Aug 2006 16:19:01 -0700
changeset 2493 6467a7307fa2
parent 2492 e571efc94c72
child 2494 70c3ff1df128
6435899 Solaris host does not properly process 'Cur hop limit' field of Router Advertisement.
usr/src/cmd/cmd-inet/usr.lib/in.ndpd/defs.h
usr/src/cmd/cmd-inet/usr.lib/in.ndpd/ndp.c
--- a/usr/src/cmd/cmd-inet/usr.lib/in.ndpd/defs.h	Thu Aug 03 15:38:34 2006 -0700
+++ b/usr/src/cmd/cmd-inet/usr.lib/in.ndpd/defs.h	Thu Aug 03 16:19:01 2006 -0700
@@ -69,6 +69,7 @@
 extern "C" {
 #endif
 
+#define	CURHOP_UNSPECIFIED 0
 #define	PATH_NDPD_CONF	"/etc/inet/ndpd.conf"
 #define	PATH_PID	"/var/run/in.ndpd.pid"
 
--- a/usr/src/cmd/cmd-inet/usr.lib/in.ndpd/ndp.c	Thu Aug 03 15:38:34 2006 -0700
+++ b/usr/src/cmd/cmd-inet/usr.lib/in.ndpd/ndp.c	Thu Aug 03 16:19:01 2006 -0700
@@ -348,7 +348,8 @@
 		logperror_pi(pi, "incoming_ra: SIOCGLIFLNKINFO");
 		return;
 	}
-	if (ra->nd_ra_curhoplimit != pi->pi_CurHopLimit) {
+	if (ra->nd_ra_curhoplimit != CURHOP_UNSPECIFIED &&
+	    ra->nd_ra_curhoplimit != pi->pi_CurHopLimit) {
 		pi->pi_CurHopLimit = ra->nd_ra_curhoplimit;
 
 		lifr.lifr_ifinfo.lir_maxhops = pi->pi_CurHopLimit;