From 0c1367c11d397341b9932ffa9b31c50fcce1eb89 Mon Sep 17 00:00:00 2001 From: Anthony Minessale <anthony.minessale@gmail.com> Date: Fri, 18 Jan 2008 00:10:23 +0000 Subject: [PATCH] refactor git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7277 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia.c | 2 +- src/switch_rtp.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 1293458902..1d302ef31c 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2453,7 +2453,7 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_ } else { const char *url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_url : profile->url; - if (strchr(url, '>')) { + if (url && strchr(url, '>')) { tech_pvt->reply_contact = switch_core_session_sprintf(session, "%s;transport=%s", url, sofia_glue_transport2str(transport)); } else { tech_pvt->reply_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", url, sofia_glue_transport2str(transport)); diff --git a/src/switch_rtp.c b/src/switch_rtp.c index f1f4958730..7963be03a0 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -770,6 +770,7 @@ SWITCH_DECLARE(uint8_t) switch_rtp_ready(switch_rtp_t *rtp_session) SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session) { void *pop; + switch_socket_t *sock; if (!switch_rtp_ready(*rtp_session)) { return; @@ -792,8 +793,10 @@ SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session) } switch_rtp_kill_socket(*rtp_session); - switch_socket_close((*rtp_session)->sock); + sock = (*rtp_session)->sock; (*rtp_session)->sock = NULL; + switch_socket_close(sock); + if (switch_test_flag((*rtp_session), SWITCH_RTP_FLAG_VAD)) { @@ -1088,7 +1091,9 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ switch_frame_flag_t frame_flags = SFF_NONE; data[0] = 65; rtp_session->cn++; + switch_mutex_lock(rtp_session->flag_mutex); rtp_common_write(rtp_session, NULL, (void *) data, 2, rtp_session->cng_pt, 0, &frame_flags); + switch_mutex_unlock(rtp_session->flag_mutex); } } @@ -1601,7 +1606,7 @@ static int rtp_common_write(switch_rtp_t *rtp_session, this_ts = ntohl(send_msg->header.ts); - if (rtp_session->sending_dtmf || !this_ts) { + if (!switch_rtp_ready(rtp_session) || rtp_session->sending_dtmf || !this_ts) { send = 0; }