00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "shared.h"
00026
00027 #define PROGRAM_NAME "Icinga"
00028 #define PROGRAM_NAME_UC "ICINGA"
00029 #define PROGRAM_NAME_LC "icinga"
00030 #define PROGRAM_VERSION "1.3.1"
00031 #define PROGRAM_MODIFICATION_DATE "03-31-2011"
00032
00033
00034
00035
00036
00037
00038
00039 #ifdef NSCORE
00040 #ifndef _REENTRANT
00041 #define _REENTRANT
00042 #endif
00043 #ifndef _THREAD_SAFE
00044 #define _THREAD_SAFE
00045 #endif
00046 #endif
00047
00048
00049 #undef USE_MEMORY_PERFORMANCE_TWEAKS
00050
00051
00052 #define my_free(ptr) do { if(ptr) { free(ptr); ptr = NULL; } } while(0)
00053
00054
00055
00056
00057
00058 #define CMD_NONE 0
00059
00060 #define CMD_ADD_HOST_COMMENT 1
00061 #define CMD_DEL_HOST_COMMENT 2
00062
00063 #define CMD_ADD_SVC_COMMENT 3
00064 #define CMD_DEL_SVC_COMMENT 4
00065
00066 #define CMD_ENABLE_SVC_CHECK 5
00067 #define CMD_DISABLE_SVC_CHECK 6
00068
00069 #define CMD_SCHEDULE_SVC_CHECK 7
00070
00071 #define CMD_DELAY_SVC_NOTIFICATION 9
00072
00073 #define CMD_DELAY_HOST_NOTIFICATION 10
00074
00075 #define CMD_DISABLE_NOTIFICATIONS 11
00076 #define CMD_ENABLE_NOTIFICATIONS 12
00077
00078 #define CMD_RESTART_PROCESS 13
00079 #define CMD_SHUTDOWN_PROCESS 14
00080
00081 #define CMD_ENABLE_HOST_SVC_CHECKS 15
00082 #define CMD_DISABLE_HOST_SVC_CHECKS 16
00083
00084 #define CMD_SCHEDULE_HOST_SVC_CHECKS 17
00085
00086 #define CMD_DELAY_HOST_SVC_NOTIFICATIONS 19
00087
00088 #define CMD_DEL_ALL_HOST_COMMENTS 20
00089 #define CMD_DEL_ALL_SVC_COMMENTS 21
00090
00091 #define CMD_ENABLE_SVC_NOTIFICATIONS 22
00092 #define CMD_DISABLE_SVC_NOTIFICATIONS 23
00093 #define CMD_ENABLE_HOST_NOTIFICATIONS 24
00094 #define CMD_DISABLE_HOST_NOTIFICATIONS 25
00095 #define CMD_ENABLE_ALL_NOTIFICATIONS_BEYOND_HOST 26
00096 #define CMD_DISABLE_ALL_NOTIFICATIONS_BEYOND_HOST 27
00097 #define CMD_ENABLE_HOST_SVC_NOTIFICATIONS 28
00098 #define CMD_DISABLE_HOST_SVC_NOTIFICATIONS 29
00099
00100 #define CMD_PROCESS_SERVICE_CHECK_RESULT 30
00101
00102 #define CMD_SAVE_STATE_INFORMATION 31
00103 #define CMD_READ_STATE_INFORMATION 32
00104
00105 #define CMD_ACKNOWLEDGE_HOST_PROBLEM 33
00106 #define CMD_ACKNOWLEDGE_SVC_PROBLEM 34
00107
00108 #define CMD_START_EXECUTING_SVC_CHECKS 35
00109 #define CMD_STOP_EXECUTING_SVC_CHECKS 36
00110
00111 #define CMD_START_ACCEPTING_PASSIVE_SVC_CHECKS 37
00112 #define CMD_STOP_ACCEPTING_PASSIVE_SVC_CHECKS 38
00113
00114 #define CMD_ENABLE_PASSIVE_SVC_CHECKS 39
00115 #define CMD_DISABLE_PASSIVE_SVC_CHECKS 40
00116
00117 #define CMD_ENABLE_EVENT_HANDLERS 41
00118 #define CMD_DISABLE_EVENT_HANDLERS 42
00119
00120 #define CMD_ENABLE_HOST_EVENT_HANDLER 43
00121 #define CMD_DISABLE_HOST_EVENT_HANDLER 44
00122
00123 #define CMD_ENABLE_SVC_EVENT_HANDLER 45
00124 #define CMD_DISABLE_SVC_EVENT_HANDLER 46
00125
00126 #define CMD_ENABLE_HOST_CHECK 47
00127 #define CMD_DISABLE_HOST_CHECK 48
00128
00129 #define CMD_START_OBSESSING_OVER_SVC_CHECKS 49
00130 #define CMD_STOP_OBSESSING_OVER_SVC_CHECKS 50
00131
00132 #define CMD_REMOVE_HOST_ACKNOWLEDGEMENT 51
00133 #define CMD_REMOVE_SVC_ACKNOWLEDGEMENT 52
00134
00135 #define CMD_SCHEDULE_FORCED_HOST_SVC_CHECKS 53
00136 #define CMD_SCHEDULE_FORCED_SVC_CHECK 54
00137
00138 #define CMD_SCHEDULE_HOST_DOWNTIME 55
00139 #define CMD_SCHEDULE_SVC_DOWNTIME 56
00140
00141 #define CMD_ENABLE_HOST_FLAP_DETECTION 57
00142 #define CMD_DISABLE_HOST_FLAP_DETECTION 58
00143
00144 #define CMD_ENABLE_SVC_FLAP_DETECTION 59
00145 #define CMD_DISABLE_SVC_FLAP_DETECTION 60
00146
00147 #define CMD_ENABLE_FLAP_DETECTION 61
00148 #define CMD_DISABLE_FLAP_DETECTION 62
00149
00150 #define CMD_ENABLE_HOSTGROUP_SVC_NOTIFICATIONS 63
00151 #define CMD_DISABLE_HOSTGROUP_SVC_NOTIFICATIONS 64
00152
00153 #define CMD_ENABLE_HOSTGROUP_HOST_NOTIFICATIONS 65
00154 #define CMD_DISABLE_HOSTGROUP_HOST_NOTIFICATIONS 66
00155
00156 #define CMD_ENABLE_HOSTGROUP_SVC_CHECKS 67
00157 #define CMD_DISABLE_HOSTGROUP_SVC_CHECKS 68
00158
00159 #define CMD_CANCEL_HOST_DOWNTIME 69
00160 #define CMD_CANCEL_SVC_DOWNTIME 70
00161
00162 #define CMD_CANCEL_ACTIVE_HOST_DOWNTIME 71
00163 #define CMD_CANCEL_PENDING_HOST_DOWNTIME 72
00164
00165 #define CMD_CANCEL_ACTIVE_SVC_DOWNTIME 73
00166 #define CMD_CANCEL_PENDING_SVC_DOWNTIME 74
00167
00168 #define CMD_CANCEL_ACTIVE_HOST_SVC_DOWNTIME 75
00169 #define CMD_CANCEL_PENDING_HOST_SVC_DOWNTIME 76
00170
00171 #define CMD_FLUSH_PENDING_COMMANDS 77
00172
00173 #define CMD_DEL_HOST_DOWNTIME 78
00174 #define CMD_DEL_SVC_DOWNTIME 79
00175
00176 #define CMD_ENABLE_FAILURE_PREDICTION 80
00177 #define CMD_DISABLE_FAILURE_PREDICTION 81
00178
00179 #define CMD_ENABLE_PERFORMANCE_DATA 82
00180 #define CMD_DISABLE_PERFORMANCE_DATA 83
00181
00182 #define CMD_SCHEDULE_HOSTGROUP_HOST_DOWNTIME 84
00183 #define CMD_SCHEDULE_HOSTGROUP_SVC_DOWNTIME 85
00184 #define CMD_SCHEDULE_HOST_SVC_DOWNTIME 86
00185
00186
00187 #define CMD_PROCESS_HOST_CHECK_RESULT 87
00188
00189 #define CMD_START_EXECUTING_HOST_CHECKS 88
00190 #define CMD_STOP_EXECUTING_HOST_CHECKS 89
00191
00192 #define CMD_START_ACCEPTING_PASSIVE_HOST_CHECKS 90
00193 #define CMD_STOP_ACCEPTING_PASSIVE_HOST_CHECKS 91
00194
00195 #define CMD_ENABLE_PASSIVE_HOST_CHECKS 92
00196 #define CMD_DISABLE_PASSIVE_HOST_CHECKS 93
00197
00198 #define CMD_START_OBSESSING_OVER_HOST_CHECKS 94
00199 #define CMD_STOP_OBSESSING_OVER_HOST_CHECKS 95
00200
00201 #define CMD_SCHEDULE_HOST_CHECK 96
00202 #define CMD_SCHEDULE_FORCED_HOST_CHECK 98
00203
00204 #define CMD_START_OBSESSING_OVER_SVC 99
00205 #define CMD_STOP_OBSESSING_OVER_SVC 100
00206
00207 #define CMD_START_OBSESSING_OVER_HOST 101
00208 #define CMD_STOP_OBSESSING_OVER_HOST 102
00209
00210 #define CMD_ENABLE_HOSTGROUP_HOST_CHECKS 103
00211 #define CMD_DISABLE_HOSTGROUP_HOST_CHECKS 104
00212
00213 #define CMD_ENABLE_HOSTGROUP_PASSIVE_SVC_CHECKS 105
00214 #define CMD_DISABLE_HOSTGROUP_PASSIVE_SVC_CHECKS 106
00215
00216 #define CMD_ENABLE_HOSTGROUP_PASSIVE_HOST_CHECKS 107
00217 #define CMD_DISABLE_HOSTGROUP_PASSIVE_HOST_CHECKS 108
00218
00219 #define CMD_ENABLE_SERVICEGROUP_SVC_NOTIFICATIONS 109
00220 #define CMD_DISABLE_SERVICEGROUP_SVC_NOTIFICATIONS 110
00221
00222 #define CMD_ENABLE_SERVICEGROUP_HOST_NOTIFICATIONS 111
00223 #define CMD_DISABLE_SERVICEGROUP_HOST_NOTIFICATIONS 112
00224
00225 #define CMD_ENABLE_SERVICEGROUP_SVC_CHECKS 113
00226 #define CMD_DISABLE_SERVICEGROUP_SVC_CHECKS 114
00227
00228 #define CMD_ENABLE_SERVICEGROUP_HOST_CHECKS 115
00229 #define CMD_DISABLE_SERVICEGROUP_HOST_CHECKS 116
00230
00231 #define CMD_ENABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS 117
00232 #define CMD_DISABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS 118
00233
00234 #define CMD_ENABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS 119
00235 #define CMD_DISABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS 120
00236
00237 #define CMD_SCHEDULE_SERVICEGROUP_HOST_DOWNTIME 121
00238 #define CMD_SCHEDULE_SERVICEGROUP_SVC_DOWNTIME 122
00239
00240 #define CMD_CHANGE_GLOBAL_HOST_EVENT_HANDLER 123
00241 #define CMD_CHANGE_GLOBAL_SVC_EVENT_HANDLER 124
00242
00243 #define CMD_CHANGE_HOST_EVENT_HANDLER 125
00244 #define CMD_CHANGE_SVC_EVENT_HANDLER 126
00245
00246 #define CMD_CHANGE_HOST_CHECK_COMMAND 127
00247 #define CMD_CHANGE_SVC_CHECK_COMMAND 128
00248
00249 #define CMD_CHANGE_NORMAL_HOST_CHECK_INTERVAL 129
00250 #define CMD_CHANGE_NORMAL_SVC_CHECK_INTERVAL 130
00251 #define CMD_CHANGE_RETRY_SVC_CHECK_INTERVAL 131
00252
00253 #define CMD_CHANGE_MAX_HOST_CHECK_ATTEMPTS 132
00254 #define CMD_CHANGE_MAX_SVC_CHECK_ATTEMPTS 133
00255
00256 #define CMD_SCHEDULE_AND_PROPAGATE_TRIGGERED_HOST_DOWNTIME 134
00257
00258 #define CMD_ENABLE_HOST_AND_CHILD_NOTIFICATIONS 135
00259 #define CMD_DISABLE_HOST_AND_CHILD_NOTIFICATIONS 136
00260
00261 #define CMD_SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME 137
00262
00263 #define CMD_ENABLE_SERVICE_FRESHNESS_CHECKS 138
00264 #define CMD_DISABLE_SERVICE_FRESHNESS_CHECKS 139
00265
00266 #define CMD_ENABLE_HOST_FRESHNESS_CHECKS 140
00267 #define CMD_DISABLE_HOST_FRESHNESS_CHECKS 141
00268
00269 #define CMD_SET_HOST_NOTIFICATION_NUMBER 142
00270 #define CMD_SET_SVC_NOTIFICATION_NUMBER 143
00271
00272
00273 #define CMD_CHANGE_HOST_CHECK_TIMEPERIOD 144
00274 #define CMD_CHANGE_SVC_CHECK_TIMEPERIOD 145
00275
00276 #define CMD_PROCESS_FILE 146
00277
00278 #define CMD_CHANGE_CUSTOM_HOST_VAR 147
00279 #define CMD_CHANGE_CUSTOM_SVC_VAR 148
00280 #define CMD_CHANGE_CUSTOM_CONTACT_VAR 149
00281
00282 #define CMD_ENABLE_CONTACT_HOST_NOTIFICATIONS 150
00283 #define CMD_DISABLE_CONTACT_HOST_NOTIFICATIONS 151
00284 #define CMD_ENABLE_CONTACT_SVC_NOTIFICATIONS 152
00285 #define CMD_DISABLE_CONTACT_SVC_NOTIFICATIONS 153
00286
00287 #define CMD_ENABLE_CONTACTGROUP_HOST_NOTIFICATIONS 154
00288 #define CMD_DISABLE_CONTACTGROUP_HOST_NOTIFICATIONS 155
00289 #define CMD_ENABLE_CONTACTGROUP_SVC_NOTIFICATIONS 156
00290 #define CMD_DISABLE_CONTACTGROUP_SVC_NOTIFICATIONS 157
00291
00292 #define CMD_CHANGE_RETRY_HOST_CHECK_INTERVAL 158
00293
00294 #define CMD_SEND_CUSTOM_HOST_NOTIFICATION 159
00295 #define CMD_SEND_CUSTOM_SVC_NOTIFICATION 160
00296
00297 #define CMD_CHANGE_HOST_NOTIFICATION_TIMEPERIOD 161
00298 #define CMD_CHANGE_SVC_NOTIFICATION_TIMEPERIOD 162
00299 #define CMD_CHANGE_CONTACT_HOST_NOTIFICATION_TIMEPERIOD 163
00300 #define CMD_CHANGE_CONTACT_SVC_NOTIFICATION_TIMEPERIOD 164
00301
00302 #define CMD_CHANGE_HOST_MODATTR 165
00303 #define CMD_CHANGE_SVC_MODATTR 166
00304 #define CMD_CHANGE_CONTACT_MODATTR 167
00305 #define CMD_CHANGE_CONTACT_MODHATTR 168
00306 #define CMD_CHANGE_CONTACT_MODSATTR 169
00307
00308 #define CMD_SYNC_STATE_INFORMATION 170
00309
00310
00311 #define CMD_CUSTOM_COMMAND 999
00312
00313
00314
00315
00316
00317 #define SERVICE_CHECK_ACTIVE 0
00318 #define SERVICE_CHECK_PASSIVE 1
00319
00320
00321
00322
00323 #define HOST_CHECK_ACTIVE 0
00324 #define HOST_CHECK_PASSIVE 1
00325
00326
00327
00328
00329 #define SOFT_STATE 0
00330 #define HARD_STATE 1
00331
00332
00333
00334
00335 #define SERVICE_DOWNTIME 1
00336 #define HOST_DOWNTIME 2
00337 #define ANY_DOWNTIME 3
00338
00339
00340
00341
00342 #define NOTIFICATION_OPTION_NONE 0
00343 #define NOTIFICATION_OPTION_BROADCAST 1
00344 #define NOTIFICATION_OPTION_FORCED 2
00345 #define NOTIFICATION_OPTION_INCREMENT 4
00346
00347
00348
00349
00350 #define HOST_ACKNOWLEDGEMENT 0
00351 #define SERVICE_ACKNOWLEDGEMENT 1
00352
00353 #define ACKNOWLEDGEMENT_NONE 0
00354 #define ACKNOWLEDGEMENT_NORMAL 1
00355 #define ACKNOWLEDGEMENT_STICKY 2
00356
00357
00358
00359
00360 #define NOTIFICATION_DEPENDENCY 1
00361 #define EXECUTION_DEPENDENCY 2
00362
00363
00364
00365
00366
00367 #define CHECK_OPTION_NONE 0
00368 #define CHECK_OPTION_FORCE_EXECUTION 1
00369 #define CHECK_OPTION_FRESHNESS_CHECK 2
00370 #define CHECK_OPTION_ORPHAN_CHECK 4
00371
00372
00373
00374
00375 #define STANDBY_MODE 0
00376 #define ACTIVE_MODE 1
00377
00378
00379
00380
00381 #define LOG_ROTATION_NONE 0
00382 #define LOG_ROTATION_HOURLY 1
00383 #define LOG_ROTATION_DAILY 2
00384 #define LOG_ROTATION_WEEKLY 3
00385 #define LOG_ROTATION_MONTHLY 4
00386
00387
00388
00389
00390 #define LOG_VERSION_1 "1.0"
00391 #define LOG_VERSION_2 "2.0"
00392
00393
00394
00395
00396
00397 #define ACTIVE_SCHEDULED_SERVICE_CHECK_STATS 0
00398 #define ACTIVE_ONDEMAND_SERVICE_CHECK_STATS 1
00399 #define PASSIVE_SERVICE_CHECK_STATS 2
00400 #define ACTIVE_SCHEDULED_HOST_CHECK_STATS 3
00401 #define ACTIVE_ONDEMAND_HOST_CHECK_STATS 4
00402 #define PASSIVE_HOST_CHECK_STATS 5
00403 #define ACTIVE_CACHED_HOST_CHECK_STATS 6
00404 #define ACTIVE_CACHED_SERVICE_CHECK_STATS 7
00405 #define EXTERNAL_COMMAND_STATS 8
00406 #define PARALLEL_HOST_CHECK_STATS 9
00407 #define SERIAL_HOST_CHECK_STATS 10
00408 #define MAX_CHECK_STATS_TYPES 11
00409
00410
00411
00412
00413 #define OK 0
00414 #define ERROR -2
00415
00416
00417 #ifndef TRUE
00418 #define TRUE 1
00419 #elif (TRUE!=1)
00420 #define TRUE 1
00421 #endif
00422 #ifndef FALSE
00423 #define FALSE 0
00424 #elif (FALSE!=0)
00425 #define FALSE 0
00426 #endif
00427
00428
00429
00430
00431 #define READ_HOSTS 1
00432 #define READ_HOSTGROUPS 2
00433 #define READ_CONTACTS 4
00434 #define READ_CONTACTGROUPS 8
00435 #define READ_SERVICES 16
00436 #define READ_COMMANDS 32
00437 #define READ_TIMEPERIODS 64
00438 #define READ_SERVICEESCALATIONS 128
00439 #define READ_HOSTGROUPESCALATIONS 256
00440 #define READ_SERVICEDEPENDENCIES 512
00441 #define READ_HOSTDEPENDENCIES 1024
00442 #define READ_HOSTESCALATIONS 2048
00443 #define READ_HOSTEXTINFO 4096
00444 #define READ_SERVICEEXTINFO 8192
00445 #define READ_SERVICEGROUPS 16384
00446
00447 #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
00448
00449
00450
00451
00452 #define DATERANGE_CALENDAR_DATE 0
00453 #define DATERANGE_MONTH_DATE 1
00454 #define DATERANGE_MONTH_DAY 2
00455 #define DATERANGE_MONTH_WEEK_DAY 3
00456 #define DATERANGE_WEEK_DAY 4
00457 #define DATERANGE_TYPES 5
00458
00459
00460
00461
00462 #define LONG_DATE_TIME 0
00463 #define SHORT_DATE_TIME 1
00464 #define SHORT_DATE 2
00465 #define SHORT_TIME 3
00466 #define HTTP_DATE_TIME 4
00467
00468
00469
00470
00471 #define DATE_FORMAT_US 0
00472 #define DATE_FORMAT_EURO 1
00473 #define DATE_FORMAT_ISO8601 2
00474 #define DATE_FORMAT_STRICT_ISO8601 3
00475
00476
00477
00478
00479 #define MAX_FILENAME_LENGTH 256
00480 #define MAX_INPUT_BUFFER 1024
00481 #define MAX_COMMAND_BUFFER 8192
00482 #define MAX_EXTERNAL_COMMAND_LENGTH 8192
00483
00484 #define MAX_DATETIME_LENGTH 48
00485
00486
00487
00488
00489 #define MODATTR_NONE 0
00490 #define MODATTR_NOTIFICATIONS_ENABLED 1
00491 #define MODATTR_ACTIVE_CHECKS_ENABLED 2
00492 #define MODATTR_PASSIVE_CHECKS_ENABLED 4
00493 #define MODATTR_EVENT_HANDLER_ENABLED 8
00494 #define MODATTR_FLAP_DETECTION_ENABLED 16
00495 #define MODATTR_FAILURE_PREDICTION_ENABLED 32
00496 #define MODATTR_PERFORMANCE_DATA_ENABLED 64
00497 #define MODATTR_OBSESSIVE_HANDLER_ENABLED 128
00498 #define MODATTR_EVENT_HANDLER_COMMAND 256
00499 #define MODATTR_CHECK_COMMAND 512
00500 #define MODATTR_NORMAL_CHECK_INTERVAL 1024
00501 #define MODATTR_RETRY_CHECK_INTERVAL 2048
00502 #define MODATTR_MAX_CHECK_ATTEMPTS 4096
00503 #define MODATTR_FRESHNESS_CHECKS_ENABLED 8192
00504 #define MODATTR_CHECK_TIMEPERIOD 16384
00505 #define MODATTR_CUSTOM_VARIABLE 32768
00506 #define MODATTR_NOTIFICATION_TIMEPERIOD 65536
00507
00508