X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnotify_email.c;h=0120a4039466e240c753ed3e7e2472995dec3335;hb=290741f2e6de9e9b467463c1f0c6f031c4036428;hp=08f865fc2c57805866ce3475a3ec9b3a77ed0e9a;hpb=61a1fa91ba73e4fe3a34949f77c5f017056f2b7a;p=collectd.git diff --git a/src/notify_email.c b/src/notify_email.c index 08f865fc..0120a403 100644 --- a/src/notify_email.c +++ b/src/notify_email.c @@ -28,7 +28,6 @@ #include #include -#include #define MAXSTRING 256 @@ -66,7 +65,7 @@ static char *email_subject = NULL; /* Callback to get username and password */ static int authinteract (auth_client_request_t request, char **result, int fields, void __attribute__((unused)) *arg) -{ +{ int i; for (i = 0; i < fields; i++) { @@ -145,7 +144,7 @@ static int notify_email_init (void) if ( !smtp_auth_set_context (session, authctx)) { pthread_mutex_unlock (&session_lock); ERROR ("notify_email plugin: cannot set SMTP auth context"); - return (-1); + return (-1); } pthread_mutex_unlock (&session_lock); @@ -176,7 +175,7 @@ static int notify_email_config (const char *key, const char *value) { char **tmp; - tmp = (char **) realloc ((void *) recipients, (recipients_len + 1) * sizeof (char *)); + tmp = realloc (recipients, (recipients_len + 1) * sizeof (char *)); if (tmp == NULL) { ERROR ("notify_email: realloc failed."); return (-1); @@ -229,6 +228,7 @@ static int notify_email_notification (const notification_t *n, user_data_t __attribute__((unused)) *user_data) { + time_t tt; struct tm timestamp_tm; char timestamp_str[64]; @@ -248,7 +248,8 @@ static int notify_email_notification (const notification_t *n, (email_subject == NULL) ? DEFAULT_SMTP_SUBJECT : email_subject, severity, n->host); - localtime_r (&n->time, ×tamp_tm); + tt = CDTIME_T_TO_TIME_T (n->time); + localtime_r (&tt, ×tamp_tm); strftime (timestamp_str, sizeof (timestamp_str), "%Y-%m-%d %H:%M:%S", ×tamp_tm); timestamp_str[sizeof (timestamp_str) - 1] = '\0'; @@ -256,7 +257,7 @@ static int notify_email_notification (const notification_t *n, /* Let's make RFC822 message text with \r\n EOLs */ ssnprintf (buf, buf_len, "MIME-Version: 1.0\r\n" - "Content-Type: text/plain;\r\n" + "Content-Type: text/plain; charset=\"US-ASCII\"\r\n" "Content-Transfer-Encoding: 8bit\r\n" "Subject: %s\r\n" "\r\n" @@ -280,7 +281,7 @@ static int notify_email_notification (const notification_t *n, if (!(message = smtp_add_message (session))) { pthread_mutex_unlock (&session_lock); ERROR ("notify_email plugin: cannot set SMTP message"); - return (-1); + return (-1); } smtp_set_reverse_path (message, email_from); smtp_set_header (message, "To", NULL, NULL); @@ -291,21 +292,17 @@ static int notify_email_notification (const notification_t *n, /* Initiate a connection to the SMTP server and transfer the message. */ if (!smtp_start_session (session)) { - char buf[MAXSTRING]; ERROR ("notify_email plugin: SMTP server problem: %s", smtp_strerror (smtp_errno (), buf, sizeof buf)); pthread_mutex_unlock (&session_lock); return (-1); } else { #if COLLECT_DEBUG - const smtp_status_t *status; - /* Report on the success or otherwise of the mail transfer. */ - status = smtp_message_transfer_status (message); - DEBUG ("notify_email plugin: SMTP server report: %d %s", - status->code, (status->text != NULL) ? status->text : "\n"); - #else - //I don't know if the function below has side affects so i'm calling it to be on the safe side. - smtp_message_transfer_status (message); + const smtp_status_t *status; + /* Report on the success or otherwise of the mail transfer. */ + status = smtp_message_transfer_status (message); + DEBUG ("notify_email plugin: SMTP server report: %d %s", + status->code, (status->text != NULL) ? status->text : "\n"); #endif smtp_enumerate_recipients (message, print_recipient_status, NULL); }