Changeset 119 for pjproject/trunk/pjsip/src/pjsip/sip_parser.c
- Timestamp:
- Jan 10, 2006 1:31:40 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_parser.c
r106 r119 155 155 pj_pool_t *pool, 156 156 unsigned option); 157 static pjsip_ url *int_parse_sip_url( pj_scanner *scanner,158 pj_pool_t *pool,159 pj_bool_t parse_params);157 static pjsip_sip_uri* int_parse_sip_url( pj_scanner *scanner, 158 pj_pool_t *pool, 159 pj_bool_t parse_params); 160 160 static pjsip_name_addr * 161 161 int_parse_name_addr( pj_scanner *scanner, … … 954 954 *pname = pj_str_unescape(pool, pname); 955 955 956 /* init pvalue */ 957 pvalue->ptr = NULL; 958 pvalue->slen = 0; 959 956 960 /* pvalue, if any */ 957 961 if (*scanner->curptr == '=') { 958 962 pj_scan_get_char(scanner); 959 /* pvalue can be a quoted string. */ 960 if (*scanner->curptr == '"') { 961 pj_scan_get_quote( scanner, '"', '"', pvalue); 962 if (option & PJSIP_PARSE_REMOVE_QUOTE) { 963 pvalue->ptr++; 964 pvalue->slen -= 2; 963 if (!pj_scan_is_eof(scanner)) { 964 /* pvalue can be a quoted string. */ 965 if (*scanner->curptr == '"') { 966 pj_scan_get_quote( scanner, '"', '"', pvalue); 967 if (option & PJSIP_PARSE_REMOVE_QUOTE) { 968 pvalue->ptr++; 969 pvalue->slen -= 2; 970 } 971 } else if(pj_cis_match(&pjsip_PARAM_CHAR_SPEC, *scanner->curptr)) { 972 pj_scan_get(scanner, &pjsip_PARAM_CHAR_SPEC, pvalue); 973 *pvalue = pj_str_unescape(pool, pvalue); 965 974 } 966 } else { 967 pj_scan_get(scanner, &pjsip_PARAM_CHAR_SPEC, pvalue); 968 *pvalue = pj_str_unescape(pool, pvalue); 969 } 970 } else { 971 pvalue->ptr = NULL; 972 pvalue->slen = 0; 975 } 973 976 } 974 977 } … … 997 1000 *hname = pj_str_unescape(pool, hname); 998 1001 1002 /* Init hvalue */ 1003 hvalue->ptr = NULL; 1004 hvalue->slen = 0; 1005 999 1006 /* pvalue, if any */ 1000 1007 if (*scanner->curptr == '=') { 1001 1008 pj_scan_get_char(scanner); 1002 pj_scan_get(scanner, &pjsip_HDR_CHAR_SPEC, hvalue); 1003 *hvalue = pj_str_unescape(pool, hvalue); 1004 } else { 1005 hvalue->ptr = NULL; 1006 hvalue->slen = 0; 1009 if (!pj_scan_is_eof(scanner) && 1010 pj_cis_match(&pjsip_HDR_CHAR_SPEC, *scanner->curptr)) 1011 { 1012 pj_scan_get(scanner, &pjsip_HDR_CHAR_SPEC, hvalue); 1013 *hvalue = pj_str_unescape(pool, hvalue); 1014 } 1007 1015 } 1008 1016 } … … 1143 1151 1144 1152 /* Parse "sip:" and "sips:" URI. */ 1145 static pjsip_ url*int_parse_sip_url( pj_scanner *scanner,1146 1147 1153 static pjsip_sip_uri *int_parse_sip_url( pj_scanner *scanner, 1154 pj_pool_t *pool, 1155 pj_bool_t parse_params) 1148 1156 { 1149 1157 pj_str_t scheme; 1150 pjsip_ url*url = NULL;1158 pjsip_sip_uri *url = NULL; 1151 1159 int colon; 1152 1160 int skip_ws = scanner->skip_ws;
Note: See TracChangeset
for help on using the changeset viewer.