nagios4/include/workers.h
2019-04-18 17:09:18 +02:00

63 lines
2.0 KiB
C

#ifndef INCLUDE_WORKERS_H_INCLUDED
#define INCLUDE_WORKERS_H_INCLUDED
#include "lib/libnagios.h"
#include "lib/worker.h"
#include "nagios.h" /* for check_result definition */
/* different jobtypes. We add more as needed */
#define WPJOB_CHECK 0
#define WPJOB_NOTIFY 1
#define WPJOB_OCSP 2
#define WPJOB_OCHP 3
#define WPJOB_GLOBAL_SVC_EVTHANDLER 4
#define WPJOB_SVC_EVTHANDLER 5
#define WPJOB_GLOBAL_HOST_EVTHANDLER 6
#define WPJOB_HOST_EVTHANDLER 7
#define WPJOB_CALLBACK 8
#define WPJOB_HOST_PERFDATA 9
#define WPJOB_SVC_PERFDATA 10
#define WPROC_FORCE (1 << 0)
NAGIOS_BEGIN_DECL
typedef struct wproc_result {
unsigned int job_id;
unsigned int type;
time_t timeout;
struct timeval start;
struct timeval stop;
struct timeval runtime;
char *command;
char *outstd;
char *outerr;
char *error_msg;
int wait_status;
int error_code;
int exited_ok;
int early_timeout;
struct kvvec *response;
/* 5DEPR: rusage is deprecated for Nagios, will be removed in 5.0.0 */
struct rusage rusage;
} wproc_result;
extern unsigned int wproc_num_workers_spawned;
extern unsigned int wproc_num_workers_online;
extern unsigned int wproc_num_workers_desired;
extern void wproc_reap(int jobs, int msecs);
extern int wproc_can_spawn(struct load_control *lc);
extern void free_worker_memory(int flags);
extern int workers_alive(void);
extern int get_desired_workers(int desired_workers);
extern int init_workers(int desired_workers);
extern int wproc_run_check(check_result *cr, char *cmd, nagios_macros *mac);
extern int wproc_notify(char *cname, char *hname, char *sdesc, char *cmd, nagios_macros *mac);
extern int wproc_run(int job_type, char *cmd, int timeout, nagios_macros *mac);
extern int wproc_run_service_job(int jtype, int timeout, service *svc, char *cmd, nagios_macros *mac);
extern int wproc_run_host_job(int jtype, int timeout, host *hst, char *cmd, nagios_macros *mac);
extern int wproc_run_callback(char *cmt, int timeout, void (*cb)(struct wproc_result *, void *, int), void *data, nagios_macros *mac);
NAGIOS_END_DECL
#endif