Module: sip-router Branch: 4.0 Commit: 17b858ac9b88de8859f9f1cbc76da146d8f125db URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=17b858ac...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: Wed Apr 24 10:26:49 2013 +0200
sqlops: use one char buf for empty strings in db results
- safe for the parts of code that want to access it even for write (cherry picked from commit a74980270b655124c276279e54b8f82965f3f4b8)
---
modules/sqlops/sql_api.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/modules/sqlops/sql_api.c b/modules/sqlops/sql_api.c index b5ce758..6528078 100644 --- a/modules/sqlops/sql_api.c +++ b/modules/sqlops/sql_api.c @@ -42,7 +42,7 @@ sql_con_t *_sql_con_root = NULL; sql_result_t *_sql_result_root = NULL;
-static str _sql_empty_str = {"", 0}; +static char _sql_empty_buf[1];
sql_con_t* sql_get_connection(str *name) { @@ -67,6 +67,8 @@ int sql_init_con(str *name, str *url) sql_con_t *sc; unsigned int conid;
+ *_sql_empty_buf = '\0'; + conid = core_case_hash(name, 0, 0);
sc = _sql_con_root; @@ -373,16 +375,18 @@ int sql_do_query(sql_con_t *con, str *query, sql_result_t *res) LM_ERR("no more memory\n"); goto error; } - db_longlong2str(RES_ROWS(db_res)[i].values[j].val.ll_val, res->vals[i][j].value.s.s, &res->vals[i][j].value.s.len); + db_longlong2str(RES_ROWS(db_res)[i].values[j].val.ll_val, + res->vals[i][j].value.s.s, &res->vals[i][j].value.s.len); break; default: res->vals[i][j].flags = PV_VAL_NULL; } if(res->vals[i][j].flags == PV_VAL_STR && sv.s) { - if(sv.len==0) + if(sv.len<=0) { - res->vals[i][j].value.s = _sql_empty_str; + res->vals[i][j].value.s.s = _sql_empty_buf; + res->vals[i][j].value.s.len = 0; continue; } res->vals[i][j].value.s.s