int event_payload_listen_start() { if (event_pload_listener_ref) { event_pload_listener_ref++; return POM_OK; } event_pload_listener_ref++; struct event_reg *tmp; for (tmp = event_reg_head; tmp; tmp = tmp->next) { if (tmp->info->flags & EVENT_REG_FLAG_PAYLOAD) { // Register a dummy listener for events that generate payload if (event_listener_register(tmp, &event_pload_listener_ref, NULL, NULL) != POM_OK) goto err; } } return POM_OK; err: event_payload_listen_stop(); return POM_ERR; }
int output_file_close(void *output_priv) { if (analyzer_pload_output_unregister(output_priv) != POM_OK) return POM_ERR; struct output_file_priv *priv = output_priv; char *listen_pload_evt = PTYPE_BOOL_GETVAL(priv->p_listen_pload_evt); if (*listen_pload_evt) event_payload_listen_stop(); return POM_OK; }