]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
refactor
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 18 Jan 2008 00:10:23 +0000 (00:10 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 18 Jan 2008 00:10:23 +0000 (00:10 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7277 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia.c
src/switch_rtp.c

index 1293458902f6e77f71478d247cd83f5bac702b91..1d302ef31cf4e8a80eebda6dccdf7714019ce6cb 100644 (file)
@@ -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));
index f1f4958730a55c9756613db586a050ccf9df38b1..7963be03a0c5a82199179d4908872d46462c1c71 100644 (file)
@@ -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;
        }