Merged revisions 106015 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 5 Mar 2008 15:23:32 +0000 (15:23 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 5 Mar 2008 15:23:32 +0000 (15:23 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r106015 | tilghman | 2008-03-05 09:17:16 -0600 (Wed, 05 Mar 2008) | 7 lines

Correctly initialize retransid in SIP, and ensure that the warning when failing to delete a schedule entry can actually hit the log.
(closes issue #12140)
 Reported by: slavon
 Patches:
       sch2.patch uploaded by slavon (license 288)
(Patch slightly modified by me)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@106036 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c
include/asterisk/sched.h

index a239e3d..4343583 100644 (file)
@@ -2824,6 +2824,7 @@ static enum sip_result __sip_reliable_xmit(struct sip_pvt *p, int seqno, int res
        pkt->next = p->packets;
        p->packets = pkt;       /* Add it to the queue */
        pkt->timer_t1 = p->timer_t1;    /* Set SIP timer T1 */
+       pkt->retransid = -1;
        if (pkt->timer_t1)
                siptimer_a = pkt->timer_t1 * 2;
 
index caba020..cd65a68 100644 (file)
@@ -38,8 +38,9 @@ extern "C" {
 #define AST_SCHED_DEL(sched, id) \
        do { \
                int _count = 0; \
-               while (id > -1 && ast_sched_del(sched, id) && _count++ < 10) \
+               while (id > -1 && ast_sched_del(sched, id) && ++_count < 10) { \
                        usleep(1); \
+               } \
                if (_count == 10) \
                        ast_log(LOG_WARNING, "Unable to cancel schedule ID %d.  This is probably a bug (%s: %s, line %d).\n", id, __FILE__, __PRETTY_FUNCTION__, __LINE__); \
                id = -1; \
@@ -48,8 +49,9 @@ extern "C" {
 #define AST_SCHED_REPLACE_VARIABLE(id, sched, when, callback, data, variable) \
        do { \
                int _count = 0; \
-               while (id > -1 && ast_sched_del(sched, id) && _count++ < 10) \
+               while (id > -1 && ast_sched_del(sched, id) && ++_count < 10) { \
                        usleep(1); \
+               } \
                if (_count == 10) \
                        ast_log(LOG_WARNING, "Unable to cancel schedule ID %d.  This is probably a bug (%s: %s, line %d).\n", id, __FILE__, __PRETTY_FUNCTION__, __LINE__); \
                id = ast_sched_add_variable(sched, when, callback, data, variable); \