Icinga-core 1.4.0
next gen monitoring
common/macros.c File Reference
#include "../include/macros.h"
#include "../include/config.h"
#include "../include/common.h"
#include "../include/objects.h"
#include "../include/statusdata.h"
#include "../include/comments.h"
#include "../include/cgiutils.h"

Go to the source code of this file.

Defines

#define add_macrox_name(name)   macro_x_names[MACRO_##name] = strdup(#name)
#define cp_macro(name)   dest[MACRO_##name] = global_macros.x[MACRO_##name]

Functions

icinga_macrosget_global_macros (void)
int process_macros_r (icinga_macros *mac, char *input_buffer, char **output_buffer, int options)
int process_macros (char *input_buffer, char **output_buffer, int options)
int grab_host_macros_r (icinga_macros *mac, host *hst)
int grab_host_macros (host *hst)
int grab_hostgroup_macros_r (icinga_macros *mac, hostgroup *hg)
int grab_hostgroup_macros (hostgroup *hg)
int grab_service_macros_r (icinga_macros *mac, service *svc)
int grab_service_macros (service *svc)
int grab_servicegroup_macros_r (icinga_macros *mac, servicegroup *sg)
int grab_servicegroup_macros (servicegroup *sg)
int grab_contact_macros_r (icinga_macros *mac, contact *cntct)
int grab_contact_macros (contact *cntct)
int grab_contactgroup_macros_r (icinga_macros *mac, contactgroup *cg)
int grab_contactgroup_macros (contactgroup *cg)
int grab_macro_value_r (icinga_macros *mac, char *macro_buffer, char **output, int *clean_options, int *free_macro)
int grab_macro_value (char *macro_buffer, char **output, int *clean_options, int *free_macro)
int grab_macrox_value_r (icinga_macros *mac, int macro_type, char *arg1, char *arg2, char **output, int *free_macro)
int grab_macrox_value (int macro_type, char *arg1, char *arg2, char **output, int *free_macro)
int grab_custom_macro_value_r (icinga_macros *mac, char *macro_name, char *arg1, char *arg2, char **output)
int grab_custom_macro_value (char *macro_name, char *arg1, char *arg2, char **output)
int grab_datetime_macro_r (icinga_macros *mac, int macro_type, char *arg1, char *arg2, char **output)
int grab_datetime_macro (int macro_type, char *arg1, char *arg2, char **output)
int grab_standard_host_macro_r (icinga_macros *mac, int macro_type, host *temp_host, char **output, int *free_macro)
int grab_standard_host_macro (int macro_type, host *temp_host, char **output, int *free_macro)
int grab_standard_hostgroup_macro_r (icinga_macros *mac, int macro_type, hostgroup *temp_hostgroup, char **output)
int grab_standard_hostgroup_macro (int macro_type, hostgroup *temp_hostgroup, char **output)
int grab_standard_service_macro_r (icinga_macros *mac, int macro_type, service *temp_service, char **output, int *free_macro)
int grab_standard_service_macro (int macro_type, service *temp_service, char **output, int *free_macro)
int grab_standard_servicegroup_macro_r (icinga_macros *mac, int macro_type, servicegroup *temp_servicegroup, char **output)
int grab_standard_servicegroup_macro (int macro_type, servicegroup *temp_servicegroup, char **output)
int grab_standard_contact_macro_r (icinga_macros *mac, int macro_type, contact *temp_contact, char **output)
int grab_standard_contact_macro (int macro_type, contact *temp_contact, char **output)
int grab_contact_address_macro_r (icinga_macros *mac, int macro_num, contact *temp_contact, char **output)
int grab_contact_address_macro (int macro_num, contact *temp_contact, char **output)
int grab_standard_contactgroup_macro_r (icinga_macros *mac, int macro_type, contactgroup *temp_contactgroup, char **output)
int grab_standard_contactgroup_macro (int macro_type, contactgroup *temp_contactgroup, char **output)
int grab_custom_object_macro_r (icinga_macros *mac, char *macro_name, customvariablesmember *vars, char **output)
int grab_custom_object_macro (char *macro_name, customvariablesmember *vars, char **output)
char * clean_macro_chars (char *macro, int options)
char * get_url_encoded_string (char *input)
int init_macros (void)
int init_macrox_names (void)
int free_macrox_names (void)
int clear_argv_macros_r (icinga_macros *mac)
int clear_argv_macros (void)
void copy_constant_macros (char **dest)
int clear_volatile_macros_r (icinga_macros *mac)
int clear_volatile_macros (void)
int clear_service_macros_r (icinga_macros *mac)
int clear_service_macros (void)
int clear_host_macros_r (icinga_macros *mac)
int clear_host_macros (void)
int clear_hostgroup_macros_r (icinga_macros *mac)
int clear_hostgroup_macros (void)
int clear_servicegroup_macros_r (icinga_macros *mac)
int clear_servicegroup_macros (void)
int clear_contact_macros_r (icinga_macros *mac)
int clear_contact_macros (void)
int clear_contactgroup_macros_r (icinga_macros *mac)
int clear_contactgroup_macros (void)
int clear_summary_macros_r (icinga_macros *mac)
int clear_summary_macros (void)

Variables

int dummy
char * illegal_output_chars
contactcontact_list
contactgroupcontactgroup_list
hosthost_list
hostgrouphostgroup_list
serviceservice_list
servicegroupservicegroup_list
commandcommand_list
timeperiodtimeperiod_list
char * macro_x_names [MACRO_X_COUNT]
char * macro_user [MAX_USER_MACROS]
char ** macro_x = NULL

Define Documentation

#define add_macrox_name (   name)    macro_x_names[MACRO_##name] = strdup(#name)

initializes the names of macros, using this nifty little macro which ensures we never add any typos to the list ##name appends as astring, #name makes sure that param is trated as string

Definition at line 2644 of file macros.c.

#define cp_macro (   name)    dest[MACRO_##name] = global_macros.x[MACRO_##name]

copies non-volatile macros from global macro_x to **dest, which must be large enough to hold at least MACRO_X_COUNT entries. We use a shortlived macro to save up on typing

Definition at line 2854 of file macros.c.


Function Documentation

char* clean_macro_chars ( char *  macro,
int  options 
)

cleans illegal characters in macros before output

Definition at line 2506 of file macros.c.

int clear_argv_macros ( void  )

Definition at line 2844 of file macros.c.

int clear_argv_macros_r ( icinga_macros mac)

clear argv macros - used in commands

Definition at line 2834 of file macros.c.

int clear_contact_macros ( void  )

Definition at line 3224 of file macros.c.

int clear_contact_macros_r ( icinga_macros mac)

clear contact macros the thread-safe version

Definition at line 3186 of file macros.c.

int clear_contactgroup_macros ( void  )

Definition at line 3254 of file macros.c.

int clear_contactgroup_macros_r ( icinga_macros mac)

clear contactgroup macros the thread-safe version

Definition at line 3233 of file macros.c.

int clear_host_macros ( void  )

Definition at line 3111 of file macros.c.

int clear_host_macros_r ( icinga_macros mac)

clear host macros the thread-safe version

Definition at line 3040 of file macros.c.

int clear_hostgroup_macros ( void  )

Definition at line 3144 of file macros.c.

int clear_hostgroup_macros_r ( icinga_macros mac)

clear hostgroup macros the thread-safe version

Definition at line 3120 of file macros.c.

int clear_service_macros ( void  )

Definition at line 3031 of file macros.c.

int clear_service_macros_r ( icinga_macros mac)

clear service macros the thread-safe version

Definition at line 2966 of file macros.c.

int clear_servicegroup_macros ( void  )

Definition at line 3177 of file macros.c.

int clear_servicegroup_macros_r ( icinga_macros mac)

clear servicegroup macros the thread-safe version

Definition at line 3153 of file macros.c.

int clear_summary_macros ( void  )

Definition at line 3273 of file macros.c.

int clear_summary_macros_r ( icinga_macros mac)

clear summary macros the thread-safe version

Definition at line 3264 of file macros.c.

int clear_volatile_macros ( void  )

Definition at line 2957 of file macros.c.

int clear_volatile_macros_r ( icinga_macros mac)

clear all macros that are not "constant" (i.e. they change throughout the course of monitoring) the thread-safe version

Definition at line 2878 of file macros.c.

void copy_constant_macros ( char **  dest)

Definition at line 2855 of file macros.c.

int free_macrox_names ( void  )

free memory associated with the macrox names

Definition at line 2819 of file macros.c.

icinga_macros* get_global_macros ( void  )

Definition at line 77 of file macros.c.

char* get_url_encoded_string ( char *  input)

encodes a string in proper URL format

Definition at line 2564 of file macros.c.

int grab_contact_address_macro ( int  macro_num,
contact temp_contact,
char **  output 
)

Definition at line 2417 of file macros.c.

int grab_contact_address_macro_r ( icinga_macros mac,
int  macro_num,
contact temp_contact,
char **  output 
)

computes a contact address macro

Definition at line 2402 of file macros.c.

int grab_contact_macros ( contact cntct)

Definition at line 404 of file macros.c.

int grab_contact_macros_r ( icinga_macros mac,
contact cntct 
)

grab macros that are specific to a particular contact

Definition at line 382 of file macros.c.

int grab_contactgroup_macros ( contactgroup cg)

Definition at line 427 of file macros.c.

int grab_contactgroup_macros_r ( icinga_macros mac,
contactgroup cg 
)

grab contactgroup macros

Definition at line 413 of file macros.c.

int grab_custom_macro_value ( char *  macro_name,
char *  arg1,
char *  arg2,
char **  output 
)

Definition at line 1508 of file macros.c.

int grab_custom_macro_value_r ( icinga_macros mac,
char *  macro_name,
char *  arg1,
char *  arg2,
char **  output 
)

calculates the value of a custom macro

Definition at line 1303 of file macros.c.

int grab_custom_object_macro ( char *  macro_name,
customvariablesmember vars,
char **  output 
)

Definition at line 2494 of file macros.c.

int grab_custom_object_macro_r ( icinga_macros mac,
char *  macro_name,
customvariablesmember vars,
char **  output 
)

computes a custom object macro

Definition at line 2470 of file macros.c.

int grab_datetime_macro ( int  macro_type,
char *  arg1,
char *  arg2,
char **  output 
)

Definition at line 1607 of file macros.c.

int grab_datetime_macro_r ( icinga_macros mac,
int  macro_type,
char *  arg1,
char *  arg2,
char **  output 
)

calculates a date/time macro

Definition at line 1516 of file macros.c.

int grab_host_macros ( host hst)

Definition at line 298 of file macros.c.

int grab_host_macros_r ( icinga_macros mac,
host hst 
)

grab macros that are specific to a particular host

Definition at line 276 of file macros.c.

int grab_hostgroup_macros ( hostgroup hg)

Definition at line 320 of file macros.c.

int grab_hostgroup_macros_r ( icinga_macros mac,
hostgroup hg 
)

grab hostgroup macros

Definition at line 306 of file macros.c.

int grab_macro_value ( char *  macro_buffer,
char **  output,
int *  clean_options,
int *  free_macro 
)

Definition at line 655 of file macros.c.

int grab_macro_value_r ( icinga_macros mac,
char *  macro_buffer,
char **  output,
int *  clean_options,
int *  free_macro 
)

this is the big one

Definition at line 439 of file macros.c.

int grab_macrox_value ( int  macro_type,
char *  arg1,
char *  arg2,
char **  output,
int *  free_macro 
)

Definition at line 1294 of file macros.c.

int grab_macrox_value_r ( icinga_macros mac,
int  macro_type,
char *  arg1,
char *  arg2,
char **  output,
int *  free_macro 
)

grab macrox value

Definition at line 663 of file macros.c.

int grab_service_macros ( service svc)

Definition at line 350 of file macros.c.

int grab_service_macros_r ( icinga_macros mac,
service svc 
)

grab macros that are specific to a particular service

Definition at line 328 of file macros.c.

int grab_servicegroup_macros ( servicegroup sg)

Definition at line 373 of file macros.c.

int grab_servicegroup_macros_r ( icinga_macros mac,
servicegroup sg 
)

grab macros that are specific to a particular servicegroup

Definition at line 359 of file macros.c.

int grab_standard_contact_macro ( int  macro_type,
contact temp_contact,
char **  output 
)

Definition at line 2394 of file macros.c.

int grab_standard_contact_macro_r ( icinga_macros mac,
int  macro_type,
contact temp_contact,
char **  output 
)

computes a contact macro

Definition at line 2340 of file macros.c.

int grab_standard_contactgroup_macro ( int  macro_type,
contactgroup temp_contactgroup,
char **  output 
)

Definition at line 2461 of file macros.c.

int grab_standard_contactgroup_macro_r ( icinga_macros mac,
int  macro_type,
contactgroup temp_contactgroup,
char **  output 
)

computes a contactgroup macro

Definition at line 2425 of file macros.c.

int grab_standard_host_macro ( int  macro_type,
host temp_host,
char **  output,
int *  free_macro 
)

Definition at line 1901 of file macros.c.

int grab_standard_host_macro_r ( icinga_macros mac,
int  macro_type,
host temp_host,
char **  output,
int *  free_macro 
)

calculates a host macro

Definition at line 1615 of file macros.c.

int grab_standard_hostgroup_macro ( int  macro_type,
hostgroup temp_hostgroup,
char **  output 
)

Definition at line 1996 of file macros.c.

int grab_standard_hostgroup_macro_r ( icinga_macros mac,
int  macro_type,
hostgroup temp_hostgroup,
char **  output 
)

computes a hostgroup macro

Definition at line 1909 of file macros.c.

int grab_standard_service_macro ( int  macro_type,
service temp_service,
char **  output,
int *  free_macro 
)

Definition at line 2236 of file macros.c.

int grab_standard_service_macro_r ( icinga_macros mac,
int  macro_type,
service temp_service,
char **  output,
int *  free_macro 
)

computes a service macro

Definition at line 2004 of file macros.c.

int grab_standard_servicegroup_macro ( int  macro_type,
servicegroup temp_servicegroup,
char **  output 
)

Definition at line 2332 of file macros.c.

int grab_standard_servicegroup_macro_r ( icinga_macros mac,
int  macro_type,
servicegroup temp_servicegroup,
char **  output 
)

computes a servicegroup macro

Definition at line 2244 of file macros.c.

int init_macros ( void  )

initializes global macros

Definition at line 2618 of file macros.c.

int init_macrox_names ( void  )

Definition at line 2645 of file macros.c.

int process_macros ( char *  input_buffer,
char **  output_buffer,
int  options 
)

Definition at line 264 of file macros.c.

int process_macros_r ( icinga_macros mac,
char *  input_buffer,
char **  output_buffer,
int  options 
)

replace macros in notification commands with their values, the thread-safe version

Definition at line 90 of file macros.c.


Variable Documentation

Definition at line 58 of file objects.c.

Definition at line 54 of file objects.c.

Definition at line 55 of file objects.c.

int dummy

Definition at line 43 of file macros.c.

Definition at line 52 of file objects.c.

Definition at line 56 of file objects.c.

Definition at line 86 of file icinga.c.

char* macro_user[MAX_USER_MACROS]

Definition at line 57 of file macros.c.

char** macro_x = NULL

These point to their corresponding pointer arrays in global_macros AFTER macros have been initialized.

They really only exist so that eventbroker modules that reference them won't need to be re-compiled, although modules that rely on their values after having run a certain command will require an update

Definition at line 68 of file macros.c.

char* macro_x_names[MACRO_X_COUNT]

Definition at line 56 of file macros.c.

Definition at line 53 of file objects.c.

Definition at line 57 of file objects.c.

Definition at line 59 of file objects.c.

 All Data Structures Files Functions Variables Typedefs Defines