Author: rizzo
Date: Sat Jul 28 19:09:05 2007
New Revision: 77655

URL: http://svn.digium.com/view/asterisk?view=rev&rev=77655
Log:
more diff reduction against trunk

Modified:
    team/rizzo/astobj2/channels/chan_sip.c

Modified: team/rizzo/astobj2/channels/chan_sip.c
URL: 
http://svn.digium.com/view/asterisk/team/rizzo/astobj2/channels/chan_sip.c?view=diff&rev=77655&r1=77654&r2=77655
==============================================================================
--- team/rizzo/astobj2/channels/chan_sip.c (original)
+++ team/rizzo/astobj2/channels/chan_sip.c Sat Jul 28 19:09:05 2007
@@ -8126,20 +8126,20 @@
 
        r->timeout = -1;        /* reset event reference */
        ast_log(LOG_NOTICE, "   -- Registration for '[EMAIL PROTECTED]' timed 
out, trying again (Attempt #%d)\n", r->username, r->hostname, r->regattempts); 
-       /* if the initial tranmission failed, we may not have an existing 
dialog,
+       /* If the initial tranmission failed, we may not have an existing 
dialog,
         * so it is possible that r->call == NULL.
-        * In any case we have a timeout so we don't want it.
+        * Otherwise destroy it, as we have a timeout so we don't want it.
         */
        if (r->call) {
                /* Unlink us, destroy old call.  Locking is not relevant here 
because all this happens
                   in the single SIP manager thread. */
-               /* XXX p->registry == r so and r has 2 refs, so the unref won't 
take the object away */
                p = r->call;
                p->needdestroy = 1;     /* XXX why do that if we are going to 
kill it in a moment ? */
                /* Pretend to ACK anything just in case */
                __sip_pretend_ack(p); /* XXX we need p locked, not sure we have 
*/
 
                /* decouple the two objects */
+               /* p->registry == r, so r has 2 refs, and the unref won't take 
the object away */
                if (p->registry)
                        p->registry = registry_unref(p->registry);
                r->call = dialog_unref(r->call);        /* reference goes away 
*/
@@ -8157,6 +8157,7 @@
                res=transmit_register(r, NULL, NULL);
        }
        manager_event(EVENT_FLAG_SYSTEM, "Registry", "ChannelType: 
SIP\r\nUsername: %s\r\nDomain: %s\r\nStatus: %s\r\n", r->username, r->hostname, 
regstate2str(r->regstate));
+       registry_unref(r);
        return 0;
 }
 
@@ -8780,7 +8781,7 @@
 
                destroy_association(peer);
                
-               register_peer_exten(peer, FALSE);       /* Add extension from 
regexten= setting in sip.conf */
+               register_peer_exten(peer, FALSE);       /* Remove extension 
from regexten= setting in sip.conf */
                peer->fullcontact[0] = '\0';
                peer->useragent[0] = '\0';
                peer->sipoptions = 0;
@@ -13554,6 +13555,7 @@
 
                /* Schedule re-registration before we expire */
                r->timeout=ast_sched_add(sched, expires_ms, sip_reregister, r); 
+               registry_unref(r);
        }
        return 1;
 }


_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.com--

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to