[sr-dev] patch - usrloc module insert contact

Daniel-Constantin Mierla miconda at gmail.com
Mon Sep 8 17:10:01 CEST 2014


Hello,

patch pushed to master branch.

Cheers,
Daniel

On 08/09/14 16:55, Luis Azedo wrote:
> Hi Daniel,
>
> i'm sorry, i made the changes in 4.0 branch. here's the reviewed patch 
> for master.
>
> Thank You
>
>
> On Mon, Sep 8, 2014 at 3:28 PM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     this patch seems to be against a old version, is not against
>     against master branch, because:
>     - it puts the old address of FSF in the license text
>     - it reverts some patches done lately, like removing the tcp
>     connection id and some call-id conditions
>
>     Can you double check if you work on master branch and send the
>     patch for it?
>
>     Cheers,
>     Daniel
>
>
>     On 08/09/14 15:06, Luis Azedo wrote:
>>     Hi Daniel,
>>
>>     here it is.
>>
>>
>>
>>     On Mon, Sep 8, 2014 at 1:25 PM, Daniel-Constantin Mierla
>>     <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>
>>         Hello,
>>
>>         this patch is also good in general, so I will apply it. Can
>>         you send it as attachment? When pasted inline in the email,
>>         the whitespaces are getting broken and patch is not easy to
>>         apply.
>>
>>         Thanks,
>>         Daniel
>>
>>
>>         On 04/09/14 11:52, Luis Azedo wrote:
>>>         Hi Daniel,
>>>
>>>         the insert contact sets the columns for which there is not
>>>         info to null.
>>>         i propose not to include those columns in the insert.
>>>         this way is compatible with dbtext module.
>>>
>>>         Best
>>>
>>>
>>>         diff --git a/modules/usrloc/ucontact.c
>>>         b/modules/usrloc/ucontact.c
>>>         index eeee451..3bfdb65 100644
>>>         --- a/modules/usrloc/ucontact.c
>>>         +++ b/modules/usrloc/ucontact.c
>>>         @@ -476,131 +476,125 @@
>>>         return -1;
>>>         }
>>>         -keys[0] = &user_col;
>>>         -keys[1] = &contact_col;
>>>         -keys[2] = &expires_col;
>>>         -keys[3] = &q_col;
>>>         -keys[4] = &callid_col;
>>>         -keys[5] = &cseq_col;
>>>         -keys[6] = &flags_col;
>>>         -keys[7] = &cflags_col;
>>>         -keys[8] = &user_agent_col;
>>>         -keys[9] = &received_col;
>>>         -keys[10] = &path_col;
>>>         -keys[11] = &sock_col;
>>>         -keys[12] = &methods_col;
>>>         -keys[13] = &last_mod_col;
>>>         -keys[14] = &ruid_col;
>>>         -keys[15] = &instance_col;
>>>         -keys[16] = &reg_id_col;
>>>         -keys[17] = &domain_col;
>>>         +keys[0] = &user_col;
>>>         vals[0].type = DB1_STR;
>>>         vals[0].nul = 0;
>>>         vals[0].val.str_val.s = _c->aor->s;
>>>         vals[0].val.str_val.len = _c->aor->len;
>>>         +keys[1] = &contact_col;
>>>         vals[1].type = DB1_STR;
>>>         vals[1].nul = 0;
>>>         vals[1].val.str_val.s = _c->c.s;
>>>         vals[1].val.str_val.len = _c->c.len;
>>>         +keys[2] = &expires_col;
>>>         vals[2].type = DB1_DATETIME;
>>>         vals[2].nul = 0;
>>>         vals[2].val.time_val = _c->expires;
>>>         +keys[3] = &q_col;
>>>         vals[3].type = DB1_DOUBLE;
>>>         vals[3].nul = 0;
>>>         vals[3].val.double_val = q2double(_c->q);
>>>         +keys[4] = &callid_col;
>>>         vals[4].type = DB1_STR;
>>>         vals[4].nul = 0;
>>>         vals[4].val.str_val.s = _c->callid.s;
>>>         vals[4].val.str_val.len = _c->callid.len;
>>>         +keys[5] = &cseq_col;
>>>         vals[5].type = DB1_INT;
>>>         vals[5].nul = 0;
>>>         vals[5].val.int_val = _c->cseq;
>>>         +keys[6] = &flags_col;
>>>         vals[6].type = DB1_INT;
>>>         vals[6].nul = 0;
>>>         vals[6].val.bitmap_val = _c->flags;
>>>         +keys[7] = &cflags_col;
>>>         vals[7].type = DB1_INT;
>>>         vals[7].nul = 0;
>>>         vals[7].val.bitmap_val = _c->cflags;
>>>         +keys[8] = &user_agent_col;
>>>         vals[8].type = DB1_STR;
>>>         vals[8].nul = 0;
>>>         vals[8].val.str_val.s = _c->user_agent.s;
>>>         vals[8].val.str_val.len = _c->user_agent.len;
>>>         -vals[9].type = DB1_STR;
>>>         -if (_c->received.s == 0) {
>>>         -vals[9].nul = 1;
>>>         -} else {
>>>         -vals[9].nul = 0;
>>>         -vals[9].val.str_val.s = _c->received.s;
>>>         -vals[9].val.str_val.len = _c->received.len;
>>>         +nr_cols = 9;
>>>         +
>>>         +if (_c->received.s ) {
>>>         +keys[nr_cols] = &received_col;
>>>         +vals[nr_cols].type = DB1_STR;
>>>         +vals[nr_cols].nul = 0;
>>>         +vals[nr_cols].val.str_val.s = _c->received.s;
>>>         +vals[nr_cols].val.str_val.len = _c->received.len;
>>>         +nr_cols++;
>>>         }
>>>         -vals[10].type = DB1_STR;
>>>         -if (_c->path.s == 0) {
>>>         -vals[10].nul = 1;
>>>         -} else {
>>>         -vals[10].nul = 0;
>>>         -vals[10].val.str_val.s = _c->path.s;
>>>         -vals[10].val.str_val.len = _c->path.len;
>>>         +if (_c->path.s) {
>>>         +keys[nr_cols] = &path_col;
>>>         +vals[nr_cols].type = DB1_STR;
>>>         +vals[nr_cols].nul = 0;
>>>         +vals[nr_cols].val.str_val.s = _c->path.s;
>>>         +vals[nr_cols].val.str_val.len = _c->path.len;
>>>         +nr_cols++;
>>>         }
>>>         -vals[11].type = DB1_STR;
>>>         if (_c->sock) {
>>>         -vals[11].val.str_val = _c->sock->sock_str;
>>>         -vals[11].nul = 0;
>>>         -} else {
>>>         -vals[11].nul = 1;
>>>         +keys[nr_cols] = &sock_col;
>>>         +vals[nr_cols].type = DB1_STR;
>>>         +vals[nr_cols].val.str_val = _c->sock->sock_str;
>>>         +vals[nr_cols].nul = 0;
>>>         +nr_cols++;
>>>         }
>>>         -vals[12].type = DB1_BITMAP;
>>>         -if (_c->methods == 0xFFFFFFFF) {
>>>         -vals[12].nul = 1;
>>>         -} else {
>>>         -vals[12].val.bitmap_val = _c->methods;
>>>         -vals[12].nul = 0;
>>>         +if (_c->methods != 0xFFFFFFFF) {
>>>         +keys[nr_cols] = &methods_col;
>>>         +vals[nr_cols].type = DB1_BITMAP;
>>>         +vals[nr_cols].val.bitmap_val = _c->methods;
>>>         +vals[nr_cols].nul = 0;
>>>         +nr_cols++;
>>>         }
>>>         -vals[13].type = DB1_DATETIME;
>>>         -vals[13].nul = 0;
>>>         -vals[13].val.time_val = _c->last_modified;
>>>         +keys[nr_cols] = &last_mod_col;
>>>         +vals[nr_cols].type = DB1_DATETIME;
>>>         +vals[nr_cols].nul = 0;
>>>         +vals[nr_cols].val.time_val = _c->last_modified;
>>>         +nr_cols++;
>>>         -nr_cols = 14;
>>>         if(_c->ruid.len>0)
>>>         {
>>>         +keys[nr_cols] = &ruid_col;
>>>         vals[nr_cols].type = DB1_STR;
>>>         vals[nr_cols].nul = 0;
>>>         vals[nr_cols].val.str_val = _c->ruid;
>>>         -} else {
>>>         -vals[nr_cols].nul = 1;
>>>         +nr_cols++;
>>>         }
>>>         -nr_cols++;
>>>         if(_c->instance.len>0)
>>>         {
>>>         +keys[nr_cols] = &instance_col;
>>>         vals[nr_cols].type = DB1_STR;
>>>         vals[nr_cols].nul = 0;
>>>         vals[nr_cols].val.str_val = _c->instance;
>>>         -} else {
>>>         -vals[nr_cols].nul = 1;
>>>         +nr_cols++;
>>>         }
>>>         -nr_cols++;
>>>         +keys[nr_cols] = &reg_id_col;
>>>         vals[nr_cols].type = DB1_INT;
>>>         vals[nr_cols].nul = 0;
>>>         vals[nr_cols].val.int_val = (int)_c->reg_id;
>>>         nr_cols++;
>>>         if (use_domain) {
>>>         +keys[nr_cols] = &domain_col;
>>>         vals[nr_cols].type = DB1_STR;
>>>         vals[nr_cols].nul = 0;
>>>
>>>
>>>         _______________________________________________
>>>         sr-dev mailing list
>>>         sr-dev at lists.sip-router.org  <mailto:sr-dev at lists.sip-router.org>
>>>         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>>         -- 
>>         Daniel-Constantin Mierla
>>         http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  -http://www.linkedin.com/in/miconda
>>         Next Kamailio Advanced Trainings 2014 -http://www.asipto.com
>>         Sep 22-25, Berlin, Germany
>>
>>
>
>     -- 
>     Daniel-Constantin Mierla
>     http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  -http://www.linkedin.com/in/miconda
>     Next Kamailio Advanced Trainings 2014 -http://www.asipto.com
>     Sep 22-25, Berlin, Germany
>
>

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140908/962fff19/attachment-0001.html>


More information about the sr-dev mailing list