diff options
-rw-r--r-- | channels/chan_sip.c | 11 | ||||
-rw-r--r-- | main/asterisk.c | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b661f0de2..845146972 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2959,6 +2959,7 @@ static void *_sip_tcp_helper_thread(struct ast_tcptls_session_instance *tcptls_s if (!(me = sip_threadinfo_create(tcptls_session, tcptls_session->ssl ? AST_TRANSPORT_TLS : AST_TRANSPORT_TCP))) { goto cleanup; } + me->threadid = pthread_self(); ao2_t_ref(me, +1, "Adding threadinfo ref for tcp_helper_thread"); } else { struct sip_threadinfo tmp = { @@ -2966,8 +2967,13 @@ static void *_sip_tcp_helper_thread(struct ast_tcptls_session_instance *tcptls_s }; if ((!(ca = tcptls_session->parent)) || - (!(me = ao2_t_find(threadt, &tmp, OBJ_POINTER, "ao2_find, getting sip_threadinfo in tcp helper thread"))) || - (!(tcptls_session = ast_tcptls_client_start(tcptls_session)))) { + (!(me = ao2_t_find(threadt, &tmp, OBJ_POINTER, "ao2_find, getting sip_threadinfo in tcp helper thread")))) { + goto cleanup; + } + + me->threadid = pthread_self(); + + if (!(tcptls_session = ast_tcptls_client_start(tcptls_session))) { goto cleanup; } } @@ -2978,7 +2984,6 @@ static void *_sip_tcp_helper_thread(struct ast_tcptls_session_instance *tcptls_s goto cleanup; } - me->threadid = pthread_self(); ast_debug(2, "Starting thread for %s server\n", tcptls_session->ssl ? "TLS" : "TCP"); /* set up pollfd to watch for reads on both the socket and the alert_pipe */ diff --git a/main/asterisk.c b/main/asterisk.c index fa919936b..746823ef5 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -1799,7 +1799,6 @@ static void _urg_handler(int num) static struct sigaction urg_handler = { .sa_handler = _urg_handler, - .sa_flags = SA_RESTART, }; static void _hup_handler(int num) |