+2002-09-02 Juan Gomez <juang@us.ibm.com>
+ NeilBrown <neilb@cse.unsw.edu.au>
+
+ Add -N option to statd to run in notify-only mode.
+
+ * utils/statd/statd.h: uncomment MODE_NOTIFY_ONLY
+ * utils/statd/statd.man: document -N
+ * utils/statd/statd.c: enabled -N, largely exists but needed to be
+ uncommented and completed
+
2002-09-02 Juan Gomez <juang@us.ibm.com>
NeilBrown <neilb@cse.unsw.edu.au>
{ "port", 1, 0, 'p' },
{ "name", 1, 0, 'n' },
{ "state-directory-path", 1, 0, 'P' },
+ { "notify-mode", 0, 0, 'N' },
{ NULL, 0, 0, 0 }
};
strcat(buf,"No-Daemon ");
if (run_mode & MODE_LOG_STDERR)
strcat(buf,"Log-STDERR ");
- /* future: IP aliasing
+
if (run_mode & MODE_NOTIFY_ONLY)
{
strcat(buf,"Notify-Only ");
- } */
+ }
log(L_WARNING,buf);
/* future: IP aliasing
if (run_mode & MODE_NOTIFY_ONLY)
fprintf(stderr," -V, -v, --version Display version information and exit.\n");
fprintf(stderr," -n, --name Specify a local hostname.\n");
fprintf(stderr," -P State directory path.\n");
+ fprintf(stderr," -N Run in notify only mode.\n");
}
/*
MY_NAME = NULL;
/* Process command line switches */
- while ((arg = getopt_long(argc, argv, "h?vVFdn:p:o:P:", longopts, NULL)) != EOF) {
+ while ((arg = getopt_long(argc, argv, "h?vVFNdn:p:o:P:", longopts, NULL)) != EOF) {
switch (arg) {
case 'V': /* Version */
case 'v':
case 'F': /* Foreground/nodaemon mode */
run_mode |= MODE_NODAEMON;
break;
+ case 'N':
+ run_mode |= MODE_NOTIFY_ONLY;
+ break;
case 'd': /* No daemon only - log to stderr */
run_mode |= MODE_LOG_STDERR;
break;
notify_hosts (); /* Send out notify requests */
++restart;
- /* future: IP aliasing
+ /* this registers both UDP and TCP services */
if (!(run_mode & MODE_NOTIFY_ONLY)) {
rpc_init("statd", SM_PROG, SM_VERS, sm_prog_1, port);
- } */
- /* this registers both UDP and TCP services */
- rpc_init("statd", SM_PROG, SM_VERS, sm_prog_1, port);
+ }
/*
* Handle incoming requests: SM_NOTIFY socket requests, as
* well as callbacks from lockd.
*/
my_svc_run(); /* I rolled my own, Olaf made it better... */
+
+ if ((run_mode & MODE_NOTIFY_ONLY))
+ break;
}
return 0;
}
extern int run_mode;
#define MODE_NODAEMON 1 /* No-daemon/foreground mode. */
#define MODE_LOG_STDERR 2 /* in foreground mode, log to stderr */
-/*#define MODE_NOTIFY_ONLY 4*/ /* Send SM_NOTIFY to everyone monitored on
+#define MODE_NOTIFY_ONLY 4 /* Send SM_NOTIFY to everyone monitored on
a single interface/alias */
/* LH - notify_only mode would be for notifying hosts on an IP alias
* that just came back up, for ex, when failing over a HA service to