<div dir="ltr">Hi Daniel,<div><br></div><div>i'm sorry, i made the changes in 4.0 branch. here's the reviewed patch for master.</div><div><br></div><div>Thank You</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Sep 8, 2014 at 3:28 PM, Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    this patch seems to be against a old version, is not against against
    master branch, because:<br>
    - it puts the old address of FSF in the license text<br>
    - it reverts some patches done lately, like removing the tcp
    connection id and some call-id conditions<br>
    <br>
    Can you double check if you work on master branch and send the patch
    for it?<br>
    <br>
    Cheers,<br>
    Daniel<div><div class="h5"><br>
    <br>
    <div>On 08/09/14 15:06, Luis Azedo wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Hi Daniel,
        <div><br>
        </div>
        <div>here it is.</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Mon, Sep 8, 2014 at 1:25 PM,
          Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"> Hello,<br>
              <br>
              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.<br>
              <br>
              Thanks,<br>
              Daniel
              <div>
                <div><br>
                  <br>
                  <div>On 04/09/14 11:52, Luis Azedo wrote:<br>
                  </div>
                </div>
              </div>
              <blockquote type="cite">
                <div>
                  <div>
                    <div dir="ltr">Hi Daniel,
                      <div><br>
                      </div>
                      <div>the insert contact sets the columns for which
                        there is not info to null.</div>
                      <div>i propose not to include those columns in the
                        insert. </div>
                      <div>this way is compatible with dbtext module.</div>
                      <div><br>
                      </div>
                      <div>Best<br>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                        <div>
                          <div>diff --git a/modules/usrloc/ucontact.c
                            b/modules/usrloc/ucontact.c</div>
                          <div>index eeee451..3bfdb65 100644</div>
                          <div>--- a/modules/usrloc/ucontact.c</div>
                          <div>+++ b/modules/usrloc/ucontact.c</div>
                          <div>@@ -476,131 +476,125 @@</div>
                          <div> <span style="white-space:pre-wrap"> </span>return

                            -1;</div>
                          <div> <span style="white-space:pre-wrap"> </span>}</div>
                          <div> </div>
                          <div> -<span style="white-space:pre-wrap"> </span>keys[0]
                            = &user_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[1]

                            = &contact_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[2]

                            = &expires_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[3]

                            = &q_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[4]

                            = &callid_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[5]

                            = &cseq_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[6]

                            = &flags_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[7]

                            = &cflags_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[8]

                            = &user_agent_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[9]

                            = &received_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[10]

                            = &path_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[11]

                            = &sock_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[12]

                            = &methods_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[13]

                            = &last_mod_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[14]

                            = &ruid_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[15]

                            = &instance_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[16]

                            = &reg_id_col;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>keys[17]

                            = &domain_col;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[0]

                            = &user_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[0].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[0].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[0].val.str_val.s

                            = _c->aor->s;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[0].val.str_val.len

                            = _c->aor->len;</div>
                          <div> </div>
                          <div> +<span style="white-space:pre-wrap"> </span>keys[1]
                            = &contact_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[1].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[1].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[1].val.str_val.s

                            = _c->c.s; </div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[1].val.str_val.len

                            = _c->c.len;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[2]

                            = &expires_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[2].type

                            = DB1_DATETIME;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[2].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[2].val.time_val

                            = _c->expires;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[3]

                            = &q_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[3].type

                            = DB1_DOUBLE;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[3].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[3].val.double_val

                            = q2double(_c->q);</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[4]

                            = &callid_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[4].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[4].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[4].val.str_val.s

                            = _c->callid.s;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[4].val.str_val.len

                            = _c->callid.len;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[5]

                            = &cseq_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[5].type

                            = DB1_INT;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[5].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[5].val.int_val

                            = _c->cseq;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[6]

                            = &flags_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[6].type

                            = DB1_INT;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[6].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[6].val.bitmap_val

                            = _c->flags;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[7]

                            = &cflags_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[7].type

                            = DB1_INT;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[7].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[7].val.bitmap_val

                            = _c->cflags;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[8]

                            = &user_agent_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[8].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[8].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[8].val.str_val.s

                            = _c->user_agent.s;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[8].val.str_val.len

                            = _c->user_agent.len;</div>
                          <div> </div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[9].type

                            = DB1_STR;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>if

                            (_c->received.s == 0) {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[9].nul

                            = 1;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>}
                            else {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[9].nul

                            = 0;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[9].val.str_val.s

                            = _c->received.s;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[9].val.str_val.len

                            = _c->received.len;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols

                            = 9;</div>
                          <div>+</div>
                          <div>+<span style="white-space:pre-wrap"> </span>if

                            (_c->received.s ) {</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &received_col;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_STR;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val.s

                            = _c->received.s;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val.len

                            = _c->received.len;</div>
                          <div> +<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> <span style="white-space:pre-wrap"> </span>}</div>
                          <div> <span style="white-space:pre-wrap"> </span></div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[10].type

                            = DB1_STR;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>if

                            (_c->path.s == 0) {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[10].nul

                            = 1;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>}
                            else {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[10].nul

                            = 0;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[10].val.str_val.s

                            = _c->path.s;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[10].val.str_val.len

                            = _c->path.len;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>if

                            (_c->path.s) {</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &path_col;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_STR;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val.s

                            = _c->path.s;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val.len

                            = _c->path.len;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> <span style="white-space:pre-wrap"> </span>}</div>
                          <div> </div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[11].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>if

                            (_c->sock) {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[11].val.str_val

                            = _c->sock->sock_str;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[11].nul

                            = 0;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>}
                            else {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[11].nul

                            = 1;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &sock_col;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_STR;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val

                            = _c->sock->sock_str;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> <span style="white-space:pre-wrap"> </span>}</div>
                          <div> </div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[12].type

                            = DB1_BITMAP;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>if

                            (_c->methods == 0xFFFFFFFF) {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[12].nul

                            = 1;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>}
                            else {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[12].val.bitmap_val

                            = _c->methods;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[12].nul

                            = 0;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>if

                            (_c->methods != 0xFFFFFFFF) {</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &methods_col;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_BITMAP;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.bitmap_val

                            = _c->methods;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> <span style="white-space:pre-wrap"> </span>}</div>
                          <div> </div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[13].type

                            = DB1_DATETIME;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[13].nul

                            = 0;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[13].val.time_val

                            = _c->last_modified;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &last_mod_col;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_DATETIME;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>vals[nr_cols].val.time_val

                            = _c->last_modified;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> </div>
                          <div>-<span style="white-space:pre-wrap"> </span>nr_cols

                            = 14;</div>
                          <div> </div>
                          <div> <span style="white-space:pre-wrap"> </span>if(_c->ruid.len>0)</div>
                          <div> <span style="white-space:pre-wrap"> </span>{</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &ruid_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val

                            = _c->ruid;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>}
                            else {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 1;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div>  <span style="white-space:pre-wrap"> </span>}</div>
                          <div>-<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> </div>
                          <div> <span style="white-space:pre-wrap"> </span>if(_c->instance.len>0)</div>
                          <div> <span style="white-space:pre-wrap"> </span>{</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &instance_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].val.str_val

                            = _c->instance;</div>
                          <div>-<span style="white-space:pre-wrap"> </span>}
                            else {</div>
                          <div>-<span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 1;</div>
                          <div>+<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> <span style="white-space:pre-wrap"> </span>}</div>
                          <div>-<span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> </div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &reg_id_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_INT;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].val.int_val

                            = (int)_c->reg_id;</div>
                          <div> <span style="white-space:pre-wrap"> </span>nr_cols++;</div>
                          <div> </div>
                          <div> <span style="white-space:pre-wrap"> </span>if

                            (use_domain) {</div>
                          <div>+<span style="white-space:pre-wrap"> </span>keys[nr_cols]

                            = &domain_col;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].type

                            = DB1_STR;</div>
                          <div> <span style="white-space:pre-wrap"> </span>vals[nr_cols].nul

                            = 0;</div>
                          <div> </div>
                        </div>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <pre>_______________________________________________
sr-dev mailing list
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><span><font color="#888888">
</font></span></pre>
                <span><font color="#888888"> </font></span></blockquote>
              <span><font color="#888888"> <br>
                  <pre cols="72">-- 
Daniel-Constantin Mierla
<a href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a>
Next Kamailio Advanced Trainings 2014 - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
Sep 22-25, Berlin, Germany</pre>
                </font></span></div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <pre cols="72">-- 
Daniel-Constantin Mierla
<a href="http://twitter.com/#!/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a>
Next Kamailio Advanced Trainings 2014 - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
Sep 22-25, Berlin, Germany</pre>
  </div></div></div>

</blockquote></div><br></div>