summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index baee946f2..8903041db 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -4382,11 +4382,13 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in
/* Whoops, we weren't supposed to exist! */
peer = peer_unref(peer);
break;
- }
+ }
} else if (!strcasecmp(tmp->name, "regseconds")) {
ast_get_time_t(tmp->value, &regseconds, 0, NULL);
} else if (!strcasecmp(tmp->name, "ipaddr")) {
- ast_sockaddr_parse(&peer->addr, tmp->value, PARSE_PORT_IGNORE);
+ if (!ast_sockaddr_parse(&peer->addr, tmp->value, PARSE_PORT_IGNORE)) {
+ ast_log(LOG_WARNING, "Failed to parse sockaddr '%s' for ipaddr of realtime peer '%s'\n", tmp->value, tmp->name);
+ }
} else if (!strcasecmp(tmp->name, "port")) {
ast_sockaddr_set_port(&peer->addr, atoi(tmp->value));
} else if (!strcasecmp(tmp->name, "host")) {
@@ -11653,6 +11655,7 @@ static void iax2_process_thread_cleanup(void *data)
ast_mutex_destroy(&thread->init_lock);
ast_cond_destroy(&thread->init_cond);
ast_free(thread);
+ /* Ignore check_return warning from Coverity for ast_atomic_dec_and_test below */
ast_atomic_dec_and_test(&iaxactivethreadcount);
}
@@ -12234,7 +12237,10 @@ static int start_network_thread(void)
AST_LIST_UNLOCK(&idle_list);
}
}
- ast_pthread_create_background(&netthreadid, NULL, network_thread, NULL);
+ if (ast_pthread_create_background(&netthreadid, NULL, network_thread, NULL)) {
+ ast_log(LOG_ERROR, "Failed to create new thread!\n");
+ return -1;
+ }
ast_verb(2, "%d helper threads started\n", threadcount);
return 0;
}