Author: markm
Date: Fri Oct  8 20:17:17 2010
New Revision: 213611
URL: http://svn.freebsd.org/changeset/base/213611

Log:
  Don't let the "available"/"not available" logs flap quite so badly. In the
  case of a multi-interfaced host, sub-second flapping can fill up the logs
  too quickly. This fixes that.

Modified:
  head/usr.sbin/ypbind/ypbind.c

Modified: head/usr.sbin/ypbind/ypbind.c
==============================================================================
--- head/usr.sbin/ypbind/ypbind.c       Fri Oct  8 20:13:42 2010        
(r213610)
+++ head/usr.sbin/ypbind/ypbind.c       Fri Oct  8 20:17:17 2010        
(r213611)
@@ -116,6 +116,9 @@ int ypsetmode = YPSET_NO;
 int ypsecuremode = 0;
 int ppid;
 
+#define NOT_RESPONDING_HYSTERESIS 10
+static int not_responding_count = 0;
+
 /*
  * Special restricted mode variables: when in restricted mode, only the
  * specified restricted_domain will be bound, and only the servers listed
@@ -654,9 +657,13 @@ broadcast(struct _dom_binding *ypdb)
                return;
        }
 
-       if (ypdb->dom_vers == -1 && (long)ypdb->dom_server_addr.sin_addr.s_addr)
-               syslog(LOG_WARNING, "NIS server [%s] for domain \"%s\" not 
responding",
-               inet_ntoa(ypdb->dom_server_addr.sin_addr), ypdb->dom_domain);
+       if (ypdb->dom_vers == -1 && 
(long)ypdb->dom_server_addr.sin_addr.s_addr) {
+               if (not_responding_count++ >= NOT_RESPONDING_HYSTERESIS) {
+                       not_responding_count = NOT_RESPONDING_HYSTERESIS;
+                       syslog(LOG_WARNING, "NIS server [%s] for domain \"%s\" 
not responding",
+                           inet_ntoa(ypdb->dom_server_addr.sin_addr), 
ypdb->dom_domain);
+               }
+       }
 
        broad_domain = ypdb;
        flock(ypdb->dom_lockfd, LOCK_UN);
@@ -886,9 +893,13 @@ rpc_received(char *dom, struct sockaddr_
        }
 
        /* We've recovered from a crash: inform the world. */
-       if (ypdb->dom_vers == -1 && ypdb->dom_server_addr.sin_addr.s_addr)
-               syslog(LOG_WARNING, "NIS server [%s] for domain \"%s\" OK",
-               inet_ntoa(raddrp->sin_addr), ypdb->dom_domain);
+       if (ypdb->dom_vers == -1 && ypdb->dom_server_addr.sin_addr.s_addr) {
+               if (not_responding_count >= NOT_RESPONDING_HYSTERESIS) {
+                       not_responding_count = 0;
+                       syslog(LOG_WARNING, "NIS server [%s] for domain \"%s\" 
OK",
+                           inet_ntoa(raddrp->sin_addr), ypdb->dom_domain);
+               }
+       }
 
        bcopy(raddrp, &ypdb->dom_server_addr,
                sizeof ypdb->dom_server_addr);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to