diff options
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsip/sip_parser.c | 4 | ||||
-rw-r--r-- | pjsip/src/test-pjsip/uri_test.c | 16 |
2 files changed, 15 insertions, 5 deletions
diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c index a0ef3adc..b0fbc0d8 100644 --- a/pjsip/src/pjsip/sip_parser.c +++ b/pjsip/src/pjsip/sip_parser.c @@ -362,7 +362,7 @@ static pj_status_t init_parser() status = pj_cis_dup(&pjsip_PASSWD_SPEC_ESC, &pjsip_PASSWD_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); - pj_cis_del_str( &pjsip_PASSWD_SPEC, ESCAPED); + pj_cis_del_str( &pjsip_PASSWD_SPEC_ESC, ESCAPED); status = pj_cis_init(&cis_buf, &pjsip_PROBE_USER_HOST_SPEC); PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); @@ -1104,7 +1104,7 @@ static void int_parse_hparam( pj_scanner *scanner, pj_pool_t *pool, pj_cis_match(&pjsip_HDR_CHAR_SPEC, *scanner->curptr)) { parser_get_and_unescape(scanner, pool, &pjsip_HDR_CHAR_SPEC, - &pjsip_HDR_CHAR_SPEC, hvalue); + &pjsip_HDR_CHAR_SPEC_ESC, hvalue); } } } diff --git a/pjsip/src/test-pjsip/uri_test.c b/pjsip/src/test-pjsip/uri_test.c index 1d2d9981..d2e55f20 100644 --- a/pjsip/src/test-pjsip/uri_test.c +++ b/pjsip/src/test-pjsip/uri_test.c @@ -685,16 +685,26 @@ static pj_status_t do_uri_test(pj_pool_t *pool, struct uri_test *entry) { pj_status_t status; int len; + char *input; pjsip_uri *parsed_uri, *ref_uri; pj_str_t s1 = {NULL, 0}, s2 = {NULL, 0}; pj_timestamp t1, t2; - entry->len = pj_native_strlen(entry->str); + if (entry->len == 0) + entry->len = pj_native_strlen(entry->str); + +#if defined(PJSIP_UNESCAPE_IN_PLACE) && PJSIP_UNESCAPE_IN_PLACE!=0 + input = pj_pool_alloc(pool, entry->len + 1); + pj_memcpy(input, entry->str, entry->len); + input[entry->len] = '\0'; +#else + input = entry->str; +#endif /* Parse URI text. */ pj_get_timestamp(&t1); var.parse_len = var.parse_len + entry->len; - parsed_uri = pjsip_parse_uri(pool, entry->str, entry->len, 0); + parsed_uri = pjsip_parse_uri(pool, input, entry->len, 0); if (!parsed_uri) { /* Parsing failed. If the entry says that this is expected, then * return OK. @@ -703,7 +713,7 @@ static pj_status_t do_uri_test(pj_pool_t *pool, struct uri_test *entry) if (status != 0) { PJ_LOG(3,(THIS_FILE, " uri parse error!\n" " uri='%s'\n", - entry->str)); + input)); } goto on_return; } |