changeset 2509:8b23a7553c3b draft

Log error condition if a new or changed Router Advertisment to avoid spamming the log.
author Roy Marples <roy@marples.name>
date Mon, 02 Jun 2014 23:59:05 +0000
parents 9f7687ad3013
children e46bc9fcf322
files ipv6nd.c
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ipv6nd.c	Mon Jun 02 23:42:52 2014 +0000
+++ b/ipv6nd.c	Mon Jun 02 23:59:05 2014 +0000
@@ -822,27 +822,28 @@
 		case ND_OPT_PREFIX_INFORMATION:
 			pi = (struct nd_opt_prefix_info *)(void *)ndo;
 			if (pi->nd_opt_pi_len != 4) {
-				syslog(LOG_ERR,
+				syslog(new_data ? LOG_ERR : LOG_DEBUG,
 				    "%s: invalid option len for prefix",
 				    ifp->name);
 				continue;
 			}
 			if (pi->nd_opt_pi_prefix_len > 128) {
-				syslog(LOG_ERR, "%s: invalid prefix len",
+				syslog(new_data ? LOG_ERR : LOG_DEBUG,
+				    "%s: invalid prefix len",
 				    ifp->name);
 				continue;
 			}
 			if (IN6_IS_ADDR_MULTICAST(&pi->nd_opt_pi_prefix) ||
 			    IN6_IS_ADDR_LINKLOCAL(&pi->nd_opt_pi_prefix))
 			{
-				syslog(LOG_ERR,
+				syslog(new_data ? LOG_ERR : LOG_DEBUG,
 				    "%s: invalid prefix in RA", ifp->name);
 				continue;
 			}
 			if (ntohl(pi->nd_opt_pi_preferred_time) >
 			    ntohl(pi->nd_opt_pi_valid_time))
 			{
-				syslog(LOG_ERR,
+				syslog(new_data ? LOG_ERR : LOG_DEBUG,
 				    "%s: pltime > vltime", ifp->name);
 				continue;
 			}
@@ -977,7 +978,8 @@
 			n = (dnssl->nd_opt_dnssl_len - 1) * 8;
 			r = decode_rfc3397(NULL, 0, op, n);
 			if (r < 1) {
-				syslog(LOG_ERR, "%s: invalid DNSSL option",
+				syslog(new_data ? LOG_ERR : LOG_DEBUG,
+				    "%s: invalid DNSSL option",
 				    ifp->name);
 				continue;
 			} else {