File: common.h

package info (click to toggle)
icinga 1.14.2%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 49,264 kB
  • sloc: ansic: 108,564; sql: 9,656; sh: 4,945; perl: 3,439; makefile: 1,213; php: 581; xml: 104
file content (550 lines) | stat: -rw-r--r-- 20,566 bytes parent folder | download
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
/************************************************************************
 *
 * Icinga Common Header File
 *
 * Copyright (c) 1999-2009 Ethan Galstad (egalstad@nagios.org)
 * Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
 * Copyright (c) 2009-2015 Icinga Development Team (http://www.icinga.org)
 *
 * License:
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 ************************************************************************/

#include "shared.h"

#define PROGRAM_NAME "Icinga"
#define PROGRAM_NAME_UC "ICINGA"
#define PROGRAM_NAME_LC "icinga"
#define PROGRAM_VERSION "1.14.2"
#define PROGRAM_MODIFICATION_DATE "12-20-2017"

/*#define DEBUG_CHECK_IPC 1 */
/*#define DEBUG_CHECK_IPC2 1*/



/* daemon is thread safe */
#ifdef NSCORE
#ifndef _REENTRANT
#define _REENTRANT
#endif
#ifndef _THREAD_SAFE
#define _THREAD_SAFE
#endif
#endif

/* Experimental performance tweaks - use with caution */
#undef USE_MEMORY_PERFORMANCE_TWEAKS

/* my_free has been freed from bondage as a function */
#define my_free(ptr) do { if(ptr) { free(ptr); ptr = NULL; } } while(0)



/***************************** COMMANDS *********************************/

#define CMD_NONE			0

#define CMD_ADD_HOST_COMMENT		1
#define CMD_DEL_HOST_COMMENT		2

#define CMD_ADD_SVC_COMMENT		3
#define CMD_DEL_SVC_COMMENT		4

#define CMD_ENABLE_SVC_CHECK		5
#define CMD_DISABLE_SVC_CHECK		6

#define CMD_SCHEDULE_SVC_CHECK		7

#define CMD_DELAY_SVC_NOTIFICATION	9

#define CMD_DELAY_HOST_NOTIFICATION	10

#define CMD_DISABLE_NOTIFICATIONS	11
#define CMD_ENABLE_NOTIFICATIONS	12

#define CMD_RESTART_PROCESS		13
#define CMD_SHUTDOWN_PROCESS		14

#define CMD_ENABLE_HOST_SVC_CHECKS              15
#define CMD_DISABLE_HOST_SVC_CHECKS             16

#define CMD_SCHEDULE_HOST_SVC_CHECKS            17

#define CMD_DELAY_HOST_SVC_NOTIFICATIONS        19  /* currently unimplemented */

#define CMD_DEL_ALL_HOST_COMMENTS               20
#define CMD_DEL_ALL_SVC_COMMENTS                21

#define CMD_ENABLE_SVC_NOTIFICATIONS                    22
#define CMD_DISABLE_SVC_NOTIFICATIONS                   23
#define CMD_ENABLE_HOST_NOTIFICATIONS                   24
#define CMD_DISABLE_HOST_NOTIFICATIONS                  25
#define CMD_ENABLE_ALL_NOTIFICATIONS_BEYOND_HOST        26
#define CMD_DISABLE_ALL_NOTIFICATIONS_BEYOND_HOST       27
#define CMD_ENABLE_HOST_SVC_NOTIFICATIONS		28
#define CMD_DISABLE_HOST_SVC_NOTIFICATIONS		29

#define CMD_PROCESS_SERVICE_CHECK_RESULT		30

#define CMD_SAVE_STATE_INFORMATION			31
#define CMD_READ_STATE_INFORMATION			32

#define CMD_ACKNOWLEDGE_HOST_PROBLEM			33
#define CMD_ACKNOWLEDGE_SVC_PROBLEM			34

#define CMD_START_EXECUTING_SVC_CHECKS			35
#define CMD_STOP_EXECUTING_SVC_CHECKS			36

#define CMD_START_ACCEPTING_PASSIVE_SVC_CHECKS		37
#define CMD_STOP_ACCEPTING_PASSIVE_SVC_CHECKS		38

#define CMD_ENABLE_PASSIVE_SVC_CHECKS			39
#define CMD_DISABLE_PASSIVE_SVC_CHECKS			40

#define CMD_ENABLE_EVENT_HANDLERS			41
#define CMD_DISABLE_EVENT_HANDLERS			42

#define CMD_ENABLE_HOST_EVENT_HANDLER			43
#define CMD_DISABLE_HOST_EVENT_HANDLER			44

#define CMD_ENABLE_SVC_EVENT_HANDLER			45
#define CMD_DISABLE_SVC_EVENT_HANDLER			46

#define CMD_ENABLE_HOST_CHECK				47
#define CMD_DISABLE_HOST_CHECK				48

#define CMD_START_OBSESSING_OVER_SVC_CHECKS		49
#define CMD_STOP_OBSESSING_OVER_SVC_CHECKS		50

#define CMD_REMOVE_HOST_ACKNOWLEDGEMENT			51
#define CMD_REMOVE_SVC_ACKNOWLEDGEMENT			52

#define CMD_SCHEDULE_FORCED_HOST_SVC_CHECKS             53
#define CMD_SCHEDULE_FORCED_SVC_CHECK                   54

#define CMD_SCHEDULE_HOST_DOWNTIME                      55
#define CMD_SCHEDULE_SVC_DOWNTIME                       56

#define CMD_ENABLE_HOST_FLAP_DETECTION                  57
#define CMD_DISABLE_HOST_FLAP_DETECTION                 58

#define CMD_ENABLE_SVC_FLAP_DETECTION                   59
#define CMD_DISABLE_SVC_FLAP_DETECTION                  60

#define CMD_ENABLE_FLAP_DETECTION                       61
#define CMD_DISABLE_FLAP_DETECTION                      62

#define CMD_ENABLE_HOSTGROUP_SVC_NOTIFICATIONS          63
#define CMD_DISABLE_HOSTGROUP_SVC_NOTIFICATIONS         64

#define CMD_ENABLE_HOSTGROUP_HOST_NOTIFICATIONS         65
#define CMD_DISABLE_HOSTGROUP_HOST_NOTIFICATIONS        66

#define CMD_ENABLE_HOSTGROUP_SVC_CHECKS                 67
#define CMD_DISABLE_HOSTGROUP_SVC_CHECKS                68

#define CMD_CANCEL_HOST_DOWNTIME                        69 /* not internally implemented */
#define CMD_CANCEL_SVC_DOWNTIME                         70 /* not internally implemented */

#define CMD_CANCEL_ACTIVE_HOST_DOWNTIME                 71 /* old - no longer used */
#define CMD_CANCEL_PENDING_HOST_DOWNTIME                72 /* old - no longer used */

#define CMD_CANCEL_ACTIVE_SVC_DOWNTIME                  73 /* old - no longer used */
#define CMD_CANCEL_PENDING_SVC_DOWNTIME                 74 /* old - no longer used */

#define CMD_CANCEL_ACTIVE_HOST_SVC_DOWNTIME             75 /* unimplemented */
#define CMD_CANCEL_PENDING_HOST_SVC_DOWNTIME            76 /* unimplemented */

#define CMD_FLUSH_PENDING_COMMANDS                      77

#define CMD_DEL_HOST_DOWNTIME                           78
#define CMD_DEL_SVC_DOWNTIME                            79

#define CMD_ENABLE_FAILURE_PREDICTION                   80
#define CMD_DISABLE_FAILURE_PREDICTION                  81

#define CMD_ENABLE_PERFORMANCE_DATA                     82
#define CMD_DISABLE_PERFORMANCE_DATA                    83

#define CMD_SCHEDULE_HOSTGROUP_HOST_DOWNTIME            84
#define CMD_SCHEDULE_HOSTGROUP_SVC_DOWNTIME             85
#define CMD_SCHEDULE_HOST_SVC_DOWNTIME                  86

/* new commands in Nagios 2.x found below... */
#define CMD_PROCESS_HOST_CHECK_RESULT		        87

#define CMD_START_EXECUTING_HOST_CHECKS			88
#define CMD_STOP_EXECUTING_HOST_CHECKS			89

#define CMD_START_ACCEPTING_PASSIVE_HOST_CHECKS		90
#define CMD_STOP_ACCEPTING_PASSIVE_HOST_CHECKS		91

#define CMD_ENABLE_PASSIVE_HOST_CHECKS			92
#define CMD_DISABLE_PASSIVE_HOST_CHECKS			93

#define CMD_START_OBSESSING_OVER_HOST_CHECKS		94
#define CMD_STOP_OBSESSING_OVER_HOST_CHECKS		95

#define CMD_SCHEDULE_HOST_CHECK		                96
#define CMD_SCHEDULE_FORCED_HOST_CHECK                  98

#define CMD_START_OBSESSING_OVER_SVC		        99
#define CMD_STOP_OBSESSING_OVER_SVC		        100

#define CMD_START_OBSESSING_OVER_HOST		        101
#define CMD_STOP_OBSESSING_OVER_HOST		        102

#define CMD_ENABLE_HOSTGROUP_HOST_CHECKS                103
#define CMD_DISABLE_HOSTGROUP_HOST_CHECKS               104

#define CMD_ENABLE_HOSTGROUP_PASSIVE_SVC_CHECKS         105
#define CMD_DISABLE_HOSTGROUP_PASSIVE_SVC_CHECKS        106

#define CMD_ENABLE_HOSTGROUP_PASSIVE_HOST_CHECKS        107
#define CMD_DISABLE_HOSTGROUP_PASSIVE_HOST_CHECKS       108

#define CMD_ENABLE_SERVICEGROUP_SVC_NOTIFICATIONS       109
#define CMD_DISABLE_SERVICEGROUP_SVC_NOTIFICATIONS      110

#define CMD_ENABLE_SERVICEGROUP_HOST_NOTIFICATIONS      111
#define CMD_DISABLE_SERVICEGROUP_HOST_NOTIFICATIONS     112

#define CMD_ENABLE_SERVICEGROUP_SVC_CHECKS              113
#define CMD_DISABLE_SERVICEGROUP_SVC_CHECKS             114

#define CMD_ENABLE_SERVICEGROUP_HOST_CHECKS             115
#define CMD_DISABLE_SERVICEGROUP_HOST_CHECKS            116

#define CMD_ENABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS      117
#define CMD_DISABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS     118

#define CMD_ENABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS     119
#define CMD_DISABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS    120

#define CMD_SCHEDULE_SERVICEGROUP_HOST_DOWNTIME         121
#define CMD_SCHEDULE_SERVICEGROUP_SVC_DOWNTIME          122

#define CMD_CHANGE_GLOBAL_HOST_EVENT_HANDLER            123
#define CMD_CHANGE_GLOBAL_SVC_EVENT_HANDLER             124

#define CMD_CHANGE_HOST_EVENT_HANDLER                   125
#define CMD_CHANGE_SVC_EVENT_HANDLER                    126

#define CMD_CHANGE_HOST_CHECK_COMMAND                   127
#define CMD_CHANGE_SVC_CHECK_COMMAND                    128

#define CMD_CHANGE_NORMAL_HOST_CHECK_INTERVAL           129
#define CMD_CHANGE_NORMAL_SVC_CHECK_INTERVAL            130
#define CMD_CHANGE_RETRY_SVC_CHECK_INTERVAL             131

#define CMD_CHANGE_MAX_HOST_CHECK_ATTEMPTS              132
#define CMD_CHANGE_MAX_SVC_CHECK_ATTEMPTS               133

#define CMD_SCHEDULE_AND_PROPAGATE_TRIGGERED_HOST_DOWNTIME 134

#define CMD_ENABLE_HOST_AND_CHILD_NOTIFICATIONS         135
#define CMD_DISABLE_HOST_AND_CHILD_NOTIFICATIONS        136

#define CMD_SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME        137

#define CMD_ENABLE_SERVICE_FRESHNESS_CHECKS             138
#define CMD_DISABLE_SERVICE_FRESHNESS_CHECKS            139

#define CMD_ENABLE_HOST_FRESHNESS_CHECKS                140
#define CMD_DISABLE_HOST_FRESHNESS_CHECKS               141

#define CMD_SET_HOST_NOTIFICATION_NUMBER                142
#define CMD_SET_SVC_NOTIFICATION_NUMBER                 143

/* new commands in Nagios 3.x found below... */
#define CMD_CHANGE_HOST_CHECK_TIMEPERIOD                144  
#define CMD_CHANGE_SVC_CHECK_TIMEPERIOD                 145

#define CMD_PROCESS_FILE                                146

#define CMD_CHANGE_CUSTOM_HOST_VAR                      147
#define CMD_CHANGE_CUSTOM_SVC_VAR                       148
#define CMD_CHANGE_CUSTOM_CONTACT_VAR                   149

#define CMD_ENABLE_CONTACT_HOST_NOTIFICATIONS           150
#define CMD_DISABLE_CONTACT_HOST_NOTIFICATIONS          151
#define CMD_ENABLE_CONTACT_SVC_NOTIFICATIONS            152
#define CMD_DISABLE_CONTACT_SVC_NOTIFICATIONS           153

#define CMD_ENABLE_CONTACTGROUP_HOST_NOTIFICATIONS      154
#define CMD_DISABLE_CONTACTGROUP_HOST_NOTIFICATIONS     155
#define CMD_ENABLE_CONTACTGROUP_SVC_NOTIFICATIONS       156
#define CMD_DISABLE_CONTACTGROUP_SVC_NOTIFICATIONS      157

#define CMD_CHANGE_RETRY_HOST_CHECK_INTERVAL            158

#define CMD_SEND_CUSTOM_HOST_NOTIFICATION               159
#define CMD_SEND_CUSTOM_SVC_NOTIFICATION                160

#define CMD_CHANGE_HOST_NOTIFICATION_TIMEPERIOD         161
#define CMD_CHANGE_SVC_NOTIFICATION_TIMEPERIOD          162
#define CMD_CHANGE_CONTACT_HOST_NOTIFICATION_TIMEPERIOD 163
#define CMD_CHANGE_CONTACT_SVC_NOTIFICATION_TIMEPERIOD  164

#define CMD_CHANGE_HOST_MODATTR                         165
#define CMD_CHANGE_SVC_MODATTR                          166
#define CMD_CHANGE_CONTACT_MODATTR                      167
#define CMD_CHANGE_CONTACT_MODHATTR                     168
#define CMD_CHANGE_CONTACT_MODSATTR                     169

#define CMD_SYNC_STATE_INFORMATION                      170

#define CMD_DEL_DOWNTIME_BY_HOST_NAME                   171
#define CMD_DEL_DOWNTIME_BY_HOSTGROUP_NAME              172
#define CMD_DEL_DOWNTIME_BY_START_TIME_COMMENT          173

/* Added for expiring Acknowlwdgements */

#define CMD_ACKNOWLEDGE_HOST_PROBLEM_EXPIRE		174
#define CMD_ACKNOWLEDGE_SVC_PROBLEM_EXPIRE		175

/* for disabled notifications expiry */
#define CMD_DISABLE_NOTIFICATIONS_EXPIRE_TIME		176

/* Acknowledge host and its services */
#define CMD_ACKNOWLEDGE_HOST_SVC_PROBLEM		177

/* custom command introduced in Nagios 3.x */
#define CMD_CUSTOM_COMMAND                              999
#define CMD_INTERNAL_CHANGE_HOST_CHECK_RETRY_INTERVAL   1001
#define CMD_INTERNAL_CHANGE_SVC_CHECK_RETRY_INTERVAL    1002

/**************************** COMMAND ERRORS *****************************/
#define CMD_ERROR_OK 			0 	/* No errors encountered */
#define CMD_ERROR_UNKNOWN_COMMAND 	1 	/* Unknown/unsupported command */
#define CMD_ERROR_MALFORMED_COMMAND 	2 	/* Command malformed/missing timestamp? */
#define CMD_ERROR_INTERNAL_ERROR 	3 	/* Internal error */
#define CMD_ERROR_FAILURE 		4 	/* Command routine failed */


/************************ SERVICE CHECK TYPES ****************************/

#define SERVICE_CHECK_ACTIVE		0	/* Icinga performed the service check */
#define SERVICE_CHECK_PASSIVE		1	/* the service check result was submitted by an external source */


/************************** HOST CHECK TYPES *****************************/

#define HOST_CHECK_ACTIVE		0	/* Icinga performed the host check */
#define HOST_CHECK_PASSIVE		1	/* the host check result was submitted by an external source */


/************************ SERVICE STATE TYPES ****************************/

#define SOFT_STATE			0	
#define HARD_STATE			1


/************************* SCHEDULED DOWNTIME TYPES **********************/

#define SERVICE_DOWNTIME		1	/* service downtime */
#define HOST_DOWNTIME			2	/* host downtime */
#define ANY_DOWNTIME                    3       /* host or service downtime */


/************************** NOTIFICATION OPTIONS *************************/

#define NOTIFICATION_OPTION_NONE        0
#define NOTIFICATION_OPTION_BROADCAST   1
#define NOTIFICATION_OPTION_FORCED      2
#define NOTIFICATION_OPTION_INCREMENT   4


/************************** ACKNOWLEDGEMENT TYPES ************************/

#define HOST_ACKNOWLEDGEMENT            0
#define SERVICE_ACKNOWLEDGEMENT         1

#define ACKNOWLEDGEMENT_NONE            0
#define ACKNOWLEDGEMENT_NORMAL          1
#define ACKNOWLEDGEMENT_STICKY          2


/**************************** DEPENDENCY TYPES ***************************/

#define NOTIFICATION_DEPENDENCY		1
#define EXECUTION_DEPENDENCY		2



/********************** HOST/SERVICE CHECK OPTIONS ***********************/

#define CHECK_OPTION_NONE		0	/* no check options */
#define CHECK_OPTION_FORCE_EXECUTION	1	/* force execution of a check (ignores disabled services/hosts, invalid timeperiods) */
#define CHECK_OPTION_FRESHNESS_CHECK    2       /* this is a freshness check */
#define CHECK_OPTION_ORPHAN_CHECK       4       /* this is an orphan check */


/**************************** PROGRAM MODES ******************************/

#define STANDBY_MODE		0	
#define ACTIVE_MODE		1


/************************** LOG ROTATION MODES ***************************/

#define LOG_ROTATION_NONE       0
#define LOG_ROTATION_HOURLY     1
#define LOG_ROTATION_DAILY      2
#define LOG_ROTATION_WEEKLY     3
#define LOG_ROTATION_MONTHLY    4


/***************************** LOG VERSIONS ******************************/

#define LOG_VERSION_1           "1.0"
#define LOG_VERSION_2           "2.0"



/*************************** CHECK STATISTICS ****************************/

#define ACTIVE_SCHEDULED_SERVICE_CHECK_STATS 0
#define ACTIVE_ONDEMAND_SERVICE_CHECK_STATS  1
#define PASSIVE_SERVICE_CHECK_STATS          2
#define ACTIVE_SCHEDULED_HOST_CHECK_STATS    3
#define ACTIVE_ONDEMAND_HOST_CHECK_STATS     4
#define PASSIVE_HOST_CHECK_STATS             5
#define ACTIVE_CACHED_HOST_CHECK_STATS       6
#define ACTIVE_CACHED_SERVICE_CHECK_STATS    7
#define EXTERNAL_COMMAND_STATS               8
#define PARALLEL_HOST_CHECK_STATS            9
#define SERIAL_HOST_CHECK_STATS              10
#define MAX_CHECK_STATS_TYPES                11


/************************* GENERAL DEFINITIONS  **************************/

#define	OK				0
#define ERROR				-2	/* value was changed from -1 so as to not interfere with STATUS_UNKNOWN plugin result */


#ifndef TRUE
#define TRUE				1
#elif (TRUE!=1)
#define TRUE				1
#endif
#ifndef FALSE
#define FALSE				0
#elif (FALSE!=0)
#define FALSE				0
#endif

/** character map initialization for .bss-allocated char maps */
#define CHAR_MAP_INIT(k) { \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, k, \
        }

/****************** HOST CONFIG FILE READING OPTIONS ********************/

#define READ_HOSTS			1
#define READ_HOSTGROUPS			2
#define READ_CONTACTS			4
#define READ_CONTACTGROUPS		8
#define READ_SERVICES			16
#define READ_COMMANDS			32
#define READ_TIMEPERIODS		64
#define READ_SERVICEESCALATIONS		128
#define READ_HOSTGROUPESCALATIONS	256     /* no longer implemented */
#define READ_SERVICEDEPENDENCIES        512
#define READ_HOSTDEPENDENCIES           1024
#define READ_HOSTESCALATIONS            2048
#define READ_HOSTEXTINFO                4096
#define READ_SERVICEEXTINFO             8192
#define READ_SERVICEGROUPS              16384
#define READ_MODULES                    32768

#define READ_ALL_OBJECT_DATA            READ_HOSTS | READ_HOSTGROUPS | READ_CONTACTS | READ_CONTACTGROUPS | READ_SERVICES | READ_COMMANDS | READ_TIMEPERIODS | READ_SERVICEESCALATIONS | READ_SERVICEDEPENDENCIES | READ_HOSTDEPENDENCIES | READ_HOSTESCALATIONS | READ_HOSTEXTINFO | READ_SERVICEEXTINFO | READ_SERVICEGROUPS | READ_MODULES


/************************** DATE RANGE TYPES ****************************/

#define DATERANGE_CALENDAR_DATE  0  /* 2008-12-25 */
#define DATERANGE_MONTH_DATE     1  /* july 4 (specific month) */
#define DATERANGE_MONTH_DAY      2  /* day 21 (generic month) */
#define DATERANGE_MONTH_WEEK_DAY 3  /* 3rd thursday (specific month) */
#define DATERANGE_WEEK_DAY       4  /* 3rd thursday (generic month) */
#define DATERANGE_TYPES          5 


/************************** DATE/TIME TYPES *****************************/

#define LONG_DATE_TIME			0
#define SHORT_DATE_TIME			1
#define SHORT_DATE			2
#define SHORT_TIME			3
#define HTTP_DATE_TIME			4	/* time formatted for use in HTTP headers */


/**************************** DATE FORMATS ******************************/

#define DATE_FORMAT_US                  0       /* U.S. (MM-DD-YYYY HH:MM:SS) */
#define DATE_FORMAT_EURO                1       /* European (DD-MM-YYYY HH:MM:SS) */
#define DATE_FORMAT_ISO8601             2       /* ISO8601 (YYYY-MM-DD HH:MM:SS) */
#define DATE_FORMAT_STRICT_ISO8601      3       /* ISO8601 (YYYY-MM-DDTHH:MM:SS) */


/************************** MISC DEFINITIONS ****************************/

#define MAX_FILENAME_LENGTH			512	/* max length of path/filename that Icinga will process */
#define MAX_INPUT_BUFFER			1024	/* size in bytes of max. input buffer (for reading files, misc stuff) */
#define MAX_COMMAND_BUFFER                      8192    /* max length of raw or processed command line */
#define MAX_EXTERNAL_COMMAND_LENGTH             8192    /* max length of an external command */

#define MAX_DATETIME_LENGTH			48

/************************* MODIFIED ATTRIBUTES **************************/

#define MODATTR_NONE                            0
#define MODATTR_NOTIFICATIONS_ENABLED           1
#define MODATTR_ACTIVE_CHECKS_ENABLED           2
#define MODATTR_PASSIVE_CHECKS_ENABLED          4
#define MODATTR_EVENT_HANDLER_ENABLED           8
#define MODATTR_FLAP_DETECTION_ENABLED          16
#define MODATTR_FAILURE_PREDICTION_ENABLED      32
#define MODATTR_PERFORMANCE_DATA_ENABLED        64
#define MODATTR_OBSESSIVE_HANDLER_ENABLED       128
#define MODATTR_EVENT_HANDLER_COMMAND           256
#define MODATTR_CHECK_COMMAND                   512
#define MODATTR_NORMAL_CHECK_INTERVAL           1024
#define MODATTR_RETRY_CHECK_INTERVAL            2048
#define MODATTR_MAX_CHECK_ATTEMPTS              4096
#define MODATTR_FRESHNESS_CHECKS_ENABLED        8192
#define MODATTR_CHECK_TIMEPERIOD                16384
#define MODATTR_CUSTOM_VARIABLE                 32768
#define MODATTR_NOTIFICATION_TIMEPERIOD         65536