ext-boost/boost/url/rfc/detail/reg_name_rule.hpp
2023-11-04 21:30:42 +02:00

56 lines
1.6 KiB
C++

//
// 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