示例#1
0
文件: pim_msdp.c 项目: ton31337/frr
/* counterpart to MSDP init; XXX: unused currently */
void pim_msdp_exit(struct pim_instance *pim)
{
	pim_msdp_sa_adv_timer_setup(pim, false);

	/* XXX: stop listener and delete all peer sessions */

	pim_msdp_mg_free(pim);

	if (pim->msdp.peer_hash) {
		hash_clean(pim->msdp.peer_hash, NULL);
		hash_free(pim->msdp.peer_hash);
		pim->msdp.peer_hash = NULL;
	}

	if (pim->msdp.peer_list) {
		list_delete(&pim->msdp.peer_list);
	}

	if (pim->msdp.sa_hash) {
		hash_clean(pim->msdp.sa_hash, NULL);
		hash_free(pim->msdp.sa_hash);
		pim->msdp.sa_hash = NULL;
	}

	if (pim->msdp.sa_list) {
		list_delete(&pim->msdp.sa_list);
	}

	if (pim->msdp.work_obuf)
		stream_free(pim->msdp.work_obuf);
	pim->msdp.work_obuf = NULL;
}
示例#2
0
int   hash_destroy(hash_t *hash)
{
  hash_clean(hash);
  free(hash->nodes);
  free(hash);

  return 0;   
}
示例#3
0
文件: pim_vxlan.c 项目: ton31337/frr
void pim_vxlan_exit(struct pim_instance *pim)
{
	if (pim->vxlan.sg_hash) {
		hash_clean(pim->vxlan.sg_hash, NULL);
		hash_free(pim->vxlan.sg_hash);
		pim->vxlan.sg_hash = NULL;
	}
}
示例#4
0
文件: hash.c 项目: gaccob/gbase
int
hash_release(hash_t* htable) {
    if (!htable)
        return -1;
    hash_clean(htable);
    FREE(htable->m_table);
    FREE(htable);
    return 0;
}
示例#5
0
void
bgp_address_destroy (void)
{
  if (bgp_address_hash == NULL)
    return;

  hash_clean(bgp_address_hash, NULL);
  hash_free(bgp_address_hash);
  bgp_address_hash = NULL;
}
示例#6
0
void hash_free 
( 
	struct Hash *hash, 
	void (* func)(void *)
)
{
	if(NULL == hash){
		return ;
    }
    hash_clean ( hash, func );
    free(hash->index );
	free(hash->index2 );
    free(hash);
}