<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    The history must be removed, it was decided and lost of parts were
    updated with it removed.<br>
    <br>
    Regarding the number of branches, it is a matter of the context when
    you want to look at the new branches. As you already iterate through
    the transaction structure to see if a destination was used, then the
    safest is to iterate from 0. That because in a failure_route, the
    core destination set table is again starting from 0.<br>
    <br>
    Cheers,<br>
    Daniel<br>
    <br>
    <div class="moz-cite-prefix">On 04/09/15 15:37, Federico Cabiddu
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAFOaF_hgtrOLWnPGqoK7oUBjF_3raE1Th-WYxzT=FxxBW7-dvA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Thank you Daniel for the suggestion. I realized
        that I misunderstood the meaning of nr_branches. My intention
        was to use it as a "starting point" to check only the newly
        created branches in the destination set. I will change it
        according to your suggestion and also remove the history if you
        agree.
        <div><br>
        </div>
        <div>Thank you,</div>
        <div><br>
        </div>
        <div>Federico</div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Fri, Sep 4, 2015 at 3:27 PM,
          Daniel-Constantin Mierla <span dir="ltr"><<a
              moz-do-not-send="true" href="mailto:miconda@gmail.com"
              target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:miconda@gmail.com">miconda@gmail.com</a></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"> It is not a big
              problem, just wanted to underline it to be aware of. And
              it would be good to be removed, indeed.<br>
              <br>
              As I looked at the code in the file with this occasion, if
              you want to go through all outgoing branches in the
              destination set, then you need to do:<br>
              <br>
              init_branch_iterator();<br>
              <br>
              instead of:<br>
              <br>
              set_branch_iterator(nr_branches-1);<br>
              <br>
              That will look at all next hops that are already in
              destination set.<br>
              <br>
              Assuming that you mainly use this function when you get a
              new registration and have one new outgoing branch, then
              nr_branches-1 can result to be 0. However, if for what so
              ever reason you get more branches, then you will use only
              one with existing code. As I got it from the code, you
              check if the destination is already used, so just going
              again from branch 0 in destination set looks like what you
              wanted to do. Maybe I am wrong ...<br>
              <br>
              Cheers,<br>
              Daniel
              <div>
                <div class="h5"><br>
                  <br>
                  <div>On 04/09/15 15:21, Federico Cabiddu wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr">I'm sorry,
                      <div>I didn't see it with git difftool before
                        committing. Do you want that I clean the file?</div>
                      <div><br>
                      </div>
                      <div>Cheers,</div>
                      <div><br>
                      </div>
                      <div>Federico</div>
                    </div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Fri, Sep 4, 2015 at
                        3:18 PM, Daniel-Constantin Mierla <span
                          dir="ltr"><<a moz-do-not-send="true"
                            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">Hello,<br>
                          <br>
                          you re-introduced the history at the top of
                          the file, which was removed<br>
                          from tm module and going to be removed from
                          everywhere in the code, as<br>
                          most of it is irrelevant. The changes are
                          better tracked via git now,<br>
                          with the commit message and git diff/blame
                          being very handy.<br>
                          <br>
                          Cheers,<br>
                          Daniel<br>
                          <div>
                            <div><br>
                              On 04/09/15 15:13, Federico Cabiddu wrote:<br>
                              > Module: kamailio<br>
                              > Branch: master<br>
                              > Commit:
                              27bed654dcc4e9dd543a7f2f92e2174478bf7f26<br>
                              > URL: <a moz-do-not-send="true"
href="https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26"
                                rel="noreferrer" target="_blank">https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26</a><br>
                              ><br>
                              > Author: Federico Cabiddu <<a
                                moz-do-not-send="true"
                                href="mailto:federico.cabiddu@gmail.com"
                                target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:federico.cabiddu@gmail.com">federico.cabiddu@gmail.com</a></a>><br>
                              > Committer: Federico Cabiddu <<a
                                moz-do-not-send="true"
                                href="mailto:federico.cabiddu@gmail.com"
                                target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:federico.cabiddu@gmail.com">federico.cabiddu@gmail.com</a></a>><br>
                              > Date: 2015-09-04T15:12:29+02:00<br>
                              ><br>
                              > tm: check all the outgoing branches
                              when appending a new branch<br>
                              ><br>
                              > ---<br>
                              ><br>
                              > Modified:
                              modules/tm/t_append_branches.c<br>
                              ><br>
                              > ---<br>
                              ><br>
                              > Diff:  <a moz-do-not-send="true"
href="https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26.diff"
                                rel="noreferrer" target="_blank">https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26.diff</a><br>
                              > Patch: <a moz-do-not-send="true"
href="https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26.patch"
                                rel="noreferrer" target="_blank">https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26.patch</a><br>
                              ><br>
                              > ---<br>
                              ><br>
                              > diff --git
                              a/modules/tm/t_append_branches.c
                              b/modules/tm/t_append_branches.c<br>
                              > index 8060021..f16c672 100644<br>
                              > --- a/modules/tm/t_append_branches.c<br>
                              > +++ b/modules/tm/t_append_branches.c<br>
                              > @@ -23,6 +23,9 @@<br>
                              >   * NEGLIGENCE OR OTHERWISE) ARISING
                              IN ANY WAY OUT OF THE USE OF THIS
                              SOFTWARE,<br>
                              >   * EVEN IF ADVISED OF THE
                              POSSIBILITY OF SUCH DAMAGE.<br>
                              >   *<br>
                              > + * History:<br>
                              > + * -------<br>
                              > + *  2014-09-09  first release of
                              t_append_branches<br>
                              >   *<br>
                              >   */<br>
                              ><br>
                              > @@ -106,8 +109,6 @@ int
                              t_append_branches(void) {<br>
                              >             
                               set_branch_route(t->on_branch_delayed);<br>
                              >       }<br>
                              ><br>
                              > -     outgoings =
                              t->nr_of_outgoings;<br>
                              > -<br>
                              >       /* not really sure that the
                              following is needed */<br>
                              ><br>
                              >     
                               set_branch_iterator(nr_branches-1);<br>
                              > @@ -116,7 +117,7 @@ int
                              t_append_branches(void) {<br>
                              >                                     
                                                                     
                               &bflags, &si, &ruid,
                              &instance, &location_ua))) {<br>
                              >               LM_DBG("Current uri
                              %.*s\n",current_uri.len, current_uri.s);<br>
                              ><br>
                              > -             for (i=0;
                              i<=nr_branches; i++) {<br>
                              > +             for (i=0;
                              i<outgoings; i++) {<br>
                              >                       if
                              (t->uac[i].ruid.len == ruid.len<br>
                              >                                     
                               && !memcmp(t->uac[i].ruid.s,
                              ruid.s, ruid.len)) {<br>
                              >                             
                               LM_DBG("branch already added [%.*s]\n",
                              ruid.len, ruid.s);<br>
                              > @@ -133,6 +134,8 @@ int
                              t_append_branches(void) {<br>
                              >                                     
                               &path, 0, si,
                              orig_msg->fwd_send_flags,<br>
                              >                                     
                               orig_msg->rcv.proto,
                              (dst_uri.len)?-1:UAC_SKIP_BR_DST_F,
                              &instance,<br>
                              >                                     
                               &ruid, &location_ua);<br>
                              > +<br>
                              > +             LM_DBG("added branch
                              [%.*s] with ruid [%.*s]\n",
                              current_uri.len, current_uri.s, ruid.len,
                              ruid.s);<br>
                              ><br>
                              >               /* test if cancel was
                              received meanwhile */<br>
                              >               if (t->flags &
                              T_CANCELED) goto canceled;<br>
                              ><br>
                              ><br>
                              >
                              _______________________________________________<br>
                              > sr-dev mailing list<br>
                              > <a moz-do-not-send="true"
                                href="mailto:sr-dev@lists.sip-router.org"
                                target="_blank">sr-dev@lists.sip-router.org</a><br>
                              > <a moz-do-not-send="true"
                                href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev"
                                rel="noreferrer" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
                              <br>
                            </div>
                          </div>
                          <span><font color="#888888">--<br>
                              Daniel-Constantin Mierla<br>
                              <a moz-do-not-send="true"
                                href="http://twitter.com/#%21/miconda"
                                rel="noreferrer" target="_blank">http://twitter.com/#!/miconda</a>
                              - <a moz-do-not-send="true"
                                href="http://www.linkedin.com/in/miconda"
                                rel="noreferrer" target="_blank">http://www.linkedin.com/in/miconda</a><br>
                              Book: SIP Routing With Kamailio - <a
                                moz-do-not-send="true"
                                href="http://www.asipto.com"
                                target="_blank"><a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a></a><br>
                              <br>
                            </font></span></blockquote>
                      </div>
                      <br>
                    </div>
                  </blockquote>
                  <br>
                  <pre cols="72">-- 
Daniel-Constantin Mierla
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a>
Book: SIP Routing With Kamailio - <a moz-do-not-send="true" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a></pre>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Book: SIP Routing With Kamailio - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a></pre>
  </body>
</html>