blob: bb1fecbb6a515f8a36cb71142552ca8bbb63c647 [file] [log] [blame]
/*
* Copyright (C) 1995-1997, 1999 Jeffrey A. Uphoff
* Modified by Olaf Kirch, Dec. 1996.
*
* NSM for Linux.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "sm_inter.h"
#include "system.h"
#include "xlog.h"
/*
* Status definitions.
*/
#define STAT_FAIL stat_fail
#define STAT_SUCC stat_succ
/*
* Function prototypes.
*/
extern _Bool statd_matchhostname(const char *hostname1, const char *hostname2);
extern _Bool statd_present_address(const struct sockaddr *sap, char *buf,
const size_t buflen);
__attribute__((__malloc__))
extern char * statd_canonical_name(const char *hostname);
extern void my_svc_run(int);
extern void notify_hosts(void);
extern void shuffle_dirs(void);
extern int statd_get_socket(void);
extern int process_notify_list(void);
extern int process_reply(FD_SET_TYPE *);
extern char * xstrdup(const char *);
extern void * xmalloc(size_t);
extern void load_state(void);
/*
* Host status structure and macros.
*/
extern stat_chge SM_stat_chge;
#define MY_NAME SM_stat_chge.mon_name
#define MY_STATE SM_stat_chge.state
/*
* Some timeout values. (Timeout values are in whole seconds.)
*/
#define CALLBACK_TIMEOUT 3 /* For client call-backs. */
#define NOTIFY_TIMEOUT 5 /* For status-change notifications. */
#define SELECT_TIMEOUT 10 /* Max select() timeout when work to do. */
#define MAX_TRIES 5 /* Max number of tries for any host. */
/*
* Modes of operation - Lon
*/
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
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
* another host.... */
#define STATIC_HOSTNAME 8 /* Always use the hostname set by -n */
#define MODE_NO_NOTIFY 16 /* Don't notify peers of a reboot */