X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fnotify_nagios.c;h=68f6e2a7f43b151df37a2e9a0a8904ff940a175b;hp=b08c411df202741503e5339342da7d6397beffe1;hb=06a86a60a7dabc685bdbd81ce3d36ea5f7e2c2d4;hpb=b847e8ff2fd928813397466a941947c8fce66d66 diff --git a/src/notify_nagios.c b/src/notify_nagios.c index b08c411d..68f6e2a7 100644 --- a/src/notify_nagios.c +++ b/src/notify_nagios.c @@ -26,140 +26,124 @@ #include "collectd.h" -#include "plugin.h" #include "common.h" +#include "plugin.h" -#define NAGIOS_OK 0 -#define NAGIOS_WARNING 1 +#define NAGIOS_OK 0 +#define NAGIOS_WARNING 1 #define NAGIOS_CRITICAL 2 -#define NAGIOS_UNKNOWN 3 +#define NAGIOS_UNKNOWN 3 #ifndef NAGIOS_COMMAND_FILE -# define NAGIOS_COMMAND_FILE "/usr/local/nagios/var/rw/nagios.cmd" +#define NAGIOS_COMMAND_FILE "/usr/local/nagios/var/rw/nagios.cmd" #endif static char *nagios_command_file; -static int nagios_config (oconfig_item_t *ci) /* {{{ */ +static int nagios_config(oconfig_item_t *ci) /* {{{ */ { - for (int i = 0; i < ci->children_num; i++) - { + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i; - if (strcasecmp ("CommandFile", child->key) == 0) - cf_util_get_string (child, &nagios_command_file); + if (strcasecmp("CommandFile", child->key) == 0) + cf_util_get_string(child, &nagios_command_file); else - WARNING ("notify_nagios plugin: Ignoring unknown config option \"%s\".", - child->key); + WARNING("notify_nagios plugin: Ignoring unknown config option \"%s\".", + child->key); } return 0; } /* }}} nagios_config */ -static int nagios_print (char const *buffer) /* {{{ */ +static int nagios_print(char const *buffer) /* {{{ */ { char const *file = NAGIOS_COMMAND_FILE; int fd; int status; - struct flock lock = { 0 }; + struct flock lock = {0}; if (nagios_command_file != NULL) file = nagios_command_file; - fd = open (file, O_WRONLY | O_APPEND); - if (fd < 0) - { - char errbuf[1024]; + fd = open(file, O_WRONLY | O_APPEND); + if (fd < 0) { status = errno; - ERROR ("notify_nagios plugin: Opening \"%s\" failed: %s", - file, sstrerror (status, errbuf, sizeof (errbuf))); + ERROR("notify_nagios plugin: Opening \"%s\" failed: %s", file, STRERRNO); return status; } lock.l_type = F_WRLCK; lock.l_whence = SEEK_END; - status = fcntl (fd, F_GETLK, &lock); - if (status != 0) - { - char errbuf[1024]; + status = fcntl(fd, F_GETLK, &lock); + if (status != 0) { status = errno; - ERROR ("notify_nagios plugin: Failed to acquire write lock on \"%s\": %s", - file, sstrerror (status, errbuf, sizeof (errbuf))); - close (fd); + ERROR("notify_nagios plugin: Failed to acquire write lock on \"%s\": %s", + file, STRERRNO); + close(fd); return status; } - status = (int) lseek (fd, 0, SEEK_END); - if (status == -1) - { - char errbuf[1024]; + status = (int)lseek(fd, 0, SEEK_END); + if (status == -1) { status = errno; - ERROR ("notify_nagios plugin: Seeking to end of \"%s\" failed: %s", - file, sstrerror (status, errbuf, sizeof (errbuf))); - close (fd); + ERROR("notify_nagios plugin: Seeking to end of \"%s\" failed: %s", file, + STRERRNO); + close(fd); return status; } - status = (int) swrite (fd, buffer, strlen (buffer)); - if (status != 0) - { - char errbuf[1024]; + status = (int)swrite(fd, buffer, strlen(buffer)); + if (status != 0) { status = errno; - ERROR ("notify_nagios plugin: Writing to \"%s\" failed: %s", - file, sstrerror (status, errbuf, sizeof (errbuf))); - close (fd); + ERROR("notify_nagios plugin: Writing to \"%s\" failed: %s", file, STRERRNO); + close(fd); return status; } - close (fd); + close(fd); return status; } /* }}} int nagios_print */ -static int nagios_notify (const notification_t *n, /* {{{ */ - __attribute__((unused)) user_data_t *user_data) -{ +static int nagios_notify(const notification_t *n, /* {{{ */ + __attribute__((unused)) user_data_t *user_data) { char svc_description[4 * DATA_MAX_NAME_LEN]; char buffer[4096]; int code; int status; - status = format_name (svc_description, (int) sizeof (svc_description), - /* host */ "", n->plugin, n->plugin_instance, n->type, n->type_instance); - if (status != 0) - { - ERROR ("notify_nagios plugin: Formatting service name failed."); + status = format_name(svc_description, (int)sizeof(svc_description), + /* host */ "", n->plugin, n->plugin_instance, n->type, + n->type_instance); + if (status != 0) { + ERROR("notify_nagios plugin: Formatting service name failed."); return status; } - switch (n->severity) - { - case NOTIF_OKAY: - code = NAGIOS_OK; - break; - case NOTIF_WARNING: - code = NAGIOS_WARNING; - break; - case NOTIF_FAILURE: - code = NAGIOS_CRITICAL; - break; - default: - code = NAGIOS_UNKNOWN; - break; + switch (n->severity) { + case NOTIF_OKAY: + code = NAGIOS_OK; + break; + case NOTIF_WARNING: + code = NAGIOS_WARNING; + break; + case NOTIF_FAILURE: + code = NAGIOS_CRITICAL; + break; + default: + code = NAGIOS_UNKNOWN; + break; } - ssnprintf (buffer, sizeof (buffer), - "[%.0f] PROCESS_SERVICE_CHECK_RESULT;%s;%s;%d;%s\n", - CDTIME_T_TO_DOUBLE (n->time), n->host, &svc_description[1], code, - n->message); + snprintf(buffer, sizeof(buffer), + "[%.0f] PROCESS_SERVICE_CHECK_RESULT;%s;%s;%d;%s\n", + CDTIME_T_TO_DOUBLE(n->time), n->host, &svc_description[1], code, + n->message); - return nagios_print (buffer); + return nagios_print(buffer); } /* }}} int nagios_notify */ -void module_register (void) -{ - plugin_register_complex_config ("notify_nagios", nagios_config); - plugin_register_notification ("notify_nagios", nagios_notify, NULL); +void module_register(void) { + plugin_register_complex_config("notify_nagios", nagios_config); + plugin_register_notification("notify_nagios", nagios_notify, NULL); } /* void module_register (void) */ - -/* vim: set sw=2 sts=2 ts=8 et : */