/* binds to the corresponding database module * returns 0 on success, -1 on error */ int acc_db_init(const str* db_url) { if (db_bind_mod(db_url, &acc_dbf)<0){ LM_ERR("bind_db failed\n"); return -1; } /* Check database capabilities */ if (!DB_CAPABILITY(acc_dbf, DB_CAP_INSERT)) { LM_ERR("database module does not implement insert function\n"); return -1; } db_handle=acc_dbf.init(db_url); if (db_handle==0){ LM_ERR("unable to connect to the database\n"); return -1; } if (db_check_table_version(&acc_dbf, db_handle, &db_table_acc, TABLE_VERSION) < 0) { LM_ERR("error during table version check\n"); return -1; } acc_db_close(); acc_db_init_keys(); return 0; }
static void destroy(void) { if (log_extra) destroy_extras( log_extra); #ifdef SQL_ACC acc_db_close(); if (db_extra) destroy_extras( db_extra); #endif #ifdef DIAM_ACC close_tcp_connection(sockfd); if (dia_extra) destroy_extras( dia_extra); #endif }
static void destroy(void) { if (log_extra_tags) destroy_extras( log_extra_tags); if (log_leg_tags) destroy_extras( log_leg_tags); acc_db_close(); if (db_extra_tags) destroy_extras( db_extra_tags); if (db_leg_tags) destroy_extras( db_leg_tags); if (aaa_extra_tags) destroy_extras( aaa_extra_tags); if (aaa_leg_tags) destroy_extras( aaa_leg_tags); if (evi_extra_tags) destroy_extras( evi_extra_tags); if (evi_leg_tags) destroy_extras( evi_leg_tags); }