IDN testsuite and fixes

This commit is contained in:
Günter Obiltschnig
2018-02-17 18:09:19 +01:00
parent c74af100b5
commit c17c569d13
3 changed files with 115 additions and 16 deletions

View File

@@ -32,7 +32,17 @@ class Net_API DNS
/// This class provides an interface to the
/// domain name service.
///
/// An internal DNS cache is used to speed up name lookups.
/// Starting with POCO C++ Libraries release 1.9.0,
/// this class also supports Internationalized Domain Names (IDNs).
///
/// Regarding IDNs, the following rules apply:
///
/// * An IDN passed to hostByName() must be encoded manually, by calling
/// encodeIDN() (after testing with isIDN() first).
/// * An UTF-8 IDN passed to resolve() or resolveOne() is automatically encoded.
/// * IDNs returned in HostEntry objects are never decoded. They can be
/// decoded by calling decodeIDN() (after testing for an encoded IDN by
/// calling isEncodedIDN()).
{
public:
enum HintFlag
@@ -60,6 +70,9 @@ public:
/// for the host with the given name. HintFlag argument is only
/// used on platforms that have getaddrinfo().
///
/// Note that Internationalized Domain Names must be encoded
/// using Punycode (see encodeIDN()) before calling this method.
///
/// Throws a HostNotFoundException if a host with the given
/// name cannot be found.
///
@@ -93,8 +106,8 @@ public:
/// for the host with the given IP address or host name.
///
/// If address contains a UTF-8 encoded IDN (internationalized
/// domain name), the domain name will be encoded first according
/// to Punycode.
/// domain name), the domain name will be encoded first using
/// Punycode.
///
/// Throws a HostNotFoundException if a host with the given
/// name cannot be found.