summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2015-10-06 08:30:02 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2015-10-06 08:30:02 -0500
commit41b0e516e226b968ebc1af8b79bf38ede1b8c4a7 (patch)
treede7a823d7994c11192854048262f1c2680689a33 /channels
parent8f777ab58499f6b3b9264c9bd6750e0ad5eb033c (diff)
parent50fa9ff9972e67899dfc4e7e6766c5977d4aae7a (diff)
Merge "Fix improper usage of scheduler exposed by 5c713fdf18f" into 13
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c4
-rw-r--r--channels/chan_skinny.c26
2 files changed, 15 insertions, 15 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 89fe3f0c1..384e84303 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4318,7 +4318,7 @@ void sip_scheddestroy(struct sip_pvt *p, int ms)
}
p->autokillid = ast_sched_add(sched, ms, __sip_autodestruct, dialog_ref(p, "setting ref as passing into ast_sched_add for __sip_autodestruct"));
- if (p->stimer && p->stimer->st_active == TRUE && p->stimer->st_schedid > 0) {
+ if (p->stimer && p->stimer->st_active == TRUE && p->stimer->st_schedid > -1) {
stop_session_timer(p);
}
}
@@ -22739,7 +22739,7 @@ static void check_pendings(struct sip_pvt *p)
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
/* if we can't REINVITE, hold it for later */
- if (p->pendinginvite || p->invitestate == INV_CALLING || p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA || p->waitid > 0) {
+ if (p->pendinginvite || p->invitestate == INV_CALLING || p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA || p->waitid > -1) {
ast_debug(2, "NOT Sending pending reinvite (yet) on '%s'\n", p->callid);
} else {
ast_debug(2, "Sending pending reinvite on '%s'\n", p->callid);
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 3d2d2e8d1..23a48356f 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -4863,7 +4863,7 @@ static int skinny_dialer_cb(const void *data)
{
struct skinny_subchannel *sub = (struct skinny_subchannel *)data;
SKINNY_DEBUG(DEBUG_SUB, 3, "Sub %u - Dialer called from SCHED %d\n", sub->callid, sub->dialer_sched);
- sub->dialer_sched = 0;
+ sub->dialer_sched = -1;
skinny_dialer(sub, 1);
return 0;
}
@@ -4872,7 +4872,7 @@ static int skinny_autoanswer_cb(const void *data)
{
struct skinny_subchannel *sub = (struct skinny_subchannel *)data;
skinny_locksub(sub);
- sub->aa_sched = 0;
+ sub->aa_sched = -1;
setsubstate(sub, SKINNY_CONNECTED);
skinny_unlocksub(sub);
return 0;
@@ -4882,7 +4882,7 @@ static int skinny_cfwd_cb(const void *data)
{
struct skinny_subchannel *sub = (struct skinny_subchannel *)data;
struct skinny_line *l = sub->line;
- sub->cfwd_sched = 0;
+ sub->cfwd_sched = -1;
SKINNY_DEBUG(DEBUG_SUB, 3, "Sub %u - CFWDNOANS to %s.\n", sub->callid, l->call_forward_noanswer);
ast_channel_call_forward_set(sub->owner, l->call_forward_noanswer);
ast_queue_control(sub->owner, AST_CONTROL_REDIRECTING);
@@ -4924,7 +4924,7 @@ static int skinny_call(struct ast_channel *ast, const char *dest, int timeout)
skinny_locksub(sub);
AST_LIST_TRAVERSE(ast_channel_varshead(ast), current, entries) {
if (!(strcmp(ast_var_name(current), "SKINNY_AUTOANSWER"))) {
- if (d->hookstate == SKINNY_ONHOOK && !sub->aa_sched) {
+ if (d->hookstate == SKINNY_ONHOOK && sub->aa_sched < 0) {
char buf[24];
int aatime;
char *stringp = buf, *curstr;
@@ -5389,9 +5389,9 @@ static struct ast_channel *skinny_new(struct skinny_line *l, struct skinny_subli
sub->xferor = 0;
sub->related = NULL;
sub->calldirection = direction;
- sub->aa_sched = 0;
- sub->dialer_sched = 0;
- sub->cfwd_sched = 0;
+ sub->aa_sched = -1;
+ sub->dialer_sched = -1;
+ sub->cfwd_sched = -1;
sub->dialType = DIALTYPE_NORMAL;
sub->getforward = 0;
@@ -5550,17 +5550,17 @@ static void setsubstate(struct skinny_subchannel *sub, int state)
if (sub->dialer_sched) {
skinny_sched_del(sub->dialer_sched, sub);
- sub->dialer_sched = 0;
+ sub->dialer_sched = -1;
}
if (state != SUBSTATE_RINGIN && sub->aa_sched) {
skinny_sched_del(sub->aa_sched, sub);
- sub->aa_sched = 0;
+ sub->aa_sched = -1;
sub->aa_beep = 0;
sub->aa_mute = 0;
}
- if (sub->cfwd_sched) {
+ if (sub->cfwd_sched > -1) {
if (state == SUBSTATE_CONNECTED) {
if (skinny_sched_del(sub->cfwd_sched, sub)) {
SKINNY_DEBUG(DEBUG_SUB, 3, "Sub %u - trying to change state from %s to %s, but already forwarded because no answer.\n",
@@ -5568,7 +5568,7 @@ static void setsubstate(struct skinny_subchannel *sub, int state)
skinny_unlocksub(sub);
return;
}
- sub->cfwd_sched = 0;
+ sub->cfwd_sched = -1;
} else if (state == SUBSTATE_ONHOOK) {
skinny_sched_del(sub->cfwd_sched, sub);
}
@@ -6240,7 +6240,7 @@ static int handle_keypad_button_message(struct skinny_req *req, struct skinnyses
if ((sub->owner && ast_channel_state(sub->owner) < AST_STATE_UP)) {
if (sub->dialer_sched && !skinny_sched_del(sub->dialer_sched, sub)) {
SKINNY_DEBUG(DEBUG_SUB, 3, "Sub %u - Got a digit and not timed out, so try dialing\n", sub->callid);
- sub->dialer_sched = 0;
+ sub->dialer_sched = -1;
len = strlen(sub->exten);
if (len == 0) {
transmit_stop_tone(d, l->instance, sub->callid);
@@ -7077,7 +7077,7 @@ static int handle_soft_key_event_message(struct skinny_req *req, struct skinnyse
d->name, instance, callreference);
if (sub->dialer_sched && !skinny_sched_del(sub->dialer_sched, sub)) {
size_t len;
- sub->dialer_sched = 0;
+ sub->dialer_sched = -1;
len = strlen(sub->exten);
if (len > 0) {
sub->exten[len-1] = '\0';