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