Browse Source

htable: accept both DB1_STR and DB1_STRING from database

Ovidiu Sas 8 years ago
parent
commit
5cdab87aa1
1 changed files with 18 additions and 8 deletions
  1. 18 8
      src/modules/htable/ht_db.c

+ 18 - 8
src/modules/htable/ht_db.c

@@ -271,19 +271,29 @@ int ht_db_load_table(ht_t *ht, str *dbtable, int mode)
 				goto error;
 			}
 
-			if(RES_ROWS(db_res)[i].values[0].type!=DB1_STRING) {
+			switch(RES_ROWS(db_res)[i].values[0].type) {
+			case DB1_STR:
+				kname.s = (RES_ROWS(db_res)[i].values[0].val.str_val.s);
+				if(kname.s==NULL) {
+					LM_ERR("null key in row %d\n", i);
+					goto error;
+				}
+				kname.len = (RES_ROWS(db_res)[i].values[0].val.str_val.len);
+				break;
+			case DB1_STRING:
+				kname.s = (char*)(RES_ROWS(db_res)[i].values[0].val.string_val);
+				if(kname.s==NULL) {
+					LM_ERR("null key in row %d\n", i);
+					goto error;
+				}
+				kname.len = strlen(kname.s);
+				break;
+			default:
 				LM_ERR("key type must be string (type=%d)\n",
 						RES_ROWS(db_res)[i].values[0].type);
 				goto error;
 			}
 
-			kname.s = (char*)(RES_ROWS(db_res)[i].values[0].val.string_val);
-			if(kname.s==NULL) {
-				LM_ERR("null key in row %d\n", i);
-				goto error;
-			}
-			kname.len = strlen(kname.s);
-
 			if(ht->ncols>0) {
 				if(ht_pack_values(ht, db_res, i, ncols, &val.s)<0) {
 					LM_ERR("Error packing values\n");