[OpenSER-Devel] SF.net SVN: openser: [4205] branches/1.3/modules/dialog/dlg_req_within.c

Dan Pascu dan at ag-projects.com
Sat May 17 09:20:12 CEST 2008


Revision: 4205
          http://openser.svn.sourceforge.net/openser/?rev=4205&view=rev
Author:   dan_pascu
Date:     2008-05-17 00:20:12 -0700 (Sat, 17 May 2008)

Log Message:
-----------
Fixed wrong reference counting that could occur in certain cases when
terminating the call using the MI dlg_end_dlg command. In such cases the
reference count was not decremented enough and kept the dialog in memory
because it never reached 0.

One case where this could happen is if a BYE send by one of the endpoints
arrived at the same time the local BYE messages were generated. 

Another case is when the messages in the dialog are forwarded to the proxy
itself, having more than 1 Record-Route with the proxy. There are certain
situations in this case where the route set in the dialog module is wrong
having one of the routes pointing to the proxy itself duplicated. This makes
the generated BYEs to be routed 1 more time than normal to the proxy itself,
triggering a dialog termination as if an external BYE has been received,
thus mimicking the previous mentioned case.

There is still a bug related to the wrong route set that needs to be fixed,
however this patch is able to fix and handle all cases gracefully, even when
the route set is wrong.

Backported from trunk rev 4204

Revision Links:
--------------
    http://openser.svn.sourceforge.net/openser/?rev=4204&view=rev

Modified Paths:
--------------
    branches/1.3/modules/dialog/dlg_req_within.c


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Devel mailing list