From dd114877274e7b8f6accc34c9f0271745b0ebed5 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 7 Apr 2008 14:03:10 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8041 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia.c | 10 ++++++---- src/mod/endpoints/mod_sofia/sofia_presence.c | 13 +++++++------ src/mod/endpoints/mod_sofia/sofia_reg.c | 11 ++++++----- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index e30b7d07ec..92b84a07ef 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2438,6 +2438,7 @@ const char *_url_set_chanvars(switch_core_session_t *session, url_t *url, const const char *user = NULL, *host = NULL, *port = NULL; char *uri = NULL; switch_channel_t *channel = switch_core_session_get_channel(session); + char new_port[25] = ""; if (url) { user = url->url_user; @@ -2462,16 +2463,17 @@ const char *_url_set_chanvars(switch_core_session_t *session, url_t *url, const switch_channel_set_variable(channel, user_var, user); } - if (!port) { - port = SOFIA_DEFAULT_PORT; + + if (port) { + switch_snprintf(new_port, sizeof(new_port), ":%s", port); } switch_channel_set_variable(channel, port_var, port); if (host) { if (user) { - uri = switch_core_session_sprintf(session, "%s@%s:%s", user, host, port); + uri = switch_core_session_sprintf(session, "%s@%s:%s", user, host, new_port); } else { - uri = switch_core_session_sprintf(session, "%s:%s", host, port); + uri = switch_core_session_sprintf(session, "%s:%s", host, new_port); } switch_channel_set_variable(channel, uri_var, uri); switch_channel_set_variable(channel, host_var, host); diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c index 626d213bb1..aba7d55236 100644 --- a/src/mod/endpoints/mod_sofia/sofia_presence.c +++ b/src/mod/endpoints/mod_sofia/sofia_presence.c @@ -1173,6 +1173,7 @@ void sofia_presence_handle_sip_i_subscribe(int status, if (contact) { char *port = (char *) contact->m_url->url_port; + char new_port[25] = ""; display = contact->m_display; @@ -1187,15 +1188,15 @@ void sofia_presence_handle_sip_i_subscribe(int status, display = "\"user\""; } - if (!port) { - port = SOFIA_DEFAULT_PORT; + if (port) { + switch_snprintf(new_port, sizeof(new_port), ":%s", port); } - + if (contact->m_url->url_params) { - contact_str = switch_mprintf("%s ", - display, contact->m_url->url_user, contact->m_url->url_host, port, contact->m_url->url_params); + contact_str = switch_mprintf("%s ", + display, contact->m_url->url_user, contact->m_url->url_host, new_port, contact->m_url->url_params); } else { - contact_str = switch_mprintf("%s ", display, contact->m_url->url_user, contact->m_url->url_host, port); + contact_str = switch_mprintf("%s ", display, contact->m_url->url_user, contact->m_url->url_host, new_port); } } diff --git a/src/mod/endpoints/mod_sofia/sofia_reg.c b/src/mod/endpoints/mod_sofia/sofia_reg.c index a84d7fa88a..38d5d5c27a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_reg.c +++ b/src/mod/endpoints/mod_sofia/sofia_reg.c @@ -403,6 +403,7 @@ uint8_t sofia_reg_handle_register(nua_t * nua, sofia_profile_t *profile, nua_han if (contact->m_url) { const char *port = contact->m_url->url_port; + char new_port[25] = ""; display = contact->m_display; if (switch_strlen_zero(display)) { @@ -414,15 +415,15 @@ uint8_t sofia_reg_handle_register(nua_t * nua, sofia_profile_t *profile, nua_han } } - if (!port) { - port = SOFIA_DEFAULT_PORT; + if (port) { + switch_snprintf(new_port, sizeof(new_port), ":%s", port); } if (contact->m_url->url_params) { - switch_snprintf(contact_str, sizeof(contact_str), "%s ", - display, contact->m_url->url_user, contact->m_url->url_host, port, contact->m_url->url_params); + switch_snprintf(contact_str, sizeof(contact_str), "%s ", + display, contact->m_url->url_user, contact->m_url->url_host, new_port, contact->m_url->url_params); } else { - switch_snprintf(contact_str, sizeof(contact_str), "%s ", display, contact->m_url->url_user, contact->m_url->url_host, port); + switch_snprintf(contact_str, sizeof(contact_str), "%s ", display, contact->m_url->url_user, contact->m_url->url_host, new_port); } }