/* * destroy function */ static void destroy(void) { LM_DBG("start\n"); if(rls_table) { if(rls_db) rlsubs_table_update(0, 0); pres_destroy_shtable(rls_table, hash_size); } if(rls_db && rls_dbf.close) rls_dbf.close(rls_db); if(rlpres_db && rlpres_dbf.close) rlpres_dbf.close(rlpres_db); if(rls_xcap_db && rls_xcap_dbf.close) rls_xcap_dbf.close(rls_xcap_db); if (rls_update_subs_lock != NULL) { lock_destroy(rls_update_subs_lock); lock_dealloc(rls_update_subs_lock); } if (rls_notifier_id != NULL) shm_free(rls_notifier_id); }
static struct mi_root* mi_cleanup(struct mi_root* cmd, void *param) { LM_DBG("mi_cleanup:start\n"); (void)rlsubs_table_update(0,0); (void)rls_presentity_clean(0,0); return init_mi_tree(200, MI_OK_S, MI_OK_LEN); }
/* * destroy function */ void destroy(void) { LM_DBG("start\n"); if(rls_table) { if(rls_db) rlsubs_table_update(0, 0); pres_destroy_shtable(rls_table, hash_size); } if(rls_db && rls_dbf.close) rls_dbf.close(rls_db); }