[asterisk-dev] oej: trunk r128242 - /trunk/channels/chan_sip.c
Johansson Olle E
oej at edvina.net
Sun Jul 6 03:02:21 CDT 2008
6 jul 2008 kl. 06.16 skrev Russell Bryant:
> On Jul 5, 2008, at 4:59 PM, SVN commits to the Digium repositories
>> Author: oej
>> Date: Sat Jul 5 15:59:49 2008
>> New Revision: 128242
>> URL: http://svn.digium.com/view/asterisk?view=rev&rev=128242
>> KILL THE USER!
>> Actually, kill the in-memory structure for type=user and start using
>> the sip_peer
>> structure for every object. Have only one in-memory list and use
>> them different
>> ways depending on type=user, type=peer and type=friend - like always.
>> The idea with this first patch is that configurations should work as
>> Some additional features for realtime peers. By adding a type=
>> field, you
>> can now have multiple functions.
>> Let's test this for a while. Won't be integrated in 1.6.0, only in
>> for testing.
>> There's propably more to clean up and simplify here. Help is welcome
>> and encouraged!
> First comment; please update sip.conf.sample to reflect these changes.
There are no changes to sip.conf.sample - the syntax is the same.
Or did you want something else in there?
>> @@ -11931,10 +11649,15 @@
>> int debug=sip_debug_test_addr(sin);
>> struct sip_peer *peer;
>> - /* For subscribes, match on peer name only; for other methods,
>> + /* For subscribes, match on device name only; for other methods,
>> * match on IP address-port of the incoming request.
>> - peer = (sipmethod == SIP_SUBSCRIBE) ? find_peer(of, NULL, 1) :
>> find_peer(NULL, &p->recv, 1);
>> + /* First find device on name */
>> + peer = find_peer(of, NULL, TRUE, FALSE);
>> + /* Then find device on IP (if it's not a SUBSCRIBE) */
>> + if (sipmethod != SIP_SUBSCRIBE)
>> + find_peer(NULL, &p->recv, TRUE, FALSE);
> There is a bug here. I'm not sure what the intent is, but this second
> call to find_peer is clearly leaking a reference.
Please help me with that, since I don't see the same. I'm not fully
up to date with all the object changes in trunk, so I would be happy
to learn from your or someone else's fix to this problem.
More information about the asterisk-dev