Blob Blame History Raw
--- ypbind-mt-1.20.4/src/serv_list.c.orig	2007-05-02 11:27:10.505406000 -0400
+++ ypbind-mt-1.20.4/src/serv_list.c	2007-05-02 11:28:27.659681000 -0400
@@ -50,6 +50,8 @@
 #include "local.h"
 #include "pthread_np.h"
 
+extern int verbose_flag;
+
 #if (defined(__sun__) || defined(sun)) && defined(__svr4__)
 typedef uint32_t u_int32_t;
 #endif
@@ -80,6 +82,22 @@
   struct bound_server ypset;
   CLIENT *client_handle;
 };
+static inline char *
+bound_host(struct binding *bptr)
+{
+  struct bound_server *sptr;
+
+  if (bptr->active >= 0)
+  	sptr = &bptr->server[bptr->active];
+  else if (bptr->active == -2)
+  	sptr = &bptr->ypset;
+  else
+  	return "Unknown Host";
+
+  if (sptr->host != NULL)
+  	return(sptr->host);
+  return (inet_ntoa(sptr->addr));
+}
 
 static struct binding *domainlist = NULL;
 static int max_domains = 0;
@@ -224,6 +242,12 @@
 	  pthread_rdwr_rlock_np (&domainlock);
 	  update_bindingfile (&domainlist[i]);
 	  pthread_rdwr_runlock_np (&domainlock);
+	  if (verbose_flag)
+	    {
+	      log_msg (LOG_NOTICE, "NIS server set to '%s'" 
+		" for domain '%s'",
+	        bound_host(&domainlist[i]), domainlist[i].domain);
+	    }
 
 	  return;
 	}
@@ -797,6 +821,10 @@
       list->server[i].port = s_in.sin_port;
       if (s_in.sin_port == 0)
 	{
+	  if (verbose_flag && list->active == i)
+		log_msg (LOG_NOTICE, "NIS server '%s' not repsonding "
+		    "for domain '%s'", list->server[i].host, list->domain);
+		
 	  if (debug_flag)
 	    log_msg (LOG_DEBUG, _("host '%s' doesn't answer."),
 		     list->server[i].host);
@@ -1001,13 +1029,21 @@
 void
 do_binding (void)
 {
-  int i;
+  int i, active;
 
   pthread_mutex_lock (&search_lock);
   for (i = 0; i < max_domains; ++i)
     {
+	  if (verbose_flag)
+	     active = domainlist[i].active;
       if (!ping_all (&domainlist[i]) && domainlist[i].use_broadcast)
 	do_broadcast (&domainlist[i]);
+      if (verbose_flag && 
+		domainlist[i].active >= 0 && active != domainlist[i].active) 
+	{
+		log_msg (LOG_NOTICE, "NIS server is '%s' for domain '%s'",
+		    bound_host(&domainlist[i]), domainlist[i].domain);
+    	}
     }
   pthread_mutex_unlock (&search_lock);
 }
@@ -1038,7 +1074,8 @@
 	pthread_exit (&success);
 
       lastcheck += ping_interval;
-      if (lastcheck >= 900) /* 900 = 15min. */
+      //if (lastcheck >= 900) /* 900 = 15min. */
+      if (lastcheck >= 60) /* 900 = 15min. */
 	lastcheck = 0;
 
 #if USE_DBUS_NM
@@ -1091,6 +1128,7 @@
 	  domainlist[i].active = -1;
 	}
 
+      active = domainlist[i].active;
       if (domainlist[i].active != -1)
 	{
 	  /* The binding is in use, check if it is still valid and
@@ -1107,6 +1145,10 @@
 			  YPPROC_DOMAIN, (xdrproc_t) ypbind_xdr_domainname,
 			  (caddr_t) &domain, (xdrproc_t) xdr_bool,
 			  (caddr_t) &out, time_out);
+		if (verbose_flag && status != RPC_SUCCESS)
+			log_msg (LOG_NOTICE, "NIS server '%s' not responding"
+			" for domain '%s'", bound_host(&domainlist[i]),
+			domainlist[i].domain);
 	    }
 
 	  /* time to search a new fastest server, but only if the current
@@ -1196,6 +1238,12 @@
 	  pthread_mutex_unlock (&search_lock);
 	  pthread_rdwr_wlock_np (&domainlock);
 	}
+      if (verbose_flag && 
+          domainlist[i].active >= 0 && active != domainlist[i].active)
+	{
+	  log_msg (LOG_NOTICE, "NIS server is '%s' for domain '%s'",
+	      bound_host(&domainlist[i]), domainlist[i].domain);
+	}
     } /* end for () all domains */
 
   pthread_rdwr_wunlock_np (&domainlock);
--- ypbind-mt-1.20.4/src/ypbind-mt.c.orig	2007-05-02 11:27:10.482429000 -0400
+++ ypbind-mt-1.20.4/src/ypbind-mt.c	2007-05-02 11:30:00.067633000 -0400
@@ -466,6 +466,7 @@
 	}
     }
 }
+int verbose_flag;
 
 static void
 usage (int ret)
@@ -478,7 +479,7 @@
     output = stdout;
 
   fputs (_("Usage:\n"), output);
-  fputs (_("\typbind [-broadcast | -ypset | -ypsetme] [-p port] [-f configfile]\n\t  [-no-ping] [-broken-server] [-local-only] [-i ping-interval] [-debug]\n"), output);
+  fputs (_("\typbind [-broadcast | -ypset | -ypsetme] [-p port] [-f configfile]\n\t  [-no-ping] [-broken-server] [-local-only] [-i ping-interval] [-debug] [-verbose]\n"), output);
 #ifdef USE_DBUS_NM
   fputs (_("\t  [-no-dbus]\n"), output);
 #endif
@@ -656,6 +657,9 @@
       else if (strcmp ("-d", argv[i]) == 0 ||
 	       strcmp ("-debug", argv[i]) == 0)
         debug_flag = 1;
+      else if (strcmp ("-v", argv[i]) == 0 ||
+	       strcmp ("-verbose", argv[i]) == 0)
+        verbose_flag = 1;
       else if (strcmp ("-broken-server", argv[i]) == 0 ||
 	       strcmp ("-broken_server", argv[i]) == 0)
         broken_server = 1;
--- ypbind-mt-1.20.4/man/ypbind.8.xml.orig	2006-10-04 11:26:24.000000000 -0400
+++ ypbind-mt-1.20.4/man/ypbind.8.xml	2007-05-02 11:33:11.128479000 -0400
@@ -41,6 +41,7 @@
     <command>ypbind</command>
       <arg choice='opt'>-c </arg>
       <group choice='opt'><arg choice='plain'>-d </arg><arg choice='plain'>-debug </arg></group>
+      <arg choice='opt'>-verbose </arg>
       <arg choice='opt'>-broadcast </arg>
       <arg choice='opt'>-broken-server </arg>
       <arg choice='opt'>-ypset </arg>
@@ -208,6 +209,14 @@
   </listitem>
   </varlistentry>
   <varlistentry>
+  <term><option>-verbose</option></term>
+  <listitem>
+<para>Causes
+<command>ypbind</command>
+to syslog(2) any and all changes in the server its bound to.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
   <term><option>-broken-server</option></term>
   <listitem>
 <para>lets