int output_file_open(void *output_priv) { 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_start() != POM_OK) return POM_ERR; return analyzer_pload_output_register(priv, &priv->output_reg); }
int output_file_open(void *output_priv) { struct output_file_priv *priv = output_priv; char *filter_str = PTYPE_STRING_GETVAL(priv->p_filter); struct filter *filter = NULL; if (strlen(filter_str)) { filter = pload_filter_compile(filter_str); if (!filter) { pomlog(POMLOG_ERR "Error while parsing filter '%s'", filter_str); return POM_ERR; } } char *listen_pload_evt = PTYPE_BOOL_GETVAL(priv->p_listen_pload_evt); if (*listen_pload_evt && event_payload_listen_start() != POM_OK) { if (filter) filter_cleanup(filter); return POM_ERR; } return pload_listen_start(output_priv, NULL, filter, output_file_pload_open, output_file_pload_write, output_file_pload_close); }