| Top |  |  |  |  | 
| const char * | tld_strerror () | 
| int | tld_get_4 () | 
| int | tld_get_4z () | 
| int | tld_get_z () | 
| const Tld_table * | tld_get_table () | 
| const Tld_table * | tld_default_table () | 
| int | tld_check_4t () | 
| int | tld_check_4tz () | 
| int | tld_check_4 () | 
| int | tld_check_4z () | 
| int | tld_check_8z () | 
| int | tld_check_lz () | 
const char *
tld_strerror (Tld_rc rc);
Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.
TLD_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. TLD_INVALID: Invalid character found. TLD_NODATA: No input data was provided. TLD_MALLOC_ERROR: Error during memory allocation. TLD_ICONV_ERROR: Character encoding conversion error. TLD_NO_TLD: No top-level domain found in domain string.
int tld_get_4 (const uint32_t *in,size_t inlen,char **out);
Isolate the top-level domain of in
 and return it as an ASCII
string in out
.
int tld_get_4z (const uint32_t *in,char **out);
Isolate the top-level domain of in
 and return it as an ASCII
string in out
.
int tld_get_z (const char *in,char **out);
Isolate the top-level domain of in
 and return it as an ASCII
string in out
.  The input string in
 may be UTF-8, ISO-8859-1 or
any ASCII compatible character encoding.
const Tld_table * tld_get_table (const char *tld,const Tld_table **tables);
Get the TLD table for a named TLD by searching through the given TLD table array.
| tld | TLD name (e.g. "com") as zero terminated ASCII byte string. | |
| tables | Zero terminated array of Tld_table info-structures for TLDs. | 
const Tld_table * tld_default_table (const char *tld,const Tld_table **overrides);
Get the TLD table for a named TLD, using the internal defaults, possibly overridden by the (optional) supplied tables.
| tld | TLD name (e.g. "com") as zero terminated ASCII byte string. | |
| overrides | Additional zero terminated array of Tld_table
info-structures for TLDs, or  | 
int tld_check_4t (const uint32_t *in,size_t inlen,size_t *errpos,const Tld_table *tld);
Test each of the code points in in
 for whether or not
they are allowed by the data structure in tld
, return
the position of the first character for which this is not
the case in errpos
.
| in | Array of unicode code points to process. Does not need to be zero terminated. | |
| inlen | Number of unicode code points. | |
| errpos | Position of offending character is returned here. | |
| tld | A Tld_table data structure representing the restrictions for which the input should be tested. | 
 Returns the Tld_rc value TLD_SUCCESS if all code
points are valid or when tld
is null, TLD_INVALID if a
character is not allowed, or additional error codes on general
failure conditions.
int tld_check_4tz (const uint32_t *in,size_t *errpos,const Tld_table *tld);
Test each of the code points in in
 for whether or not
they are allowed by the data structure in tld
, return
the position of the first character for which this is not
the case in errpos
.
| in | Zero terminated array of unicode code points to process. | |
| errpos | Position of offending character is returned here. | |
| tld | A Tld_table data structure representing the restrictions for which the input should be tested. | 
 Returns the Tld_rc value TLD_SUCCESS if all code
points are valid or when tld
is null, TLD_INVALID if a
character is not allowed, or additional error codes on general
failure conditions.
int tld_check_4 (const uint32_t *in,size_t inlen,size_t *errpos,const Tld_table **overrides);
Test each of the code points in in
 for whether or not they are
allowed by the information in overrides
 or by the built-in TLD
restriction data. When data for the same TLD is available both
internally and in overrides
, the information in overrides
 takes
precedence. If several entries for a specific TLD are found, the
first one is used.  If overrides
 is NULL, only the built-in
information is used.  The position of the first offending character
is returned in errpos
.
| in | Array of unicode code points to process. Does not need to be zero terminated. | |
| inlen | Number of unicode code points. | |
| errpos | Position of offending character is returned here. | |
| overrides | A Tld_table array of additional domain restriction structures that complement and supersede the built-in information. | 
 Returns the Tld_rc value TLD_SUCCESS if all code
points are valid or when tld
is null, TLD_INVALID if a
character is not allowed, or additional error codes on general
failure conditions.
int tld_check_4z (const uint32_t *in,size_t *errpos,const Tld_table **overrides);
Test each of the code points in in
 for whether or not they are
allowed by the information in overrides
 or by the built-in TLD
restriction data. When data for the same TLD is available both
internally and in overrides
, the information in overrides
 takes
precedence. If several entries for a specific TLD are found, the
first one is used.  If overrides
 is NULL, only the built-in
information is used.  The position of the first offending character
is returned in errpos
.
| in | Zero-terminated array of unicode code points to process. | |
| errpos | Position of offending character is returned here. | |
| overrides | A Tld_table array of additional domain restriction structures that complement and supersede the built-in information. | 
 Returns the Tld_rc value TLD_SUCCESS if all code
points are valid or when tld
is null, TLD_INVALID if a
character is not allowed, or additional error codes on general
failure conditions.
int tld_check_8z (const char *in,size_t *errpos,const Tld_table **overrides);
Test each of the characters in in
 for whether or not they are
allowed by the information in overrides
 or by the built-in TLD
restriction data. When data for the same TLD is available both
internally and in overrides
, the information in overrides
 takes
precedence. If several entries for a specific TLD are found, the
first one is used.  If overrides
 is NULL, only the built-in
information is used.  The position of the first offending character
is returned in errpos
.  Note that the error position refers to the
decoded character offset rather than the byte position in the
string.
| in | Zero-terminated UTF8 string to process. | |
| errpos | Position of offending character is returned here. | |
| overrides | A Tld_table array of additional domain restriction structures that complement and supersede the built-in information. | 
 Returns the Tld_rc value TLD_SUCCESS if all
characters are valid or when tld
is null, TLD_INVALID if a
character is not allowed, or additional error codes on general
failure conditions.
int tld_check_lz (const char *in,size_t *errpos,const Tld_table **overrides);
Test each of the characters in in
 for whether or not they are
allowed by the information in overrides
 or by the built-in TLD
restriction data. When data for the same TLD is available both
internally and in overrides
, the information in overrides
 takes
precedence. If several entries for a specific TLD are found, the
first one is used.  If overrides
 is NULL, only the built-in
information is used.  The position of the first offending character
is returned in errpos
.  Note that the error position refers to the
decoded character offset rather than the byte position in the
string.
| in | Zero-terminated string in the current locales encoding to process. | |
| errpos | Position of offending character is returned here. | |
| overrides | A Tld_table array of additional domain restriction structures that complement and supersede the built-in information. | 
 Returns the Tld_rc value TLD_SUCCESS if all
characters are valid or when tld
is null, TLD_INVALID if a
character is not allowed, or additional error codes on general
failure conditions.
#define IDNAPI
Symbol holding shared library API visibility decorator.
This is used internally by the library header file and should never be used or modified by the application.
https://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shared-Libraries.html
struct Tld_table_element {
    uint32_t start;
    uint32_t end;
};
Interval of valid code points in the TLD.
struct Tld_table {
    const char *name;
    const char *version;
    size_t nvalid;
    const Tld_table_element *valid;
};
List valid code points in a TLD.
| TLD name, e.g., "no". | ||
| Version string from TLD file. | ||
| Number of entries in data. | ||
| const Tld_table_element * | Sorted array (of size  | 
Enumerated return codes of the TLD checking functions. The value 0 is guaranteed to always correspond to success.
| Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. | ||
| Invalid character found. | ||
| No input data was provided. | ||
| Error during memory allocation. | ||
| Character encoding conversion error. | ||
| No top-level domain found in domain string. | ||
| Same as  |