예제 #1
0
파일: event.c 프로젝트: k0a1a/pom-ng
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;
}
예제 #2
0
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;
}