Lines Matching refs:scan

89 #define	SIP_URI_ISURLESCAPE(scan, end)			\  argument
90 ((scan) + 2 < (end) && (scan)[0] == '%' && \
91 SIP_URI_ISHEX((scan)[1]) && SIP_URI_ISHEX((scan[2])))
299 sip_uri_parse_tel(char *scan, char *uend) in sip_uri_parse_tel() argument
306 if (scan == uend) in sip_uri_parse_tel()
308 if (*scan == '+') { in sip_uri_parse_tel()
309 ++scan; in sip_uri_parse_tel()
312 mark = scan; in sip_uri_parse_tel()
314 while (scan < uend && SIP_URI_ISPHONEDIGIT(*scan)) in sip_uri_parse_tel()
315 ++scan; in sip_uri_parse_tel()
317 while (scan < uend && in sip_uri_parse_tel()
318 (SIP_URI_ISPHONEDIGIT(*scan) || in sip_uri_parse_tel()
319 SIP_URI_ISDTMFDIGIT(*scan) || in sip_uri_parse_tel()
320 sip_uri_isEscapedPound(&scan, uend) || in sip_uri_parse_tel()
321 *scan == 'p' || *scan == 'w')) { in sip_uri_parse_tel()
322 ++scan; in sip_uri_parse_tel()
325 if (mark == scan || (scan < uend && *scan != ';')) in sip_uri_parse_tel()
331 if (uend - scan > 6 && !sip_uri_url_casecmp(scan, ";isub=", 6)) { in sip_uri_parse_tel()
332 scan += 6; in sip_uri_parse_tel()
333 mark = scan; in sip_uri_parse_tel()
334 while (scan < uend && SIP_URI_ISPHONEDIGIT(*scan)) in sip_uri_parse_tel()
335 ++scan; in sip_uri_parse_tel()
336 if (mark == scan || (scan < uend && *scan != ';')) in sip_uri_parse_tel()
343 if (uend - scan > 7 && !sip_uri_url_casecmp(scan, ";postd=", 7)) { in sip_uri_parse_tel()
344 scan += 7; in sip_uri_parse_tel()
345 mark = scan; in sip_uri_parse_tel()
346 while (scan < uend && in sip_uri_parse_tel()
347 (SIP_URI_ISPHONEDIGIT(*scan) || in sip_uri_parse_tel()
348 SIP_URI_ISDTMFDIGIT(*scan) || in sip_uri_parse_tel()
349 sip_uri_isEscapedPound(&scan, uend) || in sip_uri_parse_tel()
350 *scan == 'p' || *scan == 'w')) { in sip_uri_parse_tel()
351 ++scan; in sip_uri_parse_tel()
353 if (mark == scan || (scan < uend && *scan != ';')) in sip_uri_parse_tel()
361 if (uend - scan > 15 && in sip_uri_parse_tel()
362 !sip_uri_url_casecmp(scan, ";phone-context=", 15)) { in sip_uri_parse_tel()
363 scan += 15; in sip_uri_parse_tel()
364 mark = scan; in sip_uri_parse_tel()
365 while (scan < uend && *scan != ';') in sip_uri_parse_tel()
366 ++scan; in sip_uri_parse_tel()
367 ret = sip_uri_parse_tel_areaspe(mark, scan); in sip_uri_parse_tel()
376 while (scan < uend && ret) { in sip_uri_parse_tel()
377 if (uend - scan > 15 && in sip_uri_parse_tel()
378 !sip_uri_url_casecmp(scan, ";phone-context=", 15)) { in sip_uri_parse_tel()
379 scan += 15; in sip_uri_parse_tel()
380 mark = scan; in sip_uri_parse_tel()
381 while (scan < uend && *scan != ';') in sip_uri_parse_tel()
382 ++scan; in sip_uri_parse_tel()
383 ret = sip_uri_parse_tel_areaspe(mark, scan); in sip_uri_parse_tel()
384 } else if (uend - scan > 5 && in sip_uri_parse_tel()
385 !sip_uri_url_casecmp(scan, ";tsp=", 5)) { in sip_uri_parse_tel()
386 scan += 5; in sip_uri_parse_tel()
387 mark = scan; in sip_uri_parse_tel()
388 while (scan < uend && *scan != ';') in sip_uri_parse_tel()
389 ++scan; in sip_uri_parse_tel()
390 ret = sip_uri_parse_tel_servicepro(mark, scan); in sip_uri_parse_tel()
392 ++scan; in sip_uri_parse_tel()
393 mark = scan; in sip_uri_parse_tel()
394 while (scan < uend && (*scan != ';' || quote)) { in sip_uri_parse_tel()
395 if (sip_uri_hexVal(scan, uend) == 0x22) { in sip_uri_parse_tel()
397 scan += 3; in sip_uri_parse_tel()
399 ++scan; in sip_uri_parse_tel()
402 ret = sip_uri_parse_tel_futureext(mark, scan); in sip_uri_parse_tel()
405 return (ret && scan == uend); in sip_uri_parse_tel()
427 sip_uri_parse_tel_areaspe(char *scan, char *uend) in sip_uri_parse_tel_areaspe() argument
431 if (scan == uend) in sip_uri_parse_tel_areaspe()
437 if (*scan == '+') { in sip_uri_parse_tel_areaspe()
438 ++scan; in sip_uri_parse_tel_areaspe()
439 if (scan == uend) in sip_uri_parse_tel_areaspe()
441 while (scan < uend && SIP_URI_ISPHONEDIGIT(*scan)) in sip_uri_parse_tel_areaspe()
442 ++scan; in sip_uri_parse_tel_areaspe()
446 } else if (SIP_URI_ISPHONEDIGIT(*scan) || SIP_URI_ISDTMFDIGIT(*scan) || in sip_uri_parse_tel_areaspe()
447 sip_uri_isEscapedPound(&scan, uend) || in sip_uri_parse_tel_areaspe()
448 *scan == 'p' || *scan == 'w') { in sip_uri_parse_tel_areaspe()
449 ++scan; in sip_uri_parse_tel_areaspe()
450 while (scan < uend && in sip_uri_parse_tel_areaspe()
451 (SIP_URI_ISPHONEDIGIT(*scan) || in sip_uri_parse_tel_areaspe()
452 SIP_URI_ISDTMFDIGIT(*scan) || in sip_uri_parse_tel_areaspe()
453 sip_uri_isEscapedPound(&scan, uend) || in sip_uri_parse_tel_areaspe()
454 *scan == 'p' || *scan == 'w')) { in sip_uri_parse_tel_areaspe()
455 ++scan; in sip_uri_parse_tel_areaspe()
473 if (*scan == '!' || *scan == '$' || *scan == '&' || in sip_uri_parse_tel_areaspe()
474 *scan == '\'' || *scan == ',' || *scan == '/' || in sip_uri_parse_tel_areaspe()
475 *scan == '=' || *scan == '?' || *scan == '_' || in sip_uri_parse_tel_areaspe()
476 (*scan >= 'E' && *scan <= 'Z' && in sip_uri_parse_tel_areaspe()
477 *scan != 'P' && *scan != 'W') || in sip_uri_parse_tel_areaspe()
478 (*scan >= 'e' && *scan <= 'z' && in sip_uri_parse_tel_areaspe()
479 *scan != 'p' && *scan != 'w')) { in sip_uri_parse_tel_areaspe()
480 ++scan; in sip_uri_parse_tel_areaspe()
482 uri_hexValue = sip_uri_hexVal(scan, uend); in sip_uri_parse_tel_areaspe()
494 scan += 3; in sip_uri_parse_tel_areaspe()
502 while (scan < uend) { in sip_uri_parse_tel_areaspe()
503 if (SIP_URI_ISUNRESERVED(*scan) || in sip_uri_parse_tel_areaspe()
504 (SIP_URI_ISUSER(*scan) && *scan != ';')) { in sip_uri_parse_tel_areaspe()
505 ++scan; in sip_uri_parse_tel_areaspe()
507 uri_hexValue = sip_uri_hexVal(scan, uend); in sip_uri_parse_tel_areaspe()
511 scan += 3; in sip_uri_parse_tel_areaspe()
518 if (scan < uend) in sip_uri_parse_tel_areaspe()
524 sip_uri_hexVal(char *scan, char *uend) in sip_uri_hexVal() argument
528 if (SIP_URI_ISURLESCAPE(scan, uend)) { in sip_uri_hexVal()
529 ret = (SIP_URI_ISDIGIT(scan[1]) ? (scan[1] - '0') : in sip_uri_hexVal()
530 (tolower(scan[1]) - 'a' + 10)) * 16 + in sip_uri_hexVal()
531 (SIP_URI_ISDIGIT(scan[2]) ? (scan[2] - '0') : in sip_uri_hexVal()
532 (tolower(scan[2]) - 'a' + 10)); in sip_uri_hexVal()
543 sip_uri_parse_tel_servicepro(char *scan, char *uend) in sip_uri_parse_tel_servicepro() argument
547 if (scan == uend) in sip_uri_parse_tel_servicepro()
553 if (sip_uri_hexVal(scan, uend) == 0x20 && scan + 3 == uend) in sip_uri_parse_tel_servicepro()
555 while (scan < uend) { in sip_uri_parse_tel_servicepro()
556 mark = scan; in sip_uri_parse_tel_servicepro()
557 while (scan < uend && (*scan == '-'|| SIP_URI_ISALNUM(*scan))) in sip_uri_parse_tel_servicepro()
558 ++scan; in sip_uri_parse_tel_servicepro()
559 if ((scan < uend && *scan != '.') || in sip_uri_parse_tel_servicepro()
560 !SIP_URI_ISALPHA(*mark) || !SIP_URI_ISALNUM(*(scan - 1))) { in sip_uri_parse_tel_servicepro()
563 if (scan < uend) in sip_uri_parse_tel_servicepro()
564 ++scan; in sip_uri_parse_tel_servicepro()
567 if (scan < uend) in sip_uri_parse_tel_servicepro()
579 sip_uri_parse_tel_futureext(char *scan, char *uend) in sip_uri_parse_tel_futureext() argument
584 if (scan == uend) in sip_uri_parse_tel_futureext()
590 mark = scan; in sip_uri_parse_tel_futureext()
591 while (scan < uend && sip_uri_isTokenchar(&scan, uend)) in sip_uri_parse_tel_futureext()
593 if (mark == scan || in sip_uri_parse_tel_futureext()
594 (scan < uend && (*scan != '=' || scan + 1 == uend))) { in sip_uri_parse_tel_futureext()
597 if (scan == uend) in sip_uri_parse_tel_futureext()
599 ++scan; in sip_uri_parse_tel_futureext()
604 if (sip_uri_isTokenchar(&scan, uend)) { in sip_uri_parse_tel_futureext()
605 while (sip_uri_isTokenchar(&scan, uend)) in sip_uri_parse_tel_futureext()
607 if (scan < uend) { in sip_uri_parse_tel_futureext()
608 if (*scan != '?') in sip_uri_parse_tel_futureext()
610 ++scan; in sip_uri_parse_tel_futureext()
611 mark = scan; in sip_uri_parse_tel_futureext()
612 while (sip_uri_isTokenchar(&scan, uend)) in sip_uri_parse_tel_futureext()
614 if (mark == scan) in sip_uri_parse_tel_futureext()
618 uri_hexValue = sip_uri_hexVal(scan, uend); in sip_uri_parse_tel_futureext()
621 scan += 3; in sip_uri_parse_tel_futureext()
622 while (scan < uend && sip_uri_hexVal(scan, uend) != 0x22) { in sip_uri_parse_tel_futureext()
626 if (sip_uri_hexVal(scan, uend) == 0x5c) { in sip_uri_parse_tel_futureext()
627 scan += 3; in sip_uri_parse_tel_futureext()
628 if (scan < uend) { in sip_uri_parse_tel_futureext()
629 if (SIP_URI_ISUNRESERVED(*scan) || in sip_uri_parse_tel_futureext()
630 SIP_URI_ISUSER(*scan)) { in sip_uri_parse_tel_futureext()
631 ++scan; in sip_uri_parse_tel_futureext()
632 } else if (sip_uri_hexVal(scan, uend) >= in sip_uri_parse_tel_futureext()
634 sip_uri_hexVal(scan, uend) <= in sip_uri_parse_tel_futureext()
636 scan += 3; in sip_uri_parse_tel_futureext()
644 if (SIP_URI_ISUNRESERVED(*scan) || in sip_uri_parse_tel_futureext()
645 SIP_URI_ISUSER(*scan)) { in sip_uri_parse_tel_futureext()
646 ++scan; in sip_uri_parse_tel_futureext()
649 sip_uri_hexVal(scan, uend); in sip_uri_parse_tel_futureext()
656 scan += 3; in sip_uri_parse_tel_futureext()
663 if (scan == uend || in sip_uri_parse_tel_futureext()
664 (scan < uend && sip_uri_hexVal(scan, uend) != 0x22)) { in sip_uri_parse_tel_futureext()
667 scan += 3; in sip_uri_parse_tel_futureext()
670 if (scan < uend) in sip_uri_parse_tel_futureext()
683 char *scan = *pscan; in sip_uri_isTokenchar() local
686 if (scan == uend) in sip_uri_isTokenchar()
692 if ((SIP_URI_ISUNRESERVED(*scan) && *scan != '(' && *scan != ')') || in sip_uri_isTokenchar()
693 *scan == '$' || *scan == '&' || *scan == '+') { in sip_uri_isTokenchar()
694 ++scan; in sip_uri_isTokenchar()
695 *pscan = scan; in sip_uri_isTokenchar()
699 uri_hexValue = sip_uri_hexVal(scan, uend); in sip_uri_isTokenchar()
708 scan += 3; in sip_uri_isTokenchar()
709 *pscan = scan; in sip_uri_isTokenchar()
722 char *scan = *pscan; in sip_uri_isEscapedPound() local
724 if (scan == uend) in sip_uri_isEscapedPound()
726 if (*scan == '%' && scan + 2 < uend && scan[1] == '2' && in sip_uri_isEscapedPound()
727 scan[2] == '3') { in sip_uri_isEscapedPound()
728 scan += 2; in sip_uri_isEscapedPound()
729 *pscan = scan; in sip_uri_isEscapedPound()
739 sip_uri_parse_scheme(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_scheme() argument
741 if (scan == uend) { in sip_uri_parse_scheme()
745 outurl->sip_uri_scheme.sip_str_ptr = scan; in sip_uri_parse_scheme()
746 outurl->sip_uri_scheme.sip_str_len = uend - scan; in sip_uri_parse_scheme()
748 if (scan < uend && SIP_URI_ISALPHA(*scan)) { in sip_uri_parse_scheme()
749 ++scan; in sip_uri_parse_scheme()
750 while (scan < uend && SIP_URI_ISSCHEME(*scan)) in sip_uri_parse_scheme()
751 ++scan; in sip_uri_parse_scheme()
753 if (scan < uend) in sip_uri_parse_scheme()
779 sip_uri_parse_params(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_params() argument
790 if (scan == uend || *scan != ';' || scan + 1 == uend) { in sip_uri_parse_params()
795 while (scan < uend) { in sip_uri_parse_params()
796 mark = ++scan; in sip_uri_parse_params()
797 while (scan < uend && *scan != ';') in sip_uri_parse_params()
798 ++scan; in sip_uri_parse_params()
799 if (scan == mark) { in sip_uri_parse_params()
818 equal = memchr(mark, '=', scan - mark); in sip_uri_parse_params()
820 param->param_name.sip_str_len = scan - mark; in sip_uri_parse_params()
823 while (mark < scan && (SIP_URI_ISPARAM(*mark) || in sip_uri_parse_params()
824 SIP_URI_ISURLESCAPE(mark, scan))) { in sip_uri_parse_params()
830 param->param_value.sip_str_len = scan - equal - 1; in sip_uri_parse_params()
832 if (mark == equal || equal + 1 == scan) { in sip_uri_parse_params()
843 if (scan - equal == 1) { in sip_uri_parse_params()
849 while (mark < scan && SIP_URI_ISTOKEN(*mark)) in sip_uri_parse_params()
853 if (scan - equal == 1) { in sip_uri_parse_params()
861 if (mark < scan && in sip_uri_parse_params()
875 if (mark < scan && SIP_URI_ISDIGIT(*mark)) { in sip_uri_parse_params()
877 scan); in sip_uri_parse_params()
883 if (!gothost && mark < scan && *mark == '[') { in sip_uri_parse_params()
885 scan); in sip_uri_parse_params()
891 if (!gothost && mark < scan) { in sip_uri_parse_params()
894 scan))) { in sip_uri_parse_params()
900 mark = scan; in sip_uri_parse_params()
906 while (mark < scan && (SIP_URI_ISPARAM(*mark) || in sip_uri_parse_params()
907 SIP_URI_ISURLESCAPE(mark, scan) || in sip_uri_parse_params()
913 if (mark < scan) { in sip_uri_parse_params()
929 sip_uri_parse_headers(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_headers() argument
934 if (scan == uend || *scan != '?' || scan + 1 == uend) { in sip_uri_parse_headers()
938 outurl->sip_uri_headers.sip_str_ptr = scan + 1; in sip_uri_parse_headers()
939 outurl->sip_uri_headers.sip_str_len = uend - (scan + 1); in sip_uri_parse_headers()
941 while (scan < uend) { in sip_uri_parse_headers()
942 mark = ++scan; in sip_uri_parse_headers()
943 while (scan < uend && *scan != '&') in sip_uri_parse_headers()
944 ++scan; in sip_uri_parse_headers()
945 if (scan == mark) { in sip_uri_parse_headers()
949 equal = memchr(mark, '=', scan - mark); in sip_uri_parse_headers()
954 while (mark < scan && in sip_uri_parse_headers()
956 SIP_URI_ISURLESCAPE(mark, scan) || mark == equal)) { in sip_uri_parse_headers()
959 if (mark < scan) { in sip_uri_parse_headers()
973 sip_uri_parse_abs_opaque(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_abs_opaque() argument
975 if (scan == uend) { in sip_uri_parse_abs_opaque()
979 outurl->sip_uri_opaque.sip_str_ptr = scan; in sip_uri_parse_abs_opaque()
980 outurl->sip_uri_opaque.sip_str_len = uend - scan; in sip_uri_parse_abs_opaque()
982 if (SIP_URI_ISUNRESERVED(*scan) || SIP_URI_ISURLESCAPE(scan, uend) || in sip_uri_parse_abs_opaque()
983 SIP_URI_ISOTHER(*scan) || *scan == ';' || *scan == '?' || in sip_uri_parse_abs_opaque()
984 *scan == ':' || *scan == '@' || *scan == '&') { in sip_uri_parse_abs_opaque()
985 ++scan; in sip_uri_parse_abs_opaque()
990 while (scan < uend && (SIP_URI_ISRESERVED(*scan) || in sip_uri_parse_abs_opaque()
991 SIP_URI_ISUNRESERVED(*scan) || SIP_URI_ISURLESCAPE(scan, uend))) { in sip_uri_parse_abs_opaque()
992 ++scan; in sip_uri_parse_abs_opaque()
994 if (scan < uend) in sip_uri_parse_abs_opaque()
1004 sip_uri_parse_abs_query(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_abs_query() argument
1006 if (uend == scan || *scan != '?' || scan + 1 == uend) in sip_uri_parse_abs_query()
1008 ++scan; in sip_uri_parse_abs_query()
1009 outurl->sip_uri_query.sip_str_ptr = scan; in sip_uri_parse_abs_query()
1010 outurl->sip_uri_query.sip_str_len = uend - scan; in sip_uri_parse_abs_query()
1012 while (scan < uend && (SIP_URI_ISRESERVED(*scan) || in sip_uri_parse_abs_query()
1013 SIP_URI_ISUNRESERVED(*scan) || SIP_URI_ISURLESCAPE(scan, uend))) { in sip_uri_parse_abs_query()
1014 ++scan; in sip_uri_parse_abs_query()
1016 if (scan < uend) in sip_uri_parse_abs_query()
1030 sip_uri_parse_abs_path(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_abs_path() argument
1032 if (scan == uend || *scan != '/') in sip_uri_parse_abs_path()
1034 outurl->sip_uri_path.sip_str_ptr = scan; in sip_uri_parse_abs_path()
1035 outurl->sip_uri_path.sip_str_len = uend - scan; in sip_uri_parse_abs_path()
1037 ++scan; in sip_uri_parse_abs_path()
1038 while (scan < uend && (SIP_URI_ISPCHAR(*scan) || in sip_uri_parse_abs_path()
1039 SIP_URI_ISUNRESERVED(*scan) || SIP_URI_ISURLESCAPE(scan, uend) || in sip_uri_parse_abs_path()
1040 *scan == '/' || *scan == ';')) { in sip_uri_parse_abs_path()
1041 ++scan; in sip_uri_parse_abs_path()
1043 if (scan < uend) in sip_uri_parse_abs_path()
1051 sip_uri_parse_abs_regname(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_abs_regname() argument
1053 if (scan == uend) in sip_uri_parse_abs_regname()
1055 outurl->sip_uri_regname.sip_str_ptr = scan; in sip_uri_parse_abs_regname()
1056 outurl->sip_uri_regname.sip_str_len = uend - scan; in sip_uri_parse_abs_regname()
1058 while (scan < uend && (SIP_URI_ISUNRESERVED(*scan) || in sip_uri_parse_abs_regname()
1059 SIP_URI_ISURLESCAPE(scan, uend) || SIP_URI_ISREGNAME(*scan))) { in sip_uri_parse_abs_regname()
1060 ++scan; in sip_uri_parse_abs_regname()
1062 if (scan < uend) in sip_uri_parse_abs_regname()
1071 sip_uri_parse_password(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_password() argument
1073 if (scan == uend || *scan != ':' || scan + 1 == uend) in sip_uri_parse_password()
1075 ++scan; in sip_uri_parse_password()
1076 outurl->sip_uri_password.sip_str_ptr = scan; in sip_uri_parse_password()
1077 outurl->sip_uri_password.sip_str_len = uend - scan; in sip_uri_parse_password()
1079 while (scan < uend && (SIP_URI_ISUNRESERVED(*scan) || in sip_uri_parse_password()
1080 SIP_URI_ISURLESCAPE(scan, uend) || SIP_URI_ISOTHER(*scan) || in sip_uri_parse_password()
1081 *scan == '&')) { in sip_uri_parse_password()
1082 ++scan; in sip_uri_parse_password()
1084 if (scan < uend) in sip_uri_parse_password()
1093 sip_uri_parse_user(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_user() argument
1095 if (scan == uend) { in sip_uri_parse_user()
1099 outurl->sip_uri_user.sip_str_ptr = scan; in sip_uri_parse_user()
1100 outurl->sip_uri_user.sip_str_len = uend - scan; in sip_uri_parse_user()
1102 if (sip_uri_parse_tel(scan, uend)) { in sip_uri_parse_user()
1105 while (scan < uend && (SIP_URI_ISUNRESERVED(*scan) || in sip_uri_parse_user()
1106 SIP_URI_ISURLESCAPE(scan, uend) || SIP_URI_ISUSER(*scan))) { in sip_uri_parse_user()
1107 ++scan; in sip_uri_parse_user()
1109 if (scan < uend) in sip_uri_parse_user()
1119 sip_uri_parse_port(_sip_uri_t *outurl, char *scan, char *uend) in sip_uri_parse_port() argument
1121 if (scan == uend || *scan != ':' || scan + 1 == uend) { in sip_uri_parse_port()
1125 ++scan; in sip_uri_parse_port()
1129 if (SIP_URI_ISDIGIT(*scan)) { in sip_uri_parse_port()
1130 outurl->sip_uri_port = *scan - '0'; in sip_uri_parse_port()
1131 while (++scan < uend && SIP_URI_ISDIGIT(*scan)) { in sip_uri_parse_port()
1133 outurl->sip_uri_port * 10 + (*scan - '0'); in sip_uri_parse_port()
1141 if (scan < uend) { in sip_uri_parse_port()
1155 sip_uri_parse_ipv4(char *scan, char *uend) in sip_uri_parse_ipv4() argument
1161 if (!SIP_URI_ISDIGIT(*scan)) in sip_uri_parse_ipv4()
1163 val = *scan - '0'; in sip_uri_parse_ipv4()
1164 while (++scan < uend && SIP_URI_ISDIGIT(*scan)) { in sip_uri_parse_ipv4()
1165 val = val * 10 + (*scan - '0'); in sip_uri_parse_ipv4()
1170 if (*scan != '.') in sip_uri_parse_ipv4()
1172 ++scan; in sip_uri_parse_ipv4()
1176 if (j == 4 && scan == uend) in sip_uri_parse_ipv4()
1194 sip_uri_parse_ipv6(char *scan, char *uend) in sip_uri_parse_ipv6() argument
1201 if (*scan != '[') in sip_uri_parse_ipv6()
1203 ++scan; in sip_uri_parse_ipv6()
1209 if (scan + 1 < uend && scan[0] == ':' && scan[1] == ':') { in sip_uri_parse_ipv6()
1211 scan += 2; in sip_uri_parse_ipv6()
1219 while (scan < uend && j < 15) { in sip_uri_parse_ipv6()
1220 if (!SIP_URI_ISHEX(*scan)) in sip_uri_parse_ipv6()
1222 mark = scan; in sip_uri_parse_ipv6()
1223 val = SIP_URI_HEXVAL(*scan); in sip_uri_parse_ipv6()
1224 while (++scan < uend && SIP_URI_ISHEX(*scan)) { in sip_uri_parse_ipv6()
1225 val = val * 16 + SIP_URI_HEXVAL(*scan); in sip_uri_parse_ipv6()
1233 if (scan == uend) in sip_uri_parse_ipv6()
1236 if (*scan == '.' && (j == 12 || (zpad != -1 && j < 12)) && in sip_uri_parse_ipv6()
1241 scan = mark + 1; in sip_uri_parse_ipv6()
1253 if (*scan == ':') { in sip_uri_parse_ipv6()
1257 if (++scan < uend && *scan == ':') { in sip_uri_parse_ipv6()
1261 if (++scan < uend && *scan == ']') { in sip_uri_parse_ipv6()
1262 ++scan; in sip_uri_parse_ipv6()
1266 } else if (*scan == ']' && (j == 16 || zpad != -1)) { in sip_uri_parse_ipv6()
1267 ++scan; in sip_uri_parse_ipv6()
1283 if (scan == uend) in sip_uri_parse_ipv6()
1295 sip_uri_parse_hostname(char *scan, char *uend) in sip_uri_parse_hostname() argument
1299 if (scan < uend && SIP_URI_ISALNUM(*scan)) { in sip_uri_parse_hostname()
1301 sawalpha = SIP_URI_ISALPHA(*scan); in sip_uri_parse_hostname()
1302 while (SIP_URI_ISHOST(*scan)) in sip_uri_parse_hostname()
1303 ++scan; in sip_uri_parse_hostname()
1304 if (*scan != '.') in sip_uri_parse_hostname()
1306 ++scan; in sip_uri_parse_hostname()
1307 } while (scan < uend && SIP_URI_ISALNUM(*scan)); in sip_uri_parse_hostname()
1310 if (sawalpha && scan == uend) in sip_uri_parse_hostname()
1325 char *scan = *pscan; in sip_uri_parse_netpath() local
1331 mark = scan; in sip_uri_parse_netpath()
1332 while (scan < uend && *scan != '@') in sip_uri_parse_netpath()
1333 ++scan; in sip_uri_parse_netpath()
1337 if (scan < uend && *scan == '@') { in sip_uri_parse_netpath()
1342 while (mark < scan && *mark != ':') in sip_uri_parse_netpath()
1349 sip_uri_parse_password(outurl, mark, scan); in sip_uri_parse_netpath()
1350 mark = ++scan; in sip_uri_parse_netpath()
1353 scan = mark; in sip_uri_parse_netpath()
1354 if (scan < uend && *scan == '[') { /* look for an IPv6 address */ in sip_uri_parse_netpath()
1355 while (scan < uend && *scan != ']') in sip_uri_parse_netpath()
1356 ++scan; in sip_uri_parse_netpath()
1357 if (scan < uend) { in sip_uri_parse_netpath()
1358 ++scan; in sip_uri_parse_netpath()
1359 if (sip_uri_parse_ipv6(mark, scan)) in sip_uri_parse_netpath()
1363 while (scan < uend && ((issip && !SIP_URI_ISSIPHDELIM(*scan)) || in sip_uri_parse_netpath()
1364 (!issip && !SIP_URI_ISABSHDELIM(*scan)))) { in sip_uri_parse_netpath()
1365 ++scan; in sip_uri_parse_netpath()
1371 if (mark < scan && SIP_URI_ISDIGIT(*mark) && in sip_uri_parse_netpath()
1372 sip_uri_parse_ipv4(mark, scan)) { in sip_uri_parse_netpath()
1379 if (!gothost && mark < scan && in sip_uri_parse_netpath()
1380 sip_uri_parse_hostname(mark, scan)) { in sip_uri_parse_netpath()
1393 outurl->sip_uri_host.sip_str_len = scan - mark; in sip_uri_parse_netpath()
1395 mark = scan; in sip_uri_parse_netpath()
1399 if (scan < uend && *scan == ':') { in sip_uri_parse_netpath()
1400 while (scan < uend && ((issip && !SIP_URI_ISSIPDELIM(*scan)) || in sip_uri_parse_netpath()
1401 (!issip && !SIP_URI_ISABSDELIM(*scan)))) { in sip_uri_parse_netpath()
1402 ++scan; in sip_uri_parse_netpath()
1404 sip_uri_parse_port(outurl, mark, scan); in sip_uri_parse_netpath()
1410 *pscan = scan; in sip_uri_parse_netpath()
1421 char *scan; in sip_uri_parse_it() local
1463 mark = scan = str; in sip_uri_parse_it()
1464 while (scan < uend && *scan != ':') in sip_uri_parse_it()
1465 ++scan; in sip_uri_parse_it()
1466 if (scan == uend || !sip_uri_parse_scheme(outurl, mark, scan)) { in sip_uri_parse_it()
1481 ++scan; /* skip ':' */ in sip_uri_parse_it()
1487 sip_uri_parse_netpath(outurl, &scan, uend, B_TRUE); in sip_uri_parse_it()
1492 if (scan < uend && *scan == ';') { in sip_uri_parse_it()
1493 mark = scan; in sip_uri_parse_it()
1494 while (scan < uend && *scan != '?') in sip_uri_parse_it()
1495 ++scan; in sip_uri_parse_it()
1496 sip_uri_parse_params(outurl, mark, scan); in sip_uri_parse_it()
1502 if (scan < uend && *scan == '?') in sip_uri_parse_it()
1503 sip_uri_parse_headers(outurl, scan, uend); in sip_uri_parse_it()
1504 } else if (scan < uend && scan[0] == '/') { /* parse absoluteURL */ in sip_uri_parse_it()
1505 ++scan; in sip_uri_parse_it()
1513 if (scan < uend && *scan == '/') { in sip_uri_parse_it()
1514 ++scan; in sip_uri_parse_it()
1515 mark = scan; in sip_uri_parse_it()
1519 sip_uri_parse_netpath(outurl, &scan, uend, B_FALSE); in sip_uri_parse_it()
1529 scan = mark; in sip_uri_parse_it()
1530 while (scan < uend && *scan != '/' && in sip_uri_parse_it()
1531 *scan != '?') { in sip_uri_parse_it()
1532 ++scan; in sip_uri_parse_it()
1534 sip_uri_parse_abs_regname(outurl, mark, scan); in sip_uri_parse_it()
1564 --scan; in sip_uri_parse_it()
1569 if (scan < uend && *scan == '/') { in sip_uri_parse_it()
1570 mark = scan; in sip_uri_parse_it()
1571 while (scan < uend && *scan != '?') in sip_uri_parse_it()
1572 ++scan; in sip_uri_parse_it()
1573 sip_uri_parse_abs_path(outurl, mark, scan); in sip_uri_parse_it()
1579 if (scan < uend && *scan == '?') in sip_uri_parse_it()
1580 sip_uri_parse_abs_query(outurl, scan, uend); in sip_uri_parse_it()
1585 sip_uri_parse_abs_opaque(outurl, scan, uend); in sip_uri_parse_it()