[sr-dev] git:master:27bed654: tm: check all the outgoing branches when appending a new branch

Daniel-Constantin Mierla miconda at gmail.com
Fri Sep 4 15:27:32 CEST 2015


It is not a big problem, just wanted to underline it to be aware of. And
it would be good to be removed, indeed.

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:

init_branch_iterator();

instead of:

set_branch_iterator(nr_branches-1);

That will look at all next hops that are already in destination set.

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 ...

Cheers,
Daniel

On 04/09/15 15:21, Federico Cabiddu wrote:
> I'm sorry,
> I didn't see it with git difftool before committing. Do you want that
> I clean the file?
>
> Cheers,
>
> Federico
>
> On Fri, Sep 4, 2015 at 3:18 PM, Daniel-Constantin Mierla
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     you re-introduced the history at the top of the file, which was
>     removed
>     from tm module and going to be removed from everywhere in the code, as
>     most of it is irrelevant. The changes are better tracked via git now,
>     with the commit message and git diff/blame being very handy.
>
>     Cheers,
>     Daniel
>
>     On 04/09/15 15:13, Federico Cabiddu wrote:
>     > Module: kamailio
>     > Branch: master
>     > Commit: 27bed654dcc4e9dd543a7f2f92e2174478bf7f26
>     > URL:
>     https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26
>     >
>     > Author: Federico Cabiddu <federico.cabiddu at gmail.com
>     <mailto:federico.cabiddu at gmail.com>>
>     > Committer: Federico Cabiddu <federico.cabiddu at gmail.com
>     <mailto:federico.cabiddu at gmail.com>>
>     > Date: 2015-09-04T15:12:29+02:00
>     >
>     > tm: check all the outgoing branches when appending a new branch
>     >
>     > ---
>     >
>     > Modified: modules/tm/t_append_branches.c
>     >
>     > ---
>     >
>     > Diff: 
>     https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26.diff
>     > Patch:
>     https://github.com/kamailio/kamailio/commit/27bed654dcc4e9dd543a7f2f92e2174478bf7f26.patch
>     >
>     > ---
>     >
>     > diff --git a/modules/tm/t_append_branches.c
>     b/modules/tm/t_append_branches.c
>     > index 8060021..f16c672 100644
>     > --- a/modules/tm/t_append_branches.c
>     > +++ b/modules/tm/t_append_branches.c
>     > @@ -23,6 +23,9 @@
>     >   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
>     OF THIS SOFTWARE,
>     >   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>     >   *
>     > + * History:
>     > + * -------
>     > + *  2014-09-09  first release of t_append_branches
>     >   *
>     >   */
>     >
>     > @@ -106,8 +109,6 @@ int t_append_branches(void) {
>     >               set_branch_route(t->on_branch_delayed);
>     >       }
>     >
>     > -     outgoings = t->nr_of_outgoings;
>     > -
>     >       /* not really sure that the following is needed */
>     >
>     >       set_branch_iterator(nr_branches-1);
>     > @@ -116,7 +117,7 @@ int t_append_branches(void) {
>     >                                                                 
>                  &bflags, &si, &ruid, &instance, &location_ua))) {
>     >               LM_DBG("Current uri %.*s\n",current_uri.len,
>     current_uri.s);
>     >
>     > -             for (i=0; i<=nr_branches; i++) {
>     > +             for (i=0; i<outgoings; i++) {
>     >                       if (t->uac[i].ruid.len == ruid.len
>     >                                       &&
>     !memcmp(t->uac[i].ruid.s, ruid.s, ruid.len)) {
>     >                               LM_DBG("branch already added
>     [%.*s]\n", ruid.len, ruid.s);
>     > @@ -133,6 +134,8 @@ int t_append_branches(void) {
>     >                                       &path, 0, si,
>     orig_msg->fwd_send_flags,
>     >                                       orig_msg->rcv.proto,
>     (dst_uri.len)?-1:UAC_SKIP_BR_DST_F, &instance,
>     >                                       &ruid, &location_ua);
>     > +
>     > +             LM_DBG("added branch [%.*s] with ruid [%.*s]\n",
>     current_uri.len, current_uri.s, ruid.len, ruid.s);
>     >
>     >               /* test if cancel was received meanwhile */
>     >               if (t->flags & T_CANCELED) goto canceled;
>     >
>     >
>     > _______________________________________________
>     > 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
>     Book: SIP Routing With Kamailio - http://www.asipto.com
>
>

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com

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


More information about the sr-dev mailing list