Fixed #2010: Updated PJSUA to store the user part of an account ID in escaped form.

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5579 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Nanang Izzuddin 2017-04-07 04:00:30 +00:00
parent faa514cfc9
commit d358d84cc1
1 changed files with 14 additions and 0 deletions

View File

@ -202,6 +202,20 @@ static pj_status_t initialize_acc(unsigned acc_id)
acc->user_part = sip_uri->user;
acc->srv_domain = sip_uri->host;
acc->srv_port = 0;
/* Escape user part (ticket #2010) */
if (acc->user_part.slen) {
const pjsip_parser_const_t *pconst;
char buf[PJSIP_MAX_URL_SIZE];
pj_str_t user_part;
pconst = pjsip_parser_const();
pj_strset(&user_part, buf, sizeof(buf));
pj_strncpy_escape(&user_part, &sip_uri->user, sizeof(buf),
&pconst->pjsip_USER_SPEC_LENIENT);
if (user_part.slen > acc->user_part.slen)
pj_strdup(acc->pool, &acc->user_part, &user_part);
}
}
acc->is_sips = PJSIP_URI_SCHEME_IS_SIPS(name_addr);