int main(void) { time_t now; idmef_time_t *ctime; idmef_alert_t *alert; idmef_message_t *idmef; assert(idmef_message_new(&idmef) == 0); assert(idmef_message_new_alert(idmef, &alert) == 0); ctime = idmef_alert_get_create_time(alert); assert(ctime != NULL); now = time(NULL); assert(now - idmef_time_get_sec(ctime) < MAX_LAG_SEC); exit(0); }
void prelude_logging(const char *filename, const char *virname, const char *virhash, int virsize){ int ret; idmef_message_t *idmef = NULL; idmef_alert_t *alert; idmef_classification_t *class; prelude_string_t *str; idmef_target_t *target; idmef_file_t *file; ret = idmef_message_new(&idmef); if ( ret < 0 ) goto err; ret = idmef_message_new_alert(idmef, &alert); if ( ret < 0 ) goto err; ret = idmef_alert_new_classification(alert, &class); if ( ret < 0 ) goto err; ret = idmef_classification_new_text(class, &str); if ( ret < 0 ) goto err; prelude_string_set_constant(str, "Virus Found"); ret = idmef_alert_new_target(alert, &target, 0); if ( ret < 0 ) goto err; ret = idmef_target_new_file(target, &file, 0); if ( ret < 0 ) goto err; ret = idmef_file_new_path(file, &str); if ( ret < 0 ) goto err; prelude_string_set_ref(str, filename); if ( virname != NULL ) { ret = add_string_additional_data(alert, "virname", virname); if ( ret < 0 ) goto err; } if ( virhash != NULL){ ret = add_string_additional_data(alert, "virhash", virhash); if ( ret < 0 ) goto err; } ret = add_int_additional_data(alert, "virsize", virsize); if ( ret < 0 ) goto err; logg("le client : %s", prelude_client_get_config_filename(prelude_client)); prelude_client_send_idmef(prelude_client, idmef); idmef_message_destroy(idmef); return; err: if (idmef != NULL) idmef_message_destroy(idmef); logg("%s error: %s", prelude_strsource(ret), prelude_strerror(ret)); return; }