--- 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 @@
ypbind
-c
-d -debug
+ -verbose
-broadcast
-broken-server
-ypset
@@ -208,6 +209,14 @@
+
+
+Causes
+ypbind
+to syslog(2) any and all changes in the server its bound to.
+
+
+
lets