static void substitute(Mail_T m, Event_T e) { char timestamp[STRLEN]; ASSERT(m && e); Util_replaceString(&m->from, "$HOST", Run.system->name); Util_replaceString(&m->subject, "$HOST", Run.system->name); Util_replaceString(&m->message, "$HOST", Run.system->name); Time_string(e->collected.tv_sec, timestamp); Util_replaceString(&m->subject, "$DATE", timestamp); Util_replaceString(&m->message, "$DATE", timestamp); Util_replaceString(&m->subject, "$SERVICE", Event_get_source_name(e)); Util_replaceString(&m->message, "$SERVICE", Event_get_source_name(e)); Util_replaceString(&m->subject, "$EVENT", Event_get_description(e)); Util_replaceString(&m->message, "$EVENT", Event_get_description(e)); Util_replaceString(&m->subject, "$DESCRIPTION", NVLSTR(Event_get_message(e))); Util_replaceString(&m->message, "$DESCRIPTION", NVLSTR(Event_get_message(e))); Util_replaceString(&m->subject, "$ACTION", Event_get_action_description(e)); Util_replaceString(&m->message, "$ACTION", Event_get_action_description(e)); }
static void substitute(Mail_T *m, Event_T e) { char timestamp[STRLEN]; ASSERT(m && e); Util_replaceString(&(*m)->from, "$HOST", Run.localhostname); Util_replaceString(&(*m)->subject, "$HOST", Run.localhostname); Util_replaceString(&(*m)->message, "$HOST", Run.localhostname); Util_getRFC822Date((time_t *)&e->collected.tv_sec, timestamp, STRLEN); Util_replaceString(&(*m)->subject, "$DATE", timestamp); Util_replaceString(&(*m)->message, "$DATE", timestamp); Util_replaceString(&(*m)->subject, "$SERVICE", Event_get_source_name(e)); Util_replaceString(&(*m)->message, "$SERVICE", Event_get_source_name(e)); Util_replaceString(&(*m)->subject, "$EVENT", Event_get_description(e)); Util_replaceString(&(*m)->message, "$EVENT", Event_get_description(e)); Util_replaceString(&(*m)->subject, "$DESCRIPTION", NVLSTR(Event_get_message(e))); Util_replaceString(&(*m)->message, "$DESCRIPTION", NVLSTR(Event_get_message(e))); Util_replaceString(&(*m)->subject, "$ACTION", Event_get_action_description(e)); Util_replaceString(&(*m)->message, "$ACTION", Event_get_action_description(e)); }
/** * Prints a event description into the given buffer. * @param E Event object * @param B StringBuffer object */ static void status_event(Event_T E, StringBuffer_T B) { struct timeval *tv = Event_get_collected(E); StringBuffer_append(B, "<event>" "<collected_sec>%ld</collected_sec>" "<collected_usec>%ld</collected_usec>" "<service>%s</service>" "<type>%d</type>" "<id>%ld</id>" "<state>%d</state>" "<action>%d</action>" "<message><![CDATA[%s]]></message>", tv->tv_sec, (long)tv->tv_usec, Event_get_id(E) == Event_Instance ? "Monit" : Event_get_source_name(E), Event_get_source_type(E), Event_get_id(E), Event_get_state(E), Event_get_action(E), Event_get_message(E)); Service_T s = Event_get_source(E); if (s && s->token) StringBuffer_append(B, "<token>%s</token>", s->token); StringBuffer_append(B, "</event>"); }