//---------------------------------------------------------------------------------------------------------------------
void pmip_bce_delete(pmip_entry_t * bce)
{
	pthread_rwlock_wrlock(&bce->lock);
	del_task(&bce->tqe);
	if (bce->cleanup) {
		bce->cleanup(bce);
	}
	g_pmip_cache_count--;
	hash_delete(&g_pmip_hash, &bce->our_addr, &bce->mn_hw_address);
	pthread_rwlock_unlock(&bce->lock);
	pmipcache_free(bce);
	//dbg("PMIP cache entry is deleted!\n");
}
示例#2
0
//---------------------------------------------------------------------------------------------------------------------
void pmip_bce_delete(pmip_entry_t * bce)
{
    int mutex_return_code;

    mutex_return_code = pthread_rwlock_wrlock(&bce->lock);
    if (mutex_return_code != 0) {
        dbg("pthread_rwlock_wrlock(&bce->lock) %s\n", strerror(mutex_return_code));
    }
    del_task(&bce->tqe);
    if (bce->cleanup) {
        bce->cleanup(bce);
    }
    g_pmip_cache_count--;
    pmip_hash_delete(&g_pmip_hash, &bce->mn_nai, &bce->mn_serv_mag_addr);
    mutex_return_code = pthread_rwlock_unlock(&bce->lock);
    if (mutex_return_code != 0) {
        dbg("pthread_rwlock_unlock(&bce->lock) %s\n", strerror(mutex_return_code));
    }
    pmipcache_free(bce);
    dbg("PMIP cache entry is deleted!\n");
}