//--------------------------------------------------------------------------------------------------------------------- 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"); }
//--------------------------------------------------------------------------------------------------------------------- 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"); }