Icinga-core 1.4.0
next gen monitoring
base/utils.c File Reference
#include "../include/config.h"
#include "../include/common.h"
#include "../include/objects.h"
#include "../include/statusdata.h"
#include "../include/comments.h"
#include "../include/macros.h"
#include "../include/icinga.h"
#include "../include/netutils.h"
#include "../include/broker.h"
#include "../include/nebmods.h"
#include "../include/nebmodules.h"

Go to the source code of this file.

Functions

int my_system_r (icinga_macros *mac, char *cmd, int timeout, int *early_timeout, double *exectime, char **output, int max_output_length)
int my_system (char *cmd, int timeout, int *early_timeout, double *exectime, char **output, int max_output_length)
int get_raw_command_line_r (icinga_macros *mac, command *cmd_ptr, char *cmd, char **full_command, int macro_options)
int get_raw_command_line (command *cmd_ptr, char *cmd, char **full_command, int macro_options)
int set_environment_var (char *name, char *value, int set)
int is_dlst_time (time_t *time)
int get_dlst_shift (time_t *start, time_t *end)
int check_time_against_period (time_t test_time, timeperiod *tperiod)
void _get_next_valid_time (time_t pref_time, time_t current_time, time_t *valid_time, timeperiod *tperiod)
void get_earliest_time (time_t pref_time, time_t *valid_time, time_t current_time, timeperiod *tperiod, int level)
void _get_next_valid_time_per_timeperiod (time_t pref_time, time_t *valid_time, time_t current_time, timeperiod *tperiod)
void get_min_invalid_time_per_timeperiod (time_t pref_time, time_t *valid_time, time_t current_time, timeperiod *tperiod)
void get_next_valid_time (time_t pref_time, time_t *valid_time, timeperiod *tperiod)
int is_daterange_single_day (daterange *dr)
time_t calculate_time_from_day_of_month (int year, int month, int monthday)
time_t calculate_time_from_weekday_of_month (int year, int month, int weekday, int weekday_offset)
time_t get_next_log_rotation_time (void)
void setup_sighandler (void)
void reset_sighandler (void)
void sighandler (int sig)
void service_check_sighandler (int sig)
void host_check_sighandler (int sig)
void my_system_sighandler (int sig)
int daemon_init (void)
int drop_privileges (char *user, char *group)
int move_check_result_to_queue (char *checkresult_file)
int process_check_result_queue (char *dirname)
int process_check_result_file (char *fname)
int delete_check_result_file (char *fname)
check_resultread_check_result (void)
int init_check_result (check_result *info)
int add_check_result_to_list (check_result *new_cr)
int free_check_result_list (void)
int free_check_result (check_result *info)
int parse_check_output (char *buf, char **short_output, char **long_output, char **perf_data, int escape_newlines_please, int newlines_are_escaped)
int open_command_file (void)
int close_command_file (void)
char * get_next_string_from_buf (char *buf, int *start_index, int bufsize)
int contains_illegal_object_chars (char *name)
char * escape_newlines (char *rawbuf)
int compare_strings (char *val1a, char *val2a)
int my_rename (char *source, char *dest)
int my_fdcopy (char *source, char *dest, int dest_fd)
int my_fcopy (char *source, char *dest)
int dbuf_init (dbuf *db, int chunk_size)
int dbuf_free (dbuf *db)
int dbuf_strcat (dbuf *db, char *buf)
int init_embedded_perl (char **env)
int deinit_embedded_perl (void)
int file_uses_embedded_perl (char *fname)
int init_command_file_worker_thread (void)
int shutdown_command_file_worker_thread (void)
void cleanup_command_file_worker_thread (void *arg)
void * command_file_worker_thread (void *arg)
int submit_external_command (char *cmd, int *buffer_items)
int submit_raw_external_command (char *cmd, time_t *ts, int *buffer_items)
int init_check_stats (void)
int update_check_stats (int check_type, time_t check_time)
int generate_check_stats (void)
char * get_program_version (void)
char * get_program_modification_date (void)
int has_shell_metachars (const char *s)
void cleanup (void)
void free_memory (icinga_macros *mac)
void free_notification_list (void)
int reset_variables (void)

Variables

char * config_file
char * log_file
char * command_file
char * temp_file
char * temp_path
char * check_result_path
char * lock_file
char * log_archive_path
char * auth_file
char * p1_file
char * nagios_user
char * nagios_group
char * macro_x_names [MACRO_X_COUNT]
char * macro_user [MAX_USER_MACROS]
customvariablesmembermacro_custom_host_vars
customvariablesmembermacro_custom_service_vars
customvariablesmembermacro_custom_contact_vars
hostmacro_host_ptr
hostgroupmacro_hostgroup_ptr
servicemacro_service_ptr
servicegroupmacro_servicegroup_ptr
contactmacro_contact_ptr
contactgroupmacro_contactgroup_ptr
char * global_host_event_handler
char * global_service_event_handler
commandglobal_host_event_handler_ptr
commandglobal_service_event_handler_ptr
char * ocsp_command
char * ochp_command
commandocsp_command_ptr
commandochp_command_ptr
char * illegal_object_chars
char * illegal_output_chars
int use_regexp_matches
int use_true_regexp_matching
int sigshutdown
int sigrestart
char * sigs [35]
int caught_signal
int sig_id
int daemon_mode
int daemon_dumps_core
int nagios_pid
int use_daemon_log
int use_syslog
int use_syslog_local_facility
int syslog_local_facility
int log_notifications
int log_service_retries
int log_host_retries
int log_event_handlers
int log_external_commands
int log_external_commands_user
int log_passive_checks
unsigned long logging_options
unsigned long syslog_options
int service_check_timeout
int service_check_timeout_state
int host_check_timeout
int event_handler_timeout
int notification_timeout
int ocsp_timeout
int ochp_timeout
int log_initial_states
double sleep_time
int interval_length
int service_inter_check_delay_method
int host_inter_check_delay_method
int service_interleave_factor_method
int max_host_check_spread
int max_service_check_spread
int command_check_interval
int check_reaper_interval
int max_check_reaper_time
int service_freshness_check_interval
int host_freshness_check_interval
int auto_rescheduling_interval
int auto_rescheduling_window
int check_external_commands
int check_orphaned_services
int check_orphaned_hosts
int check_service_freshness
int check_host_freshness
int auto_reschedule_checks
int additional_freshness_latency
int use_aggressive_host_checking
unsigned long cached_host_check_horizon
unsigned long cached_service_check_horizon
int enable_predictive_host_dependency_checks
int enable_predictive_service_dependency_checks
int soft_state_dependencies
int retain_state_information
int retention_update_interval
int use_retained_program_state
int use_retained_scheduling_info
int retention_scheduling_horizon
unsigned long modified_host_process_attributes
unsigned long modified_service_process_attributes
unsigned long retained_host_attribute_mask
unsigned long retained_service_attribute_mask
unsigned long retained_contact_host_attribute_mask
unsigned long retained_contact_service_attribute_mask
unsigned long retained_process_host_attribute_mask
unsigned long retained_process_service_attribute_mask
unsigned long next_comment_id
unsigned long next_downtime_id
unsigned long next_event_id
unsigned long next_notification_id
int log_rotation_method
time_t program_start
time_t last_command_check
time_t last_command_status_update
time_t last_log_rotation
int verify_config
int test_scheduling
check_result check_result_info
int max_parallel_service_checks
int currently_running_service_checks
int enable_notifications
int execute_service_checks
int accept_passive_service_checks
int execute_host_checks
int accept_passive_host_checks
int enable_event_handlers
int obsess_over_services
int obsess_over_hosts
int enable_failure_prediction
int process_performance_data
int translate_passive_host_checks
int passive_host_checks_are_soft
int aggregate_status_updates
int status_update_interval
int time_change_threshold
unsigned long event_broker_options
int enable_flap_detection
double low_service_flap_threshold
double high_service_flap_threshold
double low_host_flap_threshold
double high_host_flap_threshold
int use_large_installation_tweaks
int enable_environment_macros
int free_child_process_memory
int child_processes_fork_twice
int enable_embedded_perl
int use_embedded_perl_implicitly
int stalking_event_handlers_for_hosts
int stalking_event_handlers_for_services
int date_format
contactcontact_list
contactgroupcontactgroup_list
hosthost_list
hostgrouphostgroup_list
serviceservice_list
servicegroupservicegroup_list
timed_eventevent_list_high
timed_eventevent_list_low
notificationnotification_list
commandcommand_list
timeperiodtimeperiod_list
int command_file_fd
FILE * command_file_fp
int command_file_created
check_resultcheck_result_list
unsigned long max_check_result_file_age
dbuf check_result_dbuf
pthread_t worker_threads [TOTAL_WORKER_THREADS]
circular_buffer external_command_buffer
circular_buffer check_result_buffer
circular_buffer event_broker_buffer
int external_command_buffer_slots
check_stats check_statistics [MAX_CHECK_STATS_TYPES]
char * debug_file
int debug_level
int debug_verbosity
unsigned long max_debug_file_size
int errno
int dummy

Function Documentation

void _get_next_valid_time ( time_t  pref_time,
time_t  current_time,
time_t *  valid_time,
timeperiod tperiod 
)

Definition at line 1117 of file utils.c.

void _get_next_valid_time_per_timeperiod ( time_t  pref_time,
time_t *  valid_time,
time_t  current_time,
timeperiod tperiod 
)

Definition at line 1166 of file utils.c.

int add_check_result_to_list ( check_result new_cr)

Definition at line 2922 of file utils.c.

time_t calculate_time_from_day_of_month ( int  year,
int  month,
int  monthday 
)

Definition at line 1948 of file utils.c.

time_t calculate_time_from_weekday_of_month ( int  year,
int  month,
int  weekday,
int  weekday_offset 
)

Definition at line 2018 of file utils.c.

int check_time_against_period ( time_t  test_time,
timeperiod tperiod 
)

Definition at line 836 of file utils.c.

void cleanup ( void  )

Definition at line 4341 of file utils.c.

void cleanup_command_file_worker_thread ( void *  arg)

Definition at line 3838 of file utils.c.

int close_command_file ( void  )

Definition at line 3259 of file utils.c.

void* command_file_worker_thread ( void *  arg)

Definition at line 3853 of file utils.c.

int compare_strings ( char *  val1a,
char *  val2a 
)

Definition at line 3376 of file utils.c.

int contains_illegal_object_chars ( char *  name)

Definition at line 3315 of file utils.c.

int daemon_init ( void  )

Definition at line 2316 of file utils.c.

int dbuf_free ( dbuf db)

Definition at line 3560 of file utils.c.

int dbuf_init ( dbuf db,
int  chunk_size 
)

Definition at line 3545 of file utils.c.

int dbuf_strcat ( dbuf db,
char *  buf 
)

Definition at line 3576 of file utils.c.

int deinit_embedded_perl ( void  )

Definition at line 3677 of file utils.c.

int delete_check_result_file ( char *  fname)

Definition at line 2856 of file utils.c.

int drop_privileges ( char *  user,
char *  group 
)

Definition at line 2446 of file utils.c.

char* escape_newlines ( char *  rawbuf)

Definition at line 3341 of file utils.c.

int file_uses_embedded_perl ( char *  fname)

Definition at line 3691 of file utils.c.

int free_check_result ( check_result info)

Definition at line 2981 of file utils.c.

int free_check_result_list ( void  )

Definition at line 2962 of file utils.c.

void free_memory ( icinga_macros mac)

Definition at line 4361 of file utils.c.

void free_notification_list ( void  )

Definition at line 4444 of file utils.c.

int generate_check_stats ( void  )

Definition at line 4172 of file utils.c.

int get_dlst_shift ( time_t *  start,
time_t *  end 
)

Definition at line 821 of file utils.c.

void get_earliest_time ( time_t  pref_time,
time_t *  valid_time,
time_t  current_time,
timeperiod tperiod,
int  level 
)

Definition at line 1137 of file utils.c.

void get_min_invalid_time_per_timeperiod ( time_t  pref_time,
time_t *  valid_time,
time_t  current_time,
timeperiod tperiod 
)

Definition at line 1564 of file utils.c.

time_t get_next_log_rotation_time ( void  )

Definition at line 2098 of file utils.c.

char* get_next_string_from_buf ( char *  buf,
int *  start_index,
int  bufsize 
)

Definition at line 3286 of file utils.c.

void get_next_valid_time ( time_t  pref_time,
time_t *  valid_time,
timeperiod tperiod 
)

Definition at line 1912 of file utils.c.

char* get_program_modification_date ( void  )

Definition at line 4323 of file utils.c.

char* get_program_version ( void  )

Definition at line 4316 of file utils.c.

int get_raw_command_line ( command cmd_ptr,
char *  cmd,
char **  full_command,
int  macro_options 
)

Definition at line 761 of file utils.c.

int get_raw_command_line_r ( icinga_macros mac,
command cmd_ptr,
char *  cmd,
char **  full_command,
int  macro_options 
)

Definition at line 682 of file utils.c.

int has_shell_metachars ( const char *  s)

Definition at line 4328 of file utils.c.

void host_check_sighandler ( int  sig)

Definition at line 2264 of file utils.c.

int init_check_result ( check_result info)

Definition at line 2889 of file utils.c.

int init_check_stats ( void  )

Definition at line 4070 of file utils.c.

int init_command_file_worker_thread ( void  )

Definition at line 3770 of file utils.c.

int init_embedded_perl ( char **  env)

Definition at line 3624 of file utils.c.

int is_daterange_single_day ( daterange dr)

Definition at line 1926 of file utils.c.

int is_dlst_time ( time_t *  time)

Definition at line 815 of file utils.c.

int move_check_result_to_queue ( char *  checkresult_file)

Definition at line 2537 of file utils.c.

int my_fcopy ( char *  source,
char *  dest 
)

Definition at line 3518 of file utils.c.

int my_fdcopy ( char *  source,
char *  dest,
int  dest_fd 
)

Definition at line 3433 of file utils.c.

int my_rename ( char *  source,
char *  dest 
)

Definition at line 3388 of file utils.c.

int my_system ( char *  cmd,
int  timeout,
int *  early_timeout,
double *  exectime,
char **  output,
int  max_output_length 
)

Definition at line 676 of file utils.c.

int my_system_r ( icinga_macros mac,
char *  cmd,
int  timeout,
int *  early_timeout,
double *  exectime,
char **  output,
int  max_output_length 
)

Definition at line 292 of file utils.c.

void my_system_sighandler ( int  sig)

Definition at line 2303 of file utils.c.

int open_command_file ( void  )

Definition at line 3194 of file utils.c.

int parse_check_output ( char *  buf,
char **  short_output,
char **  long_output,
char **  perf_data,
int  escape_newlines_please,
int  newlines_are_escaped 
)

Definition at line 2997 of file utils.c.

int process_check_result_file ( char *  fname)

Definition at line 2682 of file utils.c.

int process_check_result_queue ( char *  dirname)

Definition at line 2600 of file utils.c.

check_result* read_check_result ( void  )

Definition at line 2874 of file utils.c.

void reset_sighandler ( void  )

Definition at line 2173 of file utils.c.

int reset_variables ( void  )

Definition at line 4463 of file utils.c.

void service_check_sighandler ( int  sig)

Definition at line 2224 of file utils.c.

int set_environment_var ( char *  name,
char *  value,
int  set 
)

Definition at line 775 of file utils.c.

void setup_sighandler ( void  )

Definition at line 2150 of file utils.c.

int shutdown_command_file_worker_thread ( void  )

Definition at line 3806 of file utils.c.

void sighandler ( int  sig)

Definition at line 2187 of file utils.c.

int submit_external_command ( char *  cmd,
int *  buffer_items 
)

Definition at line 3996 of file utils.c.

int submit_raw_external_command ( char *  cmd,
time_t *  ts,
int *  buffer_items 
)

Definition at line 4037 of file utils.c.

int update_check_stats ( int  check_type,
time_t  check_time 
)

Definition at line 4089 of file utils.c.


Variable Documentation

Definition at line 206 of file icinga.c.

Definition at line 204 of file icinga.c.

Definition at line 140 of file icinga.c.

Definition at line 215 of file icinga.c.

char* auth_file

Definition at line 71 of file icinga.c.

Definition at line 137 of file icinga.c.

Definition at line 130 of file icinga.c.

Definition at line 138 of file icinga.c.

Definition at line 147 of file icinga.c.

Definition at line 148 of file icinga.c.

Definition at line 179 of file icinga.c.

Definition at line 132 of file icinga.c.

Definition at line 136 of file icinga.c.

Definition at line 134 of file icinga.c.

Definition at line 133 of file icinga.c.

Definition at line 126 of file icinga.c.

Definition at line 274 of file icinga.c.

Definition at line 271 of file icinga.c.

Definition at line 267 of file icinga.c.

Definition at line 268 of file icinga.c.

Definition at line 51 of file utils.c.

Definition at line 135 of file icinga.c.

check_stats check_statistics[MAX_CHECK_STATS_TYPES]

Definition at line 278 of file icinga.c.

Definition at line 234 of file icinga.c.

Definition at line 125 of file icinga.c.

char* command_file

Definition at line 64 of file icinga.c.

Definition at line 250 of file icinga.c.

Definition at line 248 of file icinga.c.

Definition at line 249 of file icinga.c.

Definition at line 58 of file objects.c.

char* config_file

Definition at line 62 of file icinga.c.

Definition at line 54 of file objects.c.

Definition at line 55 of file objects.c.

Definition at line 196 of file icinga.c.

Definition at line 193 of file icinga.c.

Definition at line 192 of file icinga.c.

Definition at line 243 of file icinga.c.

char* debug_file

Definition at line 280 of file icinga.c.

Definition at line 281 of file icinga.c.

Definition at line 282 of file icinga.c.

int dummy

Definition at line 284 of file utils.c.

Definition at line 236 of file icinga.c.

Definition at line 232 of file icinga.c.

Definition at line 207 of file icinga.c.

Definition at line 210 of file icinga.c.

Definition at line 224 of file icinga.c.

Definition at line 202 of file icinga.c.

Definition at line 149 of file icinga.c.

Definition at line 150 of file icinga.c.

int errno
unsigned long event_broker_options

Definition at line 220 of file icinga.c.

Definition at line 112 of file icinga.c.

Definition at line 100 of file events.c.

Definition at line 98 of file events.c.

Definition at line 205 of file icinga.c.

Definition at line 203 of file icinga.c.

Definition at line 273 of file icinga.c.

Definition at line 276 of file icinga.c.

Definition at line 233 of file icinga.c.

Definition at line 75 of file icinga.c.

Definition at line 77 of file icinga.c.

Definition at line 76 of file icinga.c.

Definition at line 78 of file icinga.c.

Definition at line 229 of file icinga.c.

Definition at line 227 of file icinga.c.

Definition at line 111 of file icinga.c.

Definition at line 129 of file icinga.c.

Definition at line 120 of file icinga.c.

Definition at line 52 of file objects.c.

Definition at line 56 of file objects.c.

Definition at line 85 of file icinga.c.

Definition at line 86 of file icinga.c.

Definition at line 118 of file icinga.c.

Definition at line 142 of file icinga.c.

Definition at line 143 of file icinga.c.

Definition at line 144 of file icinga.c.

char* lock_file

Definition at line 68 of file icinga.c.

Definition at line 69 of file icinga.c.

Definition at line 98 of file icinga.c.

Definition at line 101 of file icinga.c.

Definition at line 102 of file icinga.c.

char* log_file

Definition at line 63 of file icinga.c.

Definition at line 97 of file icinga.c.

Definition at line 99 of file icinga.c.

Definition at line 95 of file icinga.c.

Definition at line 103 of file icinga.c.

readlogs.c

Definition at line 174 of file icinga.c.

Definition at line 96 of file icinga.c.

unsigned long logging_options

Definition at line 106 of file icinga.c.

Definition at line 228 of file icinga.c.

Definition at line 226 of file icinga.c.

char* macro_user[MAX_USER_MACROS]

Definition at line 57 of file macros.c.

char* macro_x_names[MACRO_X_COUNT]

Definition at line 56 of file macros.c.

Definition at line 127 of file icinga.c.

Definition at line 269 of file icinga.c.

unsigned long max_debug_file_size

Definition at line 283 of file icinga.c.

Definition at line 122 of file icinga.c.

Definition at line 195 of file icinga.c.

Definition at line 123 of file icinga.c.

Definition at line 159 of file icinga.c.

Definition at line 160 of file icinga.c.

char* nagios_group

Definition at line 73 of file icinga.c.

Definition at line 201 of file icinga.c.

char* nagios_user

Definition at line 72 of file icinga.c.

unsigned long next_comment_id

Definition at line 168 of file icinga.c.

unsigned long next_downtime_id

Definition at line 169 of file icinga.c.

unsigned long next_event_id

Definition at line 170 of file icinga.c.

unsigned long next_notification_id

Definition at line 172 of file icinga.c.

Definition at line 265 of file icinga.c.

Definition at line 113 of file icinga.c.

Definition at line 209 of file icinga.c.

Definition at line 208 of file icinga.c.

char* ochp_command

Definition at line 81 of file icinga.c.

Definition at line 83 of file icinga.c.

Definition at line 115 of file icinga.c.

char* ocsp_command

Definition at line 80 of file icinga.c.

Definition at line 82 of file icinga.c.

Definition at line 114 of file icinga.c.

char* p1_file

Definition at line 70 of file icinga.c.

Definition at line 213 of file icinga.c.

Definition at line 215 of file utils.c.

time_t program_start

Definition at line 199 of file icinga.c.

Definition at line 154 of file icinga.c.

Definition at line 163 of file icinga.c.

Definition at line 164 of file icinga.c.

Definition at line 161 of file icinga.c.

Definition at line 165 of file icinga.c.

Definition at line 166 of file icinga.c.

Definition at line 162 of file icinga.c.

Definition at line 158 of file icinga.c.

Definition at line 155 of file icinga.c.

Definition at line 109 of file icinga.c.

Definition at line 110 of file icinga.c.

Definition at line 128 of file icinga.c.

Definition at line 119 of file icinga.c.

Definition at line 121 of file icinga.c.

Definition at line 53 of file objects.c.

Definition at line 57 of file objects.c.

int sig_id

Definition at line 180 of file icinga.c.

Definition at line 177 of file icinga.c.

char* sigs[35]

Definition at line 178 of file icinga.c.

Definition at line 176 of file icinga.c.

double sleep_time

Definition at line 117 of file icinga.c.

Definition at line 152 of file icinga.c.

Definition at line 240 of file icinga.c.

Definition at line 241 of file icinga.c.

Definition at line 216 of file icinga.c.

Definition at line 94 of file icinga.c.

unsigned long syslog_options

Definition at line 107 of file icinga.c.

char* temp_file

Definition at line 65 of file icinga.c.

char* temp_path

Definition at line 66 of file icinga.c.

Definition at line 187 of file icinga.c.

Definition at line 218 of file icinga.c.

Definition at line 59 of file objects.c.

Definition at line 212 of file icinga.c.

Definition at line 146 of file icinga.c.

Definition at line 91 of file icinga.c.

Definition at line 237 of file icinga.c.

Definition at line 231 of file icinga.c.

Definition at line 88 of file icinga.c.

Definition at line 156 of file icinga.c.

Definition at line 157 of file icinga.c.

Definition at line 92 of file icinga.c.

Definition at line 93 of file icinga.c.

Definition at line 89 of file icinga.c.

Definition at line 184 of file icinga.c.

pthread_t worker_threads[TOTAL_WORKER_THREADS]

Definition at line 275 of file icinga.c.

 All Data Structures Files Functions Variables Typedefs Defines