File: config.h

package info (click to toggle)
lsm 1.0.4-1
  • links: PTS
  • area: main
  • in suites: buster, stretch
  • size: 588 kB
  • ctags: 390
  • sloc: ansic: 6,932; sh: 283; makefile: 146
file content (91 lines) | stat: -rw-r--r-- 1,754 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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 */