aboutsummaryrefslogtreecommitdiff
path: root/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'config.h')
-rw-r--r--config.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/config.h b/config.h
new file mode 100644
index 0000000..27bb360
--- /dev/null
+++ b/config.h
@@ -0,0 +1,91 @@
+/*
+
+(C) 2009-2015 Mika Ilmaranta <ilmis@nullnet.fi>
+
+License: GPLv2
+
+*/
+
+
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+
+typedef enum status {
+ DOWN = 0,
+ UP = 1,
+ UNKNOWN = 2,
+ LONG_DOWN = 3
+} STATUS;
+
+typedef struct config {
+ struct config *prev, *next;
+ char *name;
+ char *sourceip;
+ struct addrinfo *srcinfo;
+ char *checkip;
+ struct addrinfo *dstinfo;
+ char *eventscript;
+ int unknown_up_notify;
+ char *notifyscript;
+ int max_packet_loss;
+ int max_successive_pkts_lost;
+ int min_packet_loss;
+ int min_successive_pkts_rcvd;
+ int interval_ms;
+ int timeout_ms;
+ char *warn_email;
+ int long_down_time;
+ char *long_down_email;
+ char *long_down_notifyscript;
+ char *long_down_eventscript;
+ int check_arp;
+ char *device;
+ int ttl;
+ STATUS status;
+ char *queue;
+ int startup_acceleration;
+ int startup_burst_pkts;
+ int startup_burst_interval;
+
+ void *data;
+} CONFIG;
+
+typedef struct group_members {
+ struct group_members *prev, *next;
+ char *name;
+ CONFIG *cfg_ptr;
+} GROUP_MEMBERS;
+
+typedef struct groups {
+ struct groups *prev, *next;
+ char *name;
+ char *eventscript;
+ char *notifyscript;
+ int unknown_up_notify;
+ char *warn_email;
+ int logic; /* or = 0, and = 1 */
+ STATUS status;
+ char *queue;
+
+ GROUP_MEMBERS *fgm, *lgm;
+} GROUPS;
+
+typedef struct global {
+ int debug;
+} GLOBAL;
+
+extern GLOBAL cfg;
+
+void init_config(void);
+int read_config(char *fn, CONFIG **first, CONFIG **last, GROUPS **firstg, GROUPS **lastg);
+int reload_config(char *fn, CONFIG **first, CONFIG **last, GROUPS **firstg, GROUPS **lastg);
+void dump_config(CONFIG **first, CONFIG **last, GROUPS **firstg, GROUPS **lastg);
+void free_config(CONFIG **first, CONFIG **last, GROUPS **firstg, GROUPS **lastg);
+
+#endif
+
+/* EOF */