]> git.decadent.org.uk Git - nfs-utils.git/blob - utils/statd/statd.h
Merge branch 'sid'
[nfs-utils.git] / utils / statd / statd.h
1 /* 
2  * Copyright (C) 1995-1997, 1999 Jeffrey A. Uphoff
3  * Modified by Olaf Kirch, Dec. 1996.
4  *
5  * NSM for Linux.
6  */
7
8 #ifdef HAVE_CONFIG_H
9 #include <config.h>
10 #endif
11
12 #include "sm_inter.h"
13 #include "system.h"
14 #include "xlog.h"
15
16 /*
17  * Status definitions.
18  */
19 #define STAT_FAIL       stat_fail
20 #define STAT_SUCC       stat_succ
21
22 /*
23  * Function prototypes.
24  */
25 extern _Bool    statd_matchhostname(const char *hostname1, const char *hostname2);
26 extern _Bool    statd_present_address(const struct sockaddr *sap, char *buf,
27                                         const size_t buflen);
28 __attribute_malloc__
29 extern char *   statd_canonical_name(const char *hostname);
30
31 extern void     my_svc_run(void);
32 extern void     notify_hosts(void);
33 extern void     shuffle_dirs(void);
34 extern int      statd_get_socket(void);
35 extern int      process_notify_list(void);
36 extern int      process_reply(FD_SET_TYPE *);
37 extern char *   xstrdup(const char *);
38 extern void *   xmalloc(size_t);
39 extern void     load_state(void);
40
41 /*
42  * Host status structure and macros.
43  */
44 stat_chge               SM_stat_chge;
45 #define MY_NAME         SM_stat_chge.mon_name
46 #define MY_STATE        SM_stat_chge.state
47
48 /*
49  * Some timeout values.  (Timeout values are in whole seconds.)
50  */
51 #define CALLBACK_TIMEOUT         3 /* For client call-backs. */
52 #define NOTIFY_TIMEOUT           5 /* For status-change notifications. */
53 #define SELECT_TIMEOUT          10 /* Max select() timeout when work to do. */
54 #define MAX_TRIES                5 /* Max number of tries for any host. */
55
56 /*
57  * Modes of operation - Lon
58  */
59 extern int run_mode;
60 #define MODE_NODAEMON 1         /* No-daemon/foreground mode. */
61 #define MODE_LOG_STDERR 2       /* in foreground mode, log to stderr */
62 #define MODE_NOTIFY_ONLY 4      /* Send SM_NOTIFY to everyone monitored on
63                                    a single interface/alias */
64 /* LH - notify_only mode would be for notifying hosts on an IP alias
65  * that just came back up, for ex, when failing over a HA service to
66  * another host.... */
67 #define STATIC_HOSTNAME 8       /* Always use the hostname set by -n */
68 #define MODE_NO_NOTIFY  16      /* Don't notify peers of a reboot */