return -1;
}
+ reg->expire = -1;
+ reg->timeout = -1;
+
if (ast_string_field_init(reg, 256)) {
ao2_t_ref(reg, -1, "failed to string_field_init, drop reg");
return -1;
return -1;
}
+ mwi->resub = -1;
+
if (ast_string_field_init(mwi, 256)) {
ao2_t_ref(mwi, -1, "failed to string_field_init, drop mwi");
return -1;
}
ast_string_field_set(mwi, hostname, hostname);
ast_string_field_set(mwi, mailbox, mailbox);
- mwi->resub = -1;
mwi->portno = portnum;
mwi->transport = transport;
/* How long to wait for an extra digit, if there is an ambiguous match */
static int matchdigittimeout = 3000;
+/*!
+ * To apease the stupid compiler option on ast_sched_del()
+ * since we don't care about the return value.
+ */
+static int not_used;
+
#define SUBSTATE_UNSET 0
#define SUBSTATE_OFFHOOK 1
#define SUBSTATE_ONHOOK 2
int instance;
int res = -1;
- if (s->auth_timeout_sched && ast_sched_del(sched, s->auth_timeout_sched)) {
- return 0;
+ if (-1 < s->auth_timeout_sched) {
+ not_used = ast_sched_del(sched, s->auth_timeout_sched);
+ s->auth_timeout_sched = -1;
}
- s->auth_timeout_sched = 0;
AST_LIST_LOCK(&devices);
AST_LIST_TRAVERSE(&devices, d, list){
sub->cfwd_sched = -1;
} else if (state == SUBSTATE_ONHOOK) {
skinny_sched_del(sub->cfwd_sched, sub);
+ sub->cfwd_sched = -1;
}
}
static void handle_keepalive_message(struct skinny_req *req, struct skinnysession *s)
{
- if (ast_sched_del(sched, s->keepalive_timeout_sched)) {
- return;
- }
+ not_used = ast_sched_del(sched, s->keepalive_timeout_sched);
#ifdef AST_DEVMODE
{
{
struct skinnysession *s = (struct skinnysession *)data;
ast_log(LOG_WARNING, "Skinny Client failed to authenticate in %d seconds (SCHED %d)\n", auth_timeout, s->auth_timeout_sched);
- s->auth_timeout_sched = 0;
+ s->auth_timeout_sched = -1;
end_session(s);
return 0;
}
{
struct skinnysession *s = (struct skinnysession *)data;
ast_log(LOG_WARNING, "Skinny Client failed to send keepalive in last %d seconds (SCHED %d)\n", keep_alive*3, s->keepalive_timeout_sched);
- s->keepalive_timeout_sched = 0;
+ s->keepalive_timeout_sched = -1;
end_session(s);
return 0;
}
ast_mutex_unlock(&s->lock);
}
- if (s->auth_timeout_sched && !ast_sched_del(sched, s->auth_timeout_sched)) {
- s->auth_timeout_sched = 0;
+ if (-1 < s->auth_timeout_sched) {
+ not_used = ast_sched_del(sched, s->auth_timeout_sched);
+ s->auth_timeout_sched = -1;
}
- if (s->keepalive_timeout_sched && !ast_sched_del(sched, s->keepalive_timeout_sched)) {
- s->keepalive_timeout_sched = 0;
+ if (-1 < s->keepalive_timeout_sched) {
+ not_used = ast_sched_del(sched, s->keepalive_timeout_sched);
+ s->keepalive_timeout_sched = -1;
}
if (d) {
ast_mutex_init(&s->lock);
memcpy(&s->sin, &sin, sizeof(sin));
s->fd = as;
+ s->auth_timeout_sched = -1;
+ s->keepalive_timeout_sched = -1;
if (ast_pthread_create(&s->t, NULL, skinny_session, s)) {
destroy_session(s);