Changeset 2193 for pjproject/trunk/pjsip/src/pjsip/sip_parser.c
- Timestamp:
- Aug 5, 2008 7:28:17 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_parser.c
r2039 r2193 48 48 #define HNV_UNRESERVED "[]/?:+$" 49 49 #define HDR_CHAR HNV_UNRESERVED UNRESERVED ESCAPED 50 51 /* A generic URI can consist of (For a complete BNF see RFC 2396): 52 #?;:@&=+-_.!~*'()%$,/ 53 */ 54 #define GENERIC_URI_CHARS "#?;:@&=+-_.!~*'()%$,/" "%" 50 55 51 56 #define PJSIP_VERSION "SIP/2.0" … … 153 158 int_parse_name_addr( pj_scanner *scanner, 154 159 pj_pool_t *pool ); 160 static void* int_parse_other_uri(pj_scanner *scanner, 161 pj_pool_t *pool, 162 pj_bool_t parse_params); 155 163 static void parse_hdr_end( pj_scanner *scanner ); 156 164 … … 377 385 pj_cis_invert(&pconst.pjsip_DISPLAY_SPEC); 378 386 387 status = pj_cis_dup(&pconst.pjsip_OTHER_URI_CONTENT, &pconst.pjsip_ALNUM_SPEC); 388 PJ_ASSERT_RETURN(status == PJ_SUCCESS, status); 389 pj_cis_add_str( &pconst.pjsip_OTHER_URI_CONTENT, GENERIC_URI_CHARS); 390 379 391 /* 380 392 * Register URI parsers. … … 691 703 return uri_handler[i].parse; 692 704 } 693 return NULL;705 return &int_parse_other_uri; 694 706 } 695 707 … … 1464 1476 1465 1477 1478 /* Parse other URI */ 1479 static void* int_parse_other_uri(pj_scanner *scanner, 1480 pj_pool_t *pool, 1481 pj_bool_t parse_params) 1482 { 1483 pjsip_other_uri *uri = 0; 1484 const pjsip_parser_const_t *pc = pjsip_parser_const(); 1485 int skip_ws = scanner->skip_ws; 1486 1487 PJ_UNUSED_ARG(parse_params); 1488 1489 scanner->skip_ws = 0; 1490 1491 uri = pjsip_other_uri_create(pool); 1492 1493 pj_scan_get(scanner, &pc->pjsip_TOKEN_SPEC, &uri->scheme); 1494 if (pj_scan_get_char(scanner) != ':') { 1495 PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); 1496 } 1497 1498 pj_scan_get(scanner, &pc->pjsip_OTHER_URI_CONTENT, &uri->content); 1499 scanner->skip_ws = skip_ws; 1500 1501 return uri; 1502 } 1503 1504 1466 1505 /* Parse SIP request line. */ 1467 1506 static void int_parse_req_line( pj_scanner *scanner, pj_pool_t *pool,
Note: See TracChangeset
for help on using the changeset viewer.