X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnotify_email.c;h=62e1c486a3601f20db464b1e2083d96cc46544d3;hb=f87848cbbce9283bf6e966624ec7e25b37993ad5;hp=13d27c2bb97a1a4e7157a718778fe764bea03d40;hpb=af8a7aed88f5173ca53453841557969497b85357;p=collectd.git diff --git a/src/notify_email.c b/src/notify_email.c index 13d27c2b..62e1c486 100644 --- a/src/notify_email.c +++ b/src/notify_email.c @@ -31,18 +31,18 @@ static const char *config_keys[] = { - "SMTPHost", + "SMTPServer", "SMTPPort", "SMTPUser", "SMTPPassword", - "SMTPFrom", - "SMTPSubject", - "EmailTo" + "From", + "Recipient", + "Subject" }; static int config_keys_num = STATIC_ARRAY_SIZE (config_keys); -static char **emails; -static int emails_len = 0; +static char **recipients; +static int recipients_len = 0; static smtp_session_t session; static smtp_message_t message; @@ -52,8 +52,8 @@ static int smtp_port = 25; static char *smtp_host = NULL; static char *smtp_user = NULL; static char *smtp_password = NULL; -static char *smtp_from = NULL; -static char *smtp_subject = NULL; +static char *email_from = NULL; +static char *email_subject = NULL; #define DEFAULT_SMTP_HOST "localhost" #define DEFAULT_SMTP_FROM "root@localhost" @@ -61,7 +61,7 @@ static char *smtp_subject = NULL; /* Callback to get username and password */ static int authinteract (auth_client_request_t request, char **result, - int fields, void *arg) + int fields, void __attribute__((unused)) *arg) { int i; for (i = 0; i < fields; i++) @@ -78,7 +78,7 @@ static int authinteract (auth_client_request_t request, char **result, /* Callback to print the recipient status */ static void print_recipient_status (smtp_recipient_t recipient, - const char *mailbox, void *arg) + const char *mailbox, void __attribute__((unused)) *arg) { const smtp_status_t *status; @@ -90,7 +90,8 @@ static void print_recipient_status (smtp_recipient_t recipient, } /* void print_recipient_status */ /* Callback to monitor SMTP activity */ -static void monitor_cb (const char *buf, int buflen, int writing, void *arg) +static void monitor_cb (const char *buf, int buflen, int writing, + void __attribute__((unused)) *arg) { char log_str[MAXSTRING]; @@ -149,25 +150,25 @@ static int notify_email_shutdown (void) static int notify_email_config (const char *key, const char *value) { - if (strcasecmp (key, "EmailTo") == 0) + if (strcasecmp (key, "Recipient") == 0) { char **tmp; - tmp = (char **) realloc ((void *) emails, (emails_len + 1) * sizeof (char *)); + tmp = (char **) realloc ((void *) recipients, (recipients_len + 1) * sizeof (char *)); if (tmp == NULL) { ERROR ("notify_email: realloc failed."); return (-1); } - emails = tmp; - emails[emails_len] = strdup (value); - if (emails[emails_len] == NULL) { + recipients = tmp; + recipients[recipients_len] = strdup (value); + if (recipients[recipients_len] == NULL) { ERROR ("notify_email: strdup failed."); return (-1); } - emails_len++; + recipients_len++; } - else if (0 == strcasecmp (key, "SMTPHost")) { + else if (0 == strcasecmp (key, "SMTPServer")) { sfree (smtp_host); smtp_host = strdup (value); } @@ -188,13 +189,13 @@ static int notify_email_config (const char *key, const char *value) sfree (smtp_password); smtp_password = strdup (value); } - else if (0 == strcasecmp (key, "SMTPFrom")) { - sfree (smtp_from); - smtp_from = strdup (value); + else if (0 == strcasecmp (key, "From")) { + sfree (email_from); + email_from = strdup (value); } - else if (0 == strcasecmp (key, "SMTPSubject")) { - sfree (smtp_subject); - smtp_subject = strdup (value); + else if (0 == strcasecmp (key, "Subject")) { + sfree (email_subject); + email_subject = strdup (value); } else { return -1; @@ -202,7 +203,8 @@ static int notify_email_config (const char *key, const char *value) return 0; } /* int notify_email_config (const char *, const char *) */ -static int notify_email_notification (const notification_t *n) +static int notify_email_notification (const notification_t *n, + user_data_t __attribute__((unused)) *user_data) { smtp_recipient_t recipient; @@ -222,7 +224,7 @@ static int notify_email_notification (const notification_t *n) : ((n->severity == NOTIF_OKAY) ? "OKAY" : "UNKNOWN"))); ssnprintf (subject, sizeof (subject), - (smtp_subject == NULL) ? DEFAULT_SMTP_SUBJECT : smtp_subject, + (email_subject == NULL) ? DEFAULT_SMTP_SUBJECT : email_subject, severity, n->host); localtime_r (&n->time, ×tamp_tm); @@ -250,12 +252,12 @@ static int notify_email_notification (const notification_t *n) ERROR ("notify_email plugin: cannot set SMTP message"); return (-1); } - smtp_set_reverse_path (message, smtp_from); + smtp_set_reverse_path (message, email_from); smtp_set_header (message, "To", NULL, NULL); smtp_set_message_str (message, buf); - for (i = 0; i < emails_len; i++) - recipient = smtp_add_recipient (message, emails[i]); + for (i = 0; i < recipients_len; i++) + recipient = smtp_add_recipient (message, recipients[i]); /* Initiate a connection to the SMTP server and transfer the message. */ if (!smtp_start_session (session)) { @@ -281,7 +283,8 @@ void module_register (void) plugin_register_shutdown ("notify_email", notify_email_shutdown); plugin_register_config ("notify_email", notify_email_config, config_keys, config_keys_num); - plugin_register_notification ("notify_email", notify_email_notification); + plugin_register_notification ("notify_email", notify_email_notification, + /* user_data = */ NULL); } /* void module_register (void) */ /* vim: set sw=2 sts=2 ts=8 et : */