domain = dot-atom / domain-literal / obs-domain obs-domain = atom *("." atom))
(value)
| 1620 | return domain_literal, value |
| 1621 | |
| 1622 | def get_domain(value): |
| 1623 | """ domain = dot-atom / domain-literal / obs-domain |
| 1624 | obs-domain = atom *("." atom)) |
| 1625 | |
| 1626 | """ |
| 1627 | domain = Domain() |
| 1628 | leader = None |
| 1629 | if value and value[0] in CFWS_LEADER: |
| 1630 | leader, value = get_cfws(value) |
| 1631 | if not value: |
| 1632 | raise errors.HeaderParseError( |
| 1633 | "expected domain but found '{}'".format(value)) |
| 1634 | if value[0] == '[': |
| 1635 | token, value = get_domain_literal(value) |
| 1636 | if leader is not None: |
| 1637 | token[:0] = [leader] |
| 1638 | domain.append(token) |
| 1639 | return domain, value |
| 1640 | try: |
| 1641 | token, value = get_dot_atom(value) |
| 1642 | except errors.HeaderParseError: |
| 1643 | token, value = get_atom(value) |
| 1644 | if value and value[0] == '@': |
| 1645 | raise errors.HeaderParseError('Invalid Domain') |
| 1646 | if leader is not None: |
| 1647 | token[:0] = [leader] |
| 1648 | domain.append(token) |
| 1649 | if value and value[0] == '.': |
| 1650 | domain.defects.append(errors.ObsoleteHeaderDefect( |
| 1651 | "domain is not a dot-atom (contains CFWS)")) |
| 1652 | if domain[0].token_type == 'dot-atom': |
| 1653 | domain[:] = domain[0] |
| 1654 | while value and value[0] == '.': |
| 1655 | domain.append(DOT) |
| 1656 | token, value = get_atom(value[1:]) |
| 1657 | domain.append(token) |
| 1658 | return domain, value |
| 1659 | |
| 1660 | def get_addr_spec(value): |
| 1661 | """ addr-spec = local-part "@" domain |
no test coverage detected