obs-route = obs-domain-list ":" obs-domain-list = *(CFWS / ",") "@" domain *("," [CFWS] ["@" domain]) Returns an obs-route token with the appropriate sub-tokens (that is, there is no obs-domain-list in the parse tree).
(value)
| 1691 | return addr_spec, value |
| 1692 | |
| 1693 | def get_obs_route(value): |
| 1694 | """ obs-route = obs-domain-list ":" |
| 1695 | obs-domain-list = *(CFWS / ",") "@" domain *("," [CFWS] ["@" domain]) |
| 1696 | |
| 1697 | Returns an obs-route token with the appropriate sub-tokens (that is, |
| 1698 | there is no obs-domain-list in the parse tree). |
| 1699 | """ |
| 1700 | obs_route = ObsRoute() |
| 1701 | while value and (value[0]==',' or value[0] in CFWS_LEADER): |
| 1702 | if value[0] in CFWS_LEADER: |
| 1703 | token, value = get_cfws(value) |
| 1704 | obs_route.append(token) |
| 1705 | elif value[0] == ',': |
| 1706 | obs_route.append(ListSeparator) |
| 1707 | value = value[1:] |
| 1708 | if not value or value[0] != '@': |
| 1709 | raise errors.HeaderParseError( |
| 1710 | "expected obs-route domain but found '{}'".format(value)) |
| 1711 | obs_route.append(RouteComponentMarker) |
| 1712 | token, value = get_domain(value[1:]) |
| 1713 | obs_route.append(token) |
| 1714 | while value and value[0]==',': |
| 1715 | obs_route.append(ListSeparator) |
| 1716 | value = value[1:] |
| 1717 | if not value: |
| 1718 | break |
| 1719 | if value[0] in CFWS_LEADER: |
| 1720 | token, value = get_cfws(value) |
| 1721 | obs_route.append(token) |
| 1722 | if not value: |
| 1723 | break |
| 1724 | if value[0] == '@': |
| 1725 | obs_route.append(RouteComponentMarker) |
| 1726 | token, value = get_domain(value[1:]) |
| 1727 | obs_route.append(token) |
| 1728 | if not value: |
| 1729 | raise errors.HeaderParseError("end of header while parsing obs-route") |
| 1730 | if value[0] != ':': |
| 1731 | raise errors.HeaderParseError( "expected ':' marking end of " |
| 1732 | "obs-route but found '{}'".format(value)) |
| 1733 | obs_route.append(ValueTerminal(':', 'end-of-obs-route-marker')) |
| 1734 | return obs_route, value[1:] |
| 1735 | |
| 1736 | def get_angle_addr(value): |
| 1737 | """ angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / obs-angle-addr |
no test coverage detected
searching dependent graphs…