X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnotify_email.c;h=08f865fc2c57805866ce3475a3ec9b3a77ed0e9a;hb=61a1fa91ba73e4fe3a34949f77c5f017056f2b7a;hp=10d5ab1bd0683abdaf27872a97dd24031347ab73;hpb=a12cb627513a24de25401d3e0e29763db724bf5c;p=collectd.git diff --git a/src/notify_email.c b/src/notify_email.c index 10d5ab1b..08f865fc 100644 --- a/src/notify_email.c +++ b/src/notify_email.c @@ -228,7 +228,6 @@ static int notify_email_config (const char *key, const char *value) static int notify_email_notification (const notification_t *n, user_data_t __attribute__((unused)) *user_data) { - smtp_recipient_t recipient; struct tm timestamp_tm; char timestamp_str[64]; @@ -272,6 +271,12 @@ static int notify_email_notification (const notification_t *n, pthread_mutex_lock (&session_lock); + if (session == NULL) { + /* Initialization failed or we're in the process of shutting down. */ + pthread_mutex_unlock (&session_lock); + return (-1); + } + if (!(message = smtp_add_message (session))) { pthread_mutex_unlock (&session_lock); ERROR ("notify_email plugin: cannot set SMTP message"); @@ -282,7 +287,7 @@ static int notify_email_notification (const notification_t *n, smtp_set_message_str (message, buf); for (i = 0; i < recipients_len; i++) - recipient = smtp_add_recipient (message, recipients[i]); + smtp_add_recipient (message, recipients[i]); /* Initiate a connection to the SMTP server and transfer the message. */ if (!smtp_start_session (session)) { @@ -292,11 +297,16 @@ static int notify_email_notification (const notification_t *n, pthread_mutex_unlock (&session_lock); return (-1); } else { - 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", + #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); + #endif smtp_enumerate_recipients (message, print_recipient_status, NULL); }