summaryrefslogtreecommitdiff
path: root/res/res_pjsip_session.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2013-10-02 14:13:55 +0000
committerJoshua Colp <jcolp@digium.com>2013-10-02 14:13:55 +0000
commitc33aac75e4cc3bb0a689f5162213b9a91c134068 (patch)
treef89a9e86d972b8e92a7f4cc29cb01bf5edee97f5 /res/res_pjsip_session.c
parent7d17d5fb0470c4fa1ececbd133c4d0785ad94f96 (diff)
Retrieve and store the hostname only once so multiple threads do not potentially initialize it at the same time.
........ Merged revisions 400245 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400246 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_pjsip_session.c')
-rw-r--r--res/res_pjsip_session.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c
index 54e03f531..965f66ba4 100644
--- a/res/res_pjsip_session.c
+++ b/res/res_pjsip_session.c
@@ -48,6 +48,9 @@
#define MOD_DATA_ON_RESPONSE "on_response"
#define MOD_DATA_NAT_HOOK "nat_hook"
+/* Hostname used for origin line within SDP */
+static const pj_str_t *hostname;
+
/* Some forward declarations */
static void handle_incoming_request(struct ast_sip_session *session, pjsip_rx_data *rdata);
static void handle_incoming_response(struct ast_sip_session *session, pjsip_rx_data *rdata);
@@ -1991,7 +1994,7 @@ static struct pjmedia_sdp_session *create_local_sdp(pjsip_inv_session *inv, stru
pj_strdup2(inv->pool, &local->origin.user, session->endpoint->media.sdpowner);
local->origin.net_type = STR_IN;
local->origin.addr_type = session->endpoint->media.rtp.ipv6 ? STR_IP6 : STR_IP4;
- local->origin.addr = *pj_gethostname();
+ local->origin.addr = *hostname;
pj_strdup2(inv->pool, &local->name, session->endpoint->media.sdpsession);
/* Now let the handlers add streams of various types, pjmedia will automatically reorder the media streams for us */
@@ -2137,6 +2140,7 @@ static int load_module(void)
pjsip_inv_usage_init(endpt, &inv_callback);
pjsip_100rel_init_module(endpt);
pjsip_timer_init_module(endpt);
+ hostname = pj_gethostname();
if (ast_sip_register_service(&session_module)) {
return AST_MODULE_LOAD_DECLINE;
}