Module: kamailio Branch: master Commit: ab627c14e6f06b8e568f9b6ab4e3cd396368d6bb URL: https://github.com/kamailio/kamailio/commit/ab627c14e6f06b8e568f9b6ab4e3cd39...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2017-07-20T16:35:15+02:00
alias_db: simplify error handling for db query function
---
Modified: src/modules/alias_db/alookup.c
---
Diff: https://github.com/kamailio/kamailio/commit/ab627c14e6f06b8e568f9b6ab4e3cd39... Patch: https://github.com/kamailio/kamailio/commit/ab627c14e6f06b8e568f9b6ab4e3cd39...
---
diff --git a/src/modules/alias_db/alookup.c b/src/modules/alias_db/alookup.c index d980d97113..28dd916999 100644 --- a/src/modules/alias_db/alookup.c +++ b/src/modules/alias_db/alookup.c @@ -103,8 +103,8 @@ static int alias_db_query(struct sip_msg* _msg, str table,
adbf.use_table(db_handle, &table); if(adbf.query( db_handle, db_keys, NULL, db_vals, db_cols, - (flags&ALIAS_DOMAIN_FLAG)?2:1 /*no keys*/, 2 /*no cols*/, - NULL, &db_res)!=0) + (flags&ALIAS_DOMAIN_FLAG)?2:1 /*no keys*/, 2 /*no cols*/, + NULL, &db_res)!=0 || db_res==NULL) { LM_ERR("failed to query database\n"); goto err_server; @@ -113,9 +113,7 @@ static int alias_db_query(struct sip_msg* _msg, str table, if (RES_ROW_N(db_res)<=0 || RES_ROWS(db_res)[0].values[0].nul != 0) { LM_DBG("no alias found for R-URI\n"); - if (db_res!=NULL && adbf.free_result(db_handle, db_res) < 0) - LM_DBG("failed to freeing result of query\n"); - return -1; + goto err_server; }
memcpy(useruri_buf, "sip:", 4); @@ -144,10 +142,6 @@ static int alias_db_query(struct sip_msg* _msg, str table, break; default: LM_ERR("unknown type of DB user column\n"); - if (db_res != NULL && adbf.free_result(db_handle, db_res) < 0) - { - LM_DBG("failed to freeing result of query\n"); - } goto err_server; } @@ -180,10 +174,6 @@ static int alias_db_query(struct sip_msg* _msg, str table, break; default: LM_ERR("unknown type of DB user column\n"); - if (db_res != NULL && adbf.free_result(db_handle, db_res) < 0) - { - LM_DBG("failed to freeing result of query\n"); - } goto err_server; } user_s.s = useruri_buf; @@ -198,14 +188,18 @@ static int alias_db_query(struct sip_msg* _msg, str table, /** * Free the DB result */ - if (db_res!=NULL && adbf.free_result(db_handle, db_res) < 0) + if (adbf.free_result(db_handle, db_res) < 0) { LM_DBG("failed to freeing result of query\n"); + }
return 1;
err_server: - if (db_res!=NULL && adbf.free_result(db_handle, db_res) < 0) - LM_DBG("failed to freeing result of query\n"); + if (db_res!=NULL) { + if(adbf.free_result(db_handle, db_res) < 0) { + LM_DBG("failed to freeing result of query\n"); + } + } return -1; }