From 61d12c050968fed0d76988d9a5b4b1db4c1a18ed Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Tue, 16 May 2006 10:19:50 +0000 Subject: Fixed bug in UAS dialog (remote.info_str was taken from local info) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@446 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsip/sip_dialog.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsip/sip_dialog.c b/pjsip/src/pjsip/sip_dialog.c index 9076a13f..dfa60495 100644 --- a/pjsip/src/pjsip/sip_dialog.c +++ b/pjsip/src/pjsip/sip_dialog.c @@ -315,18 +315,6 @@ PJ_DEF(pj_status_t) pjsip_dlg_create_uas( pjsip_user_agent *ua, dlg->local.tag_hval = pj_hash_calc(0, dlg->local.info->tag.ptr, dlg->local.info->tag.slen); - /* Print the local info. */ - len = pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, - dlg->local.info->uri, tmp.ptr, TMP_LEN); - if (len < 1) { - pj_ansi_strcpy(tmp.ptr, "<-error: uri too long->"); - tmp.slen = pj_ansi_strlen(tmp.ptr); - } else - tmp.slen = len; - - /* Save the local info. */ - pj_strdup(dlg->pool, &dlg->remote.info_str, &tmp); - /* Randomize local cseq */ dlg->local.first_cseq = pj_rand() % 0x7FFFFFFFL; @@ -362,6 +350,19 @@ PJ_DEF(pj_status_t) pjsip_dlg_create_uas( pjsip_user_agent *ua, dlg->remote.info = pjsip_hdr_clone(dlg->pool, rdata->msg_info.from); pjsip_fromto_hdr_set_to(dlg->remote.info); + /* Print the remote info. */ + len = pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, + dlg->remote.info->uri, tmp.ptr, TMP_LEN); + if (len < 1) { + pj_ansi_strcpy(tmp.ptr, "<-error: uri too long->"); + tmp.slen = pj_ansi_strlen(tmp.ptr); + } else + tmp.slen = len; + + /* Save the local info. */ + pj_strdup(dlg->pool, &dlg->remote.info_str, &tmp); + + /* Init remote's contact from Contact header. */ contact_hdr = pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_CONTACT, NULL); -- cgit v1.2.3