예제 #1
0
/**
 * @brief destroy dmq node
 */
void destroy_dmq_node(dmq_node_t *node, int shm)
{
	if(shm) {
		shm_free_node(node);
	} else {
		pkg_free_node(node);
	}
}
예제 #2
0
파일: dmqnode.c 프로젝트: carlosp/kamailio
/**
 * @brief destroy dmq node
 */
void destroy_dmq_node(dmq_node_t* node, int shm)
{
    if(shm) {
        if (node->params!=NULL)
            shm_free_params(node->params);
        shm_free_node(node);
    } else {
        if (node->params!=NULL)
            free_params(node->params);
        pkg_free_node(node);
    }
}
예제 #3
0
/**
 * @brief dmq tm callback
 */
void dmq_tm_callback(struct cell *t, int type, struct tmcb_params *ps)
{
	dmq_cback_param_t* cb_param;
	
	cb_param = (dmq_cback_param_t*)(*ps->param);

	if(cb_param==NULL)
		return;

	LM_DBG("dmq_tm_callback start\n");
	if(cb_param->resp_cback.f) {
		if(cb_param->resp_cback.f(ps->rpl, ps->code, cb_param->node, cb_param->resp_cback.param) < 0) {
			LM_ERR("error in response callback\n");
		}
	}
	LM_DBG("dmq_tm_callback done\n");
	shm_free_node(cb_param->node);
	shm_free(cb_param);
	*ps->param = NULL;
}