12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- //
- // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- // Official repository: https://github.com/boostorg/url
- //
- #ifndef BOOST_URL_RFC_DETAIL_REG_NAME_RULE_HPP
- #define BOOST_URL_RFC_DETAIL_REG_NAME_RULE_HPP
- #include <boost/url/detail/config.hpp>
- #include <boost/url/rfc/pct_encoded_rule.hpp>
- #include <boost/url/rfc/sub_delim_chars.hpp>
- #include <boost/url/rfc/unreserved_chars.hpp>
- namespace boost {
- namespace urls {
- namespace detail {
- /* VFALCO In theory we could enforce these
- additional requirements from errata 4942:
- Such a name consists of a sequence of domain
- labels separated by ".", each domain label
- starting and ending with an alphanumeric character
- and possibly also containing "-" characters. The
- rightmost domain label of a fully qualified domain
- name in DNS may be followed by a single "." and
- should be if it is necessary to distinguish between
- the complete domain name and some local domain.
- */
- /** Rule for reg-name
- @par BNF
- @code
- reg-name = *( unreserved / pct-encoded / "-" / ".")
- @endcode
- @par Specification
- @li <a href="https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2"
- >3.2.2. Host (rfc3986)</a>
- @li <a href="https://www.rfc-editor.org/errata/eid4942"
- >Errata ID: 4942</a>
- */
- constexpr auto reg_name_rule =
- pct_encoded_rule(unreserved_chars + sub_delim_chars);
- } // detail
- } // urls
- } // boost
- #endif
|