Module: kamailio
Branch: master
Commit: 1a7077f8adf540477321a08f1b8d318aa0f00a5e
URL: 
https://github.com/kamailio/kamailio/commit/1a7077f8adf540477321a08f1b8d318aa0f00a5e

Author: jaybeepee <[email protected]>
Committer: jaybeepee <[email protected]>
Date: 2016-09-12T11:04:58+02:00

modules/ims_usrloc_scscf: don't store contact param with a trailing ';'

---

Modified: modules/ims_usrloc_scscf/usrloc_db.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/1a7077f8adf540477321a08f1b8d318aa0f00a5e.diff
Patch: 
https://github.com/kamailio/kamailio/commit/1a7077f8adf540477321a08f1b8d318aa0f00a5e.patch

---

diff --git a/modules/ims_usrloc_scscf/usrloc_db.c 
b/modules/ims_usrloc_scscf/usrloc_db.c
index 4d95f78..418bb7a 100644
--- a/modules/ims_usrloc_scscf/usrloc_db.c
+++ b/modules/ims_usrloc_scscf/usrloc_db.c
@@ -267,8 +267,10 @@ int db_delete_impurecord(udomain_t* _d, struct impurecord* 
_r) {
 }
 
 static int MAX_PARAMS_SIZE = 1000;
-static str param_name_and_nody = {"%.*s=%.*s;", 1};
+static str param_name_and_body = {"%.*s=%.*s;", 1};
+static str param_name_and_body_last = {"%.*s=%.*s", 1};
 static str param_name_no_body = {"%.*s;", 1};
+static str param_name_no_body_last = {"%.*s", 1};
 
 int db_insert_ucontact(impurecord_t* _r, ucontact_t* _c) {
 
@@ -279,6 +281,7 @@ int db_insert_ucontact(impurecord_t* _r, ucontact_t* _c) {
        param_buf.len = 0;
        param_pad.s = param_padc;
        param_pad.len = 0;
+       char* format_name_and_body, *format_name_no_body;
 
        db_key_t key[7];
        db_val_t val[7];
@@ -287,14 +290,21 @@ int db_insert_ucontact(impurecord_t* _r, ucontact_t* _c) {
 
        tmp = _c->params;
        while (tmp) {
-           if(tmp->body.len > 0) {
-               sprintf(param_pad.s, param_name_and_nody.s, tmp->name.len, 
tmp->name.s, tmp->body.len, tmp->body.s);
-           } else {
-               sprintf(param_pad.s, param_name_no_body.s, tmp->name.len, 
tmp->name.s);
-           }
-           param_pad.len = strlen(param_pad.s);
-           STR_APPEND(param_buf, param_pad);
-           tmp = tmp->next;
+               if (tmp->next == 0) {
+                       format_name_and_body = param_name_and_body_last.s;
+                       format_name_no_body = param_name_no_body_last.s;
+               } else {
+                       format_name_and_body = param_name_and_body.s;
+                       format_name_no_body = param_name_no_body.s;
+               }
+               if (tmp->body.len > 0) {
+                       sprintf(param_pad.s, format_name_and_body, 
tmp->name.len, tmp->name.s, tmp->body.len, tmp->body.s);
+               } else {
+                       sprintf(param_pad.s, format_name_no_body, 
tmp->name.len, tmp->name.s);
+               }
+               param_pad.len = strlen(param_pad.s);
+               STR_APPEND(param_buf, param_pad);
+               tmp = tmp->next;
        }
        LM_DBG("Converted params to string to insert into db: [%.*s]\n", 
param_buf.len, param_buf.s);
 


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to