libidn  1.32
Macros | Functions | Variables
tld.c File Reference
#include <config.h>
#include <stringprep.h>
#include <string.h>
#include <tld.h>

Go to the source code of this file.

Macros

#define DOTP(c)
 

Functions

const Tld_tabletld_get_table (const char *tld, const Tld_table **tables)
 
const Tld_tabletld_default_table (const char *tld, const Tld_table **overrides)
 
int tld_get_4 (const uint32_t *in, size_t inlen, char **out)
 
int tld_get_4z (const uint32_t *in, char **out)
 
int tld_get_z (const char *in, char **out)
 
int tld_check_4t (const uint32_t *in, size_t inlen, size_t *errpos, const Tld_table *tld)
 
int tld_check_4tz (const uint32_t *in, size_t *errpos, const Tld_table *tld)
 
int tld_check_4 (const uint32_t *in, size_t inlen, size_t *errpos, const Tld_table **overrides)
 
int tld_check_4z (const uint32_t *in, size_t *errpos, const Tld_table **overrides)
 
int tld_check_8z (const char *in, size_t *errpos, const Tld_table **overrides)
 
int tld_check_lz (const char *in, size_t *errpos, const Tld_table **overrides)
 

Variables

const Tld_table_tld_tables []
 

Macro Definition Documentation

#define DOTP (   c)
Value:
((c) == 0x002E || (c) == 0x3002 || \
(c) == 0xFF0E || (c) == 0xFF61)

Definition at line 105 of file tld.c.

Function Documentation

int tld_check_4 ( const uint32_t *  in,
size_t  inlen,
size_t *  errpos,
const Tld_table **  overrides 
)

tld_check_4:

Parameters
inArray of unicode code points to process. Does not need to be zero terminated.
inlenNumber of unicode code points.
errposPosition of offending character is returned here.
overridesA Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Test each of the code points in for whether or not they are allowed by the information in or by the built-in TLD restriction data. When data for the same TLD is available both internally and in , the information in takes precedence. If several entries for a specific TLD are found, the first one is used. If is NULL, only the built-in information is used. The position of the first offending character is returned in .

Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Definition at line 359 of file tld.c.

int tld_check_4t ( const uint32_t *  in,
size_t  inlen,
size_t *  errpos,
const Tld_table tld 
)

tld_check_4t:

Parameters
inArray of unicode code points to process. Does not need to be zero terminated.
inlenNumber of unicode code points.
errposPosition of offending character is returned here.
tldA Tld_table data structure representing the restrictions for which the input should be tested.

Test each of the code points in for whether or not they are allowed by the data structure in , return the position of the first character for which this is not the case in .

Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Definition at line 280 of file tld.c.

int tld_check_4tz ( const uint32_t *  in,
size_t *  errpos,
const Tld_table tld 
)

tld_check_4tz:

Parameters
inZero terminated array of unicode code points to process.
errposPosition of offending character is returned here.
tldA Tld_table data structure representing the restrictions for which the input should be tested.

Test each of the code points in for whether or not they are allowed by the data structure in , return the position of the first character for which this is not the case in .

Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Definition at line 322 of file tld.c.

int tld_check_4z ( const uint32_t *  in,
size_t *  errpos,
const Tld_table **  overrides 
)

tld_check_4z:

Parameters
inZero-terminated array of unicode code points to process.
errposPosition of offending character is returned here.
overridesA Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Test each of the code points in for whether or not they are allowed by the information in or by the built-in TLD restriction data. When data for the same TLD is available both internally and in , the information in takes precedence. If several entries for a specific TLD are found, the first one is used. If is NULL, only the built-in information is used. The position of the first offending character is returned in .

Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Definition at line 409 of file tld.c.

int tld_check_8z ( const char *  in,
size_t *  errpos,
const Tld_table **  overrides 
)

tld_check_8z:

Parameters
inZero-terminated UTF8 string to process.
errposPosition of offending character is returned here.
overridesA Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Test each of the characters in for whether or not they are allowed by the information in or by the built-in TLD restriction data. When data for the same TLD is available both internally and in , the information in takes precedence. If several entries for a specific TLD are found, the first one is used. If is NULL, only the built-in information is used. The position of the first offending character is returned in . Note that the error position refers to the decoded character offset rather than the byte position in the string.

Return value: Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Definition at line 447 of file tld.c.

int tld_check_lz ( const char *  in,
size_t *  errpos,
const Tld_table **  overrides 
)

tld_check_lz:

Parameters
inZero-terminated string in the current locales encoding to process.
errposPosition of offending character is returned here.
overridesA Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Test each of the characters in for whether or not they are allowed by the information in or by the built-in TLD restriction data. When data for the same TLD is available both internally and in , the information in takes precedence. If several entries for a specific TLD are found, the first one is used. If is NULL, only the built-in information is used. The position of the first offending character is returned in . Note that the error position refers to the decoded character offset rather than the byte position in the string.

Return value: Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

Definition at line 492 of file tld.c.

const Tld_table* tld_default_table ( const char *  tld,
const Tld_table **  overrides 
)

tld_default_table:

Parameters
tldTLD name (e.g. "com") as zero terminated ASCII byte string.
overridesAdditional zero terminated array of Tld_table info-structures for TLDs, or NULL to only use library deault tables.

Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables.

Return value: Return structure corresponding to TLD , first looking through then thru built-in list, or NULL if no such structure found.

Definition at line 89 of file tld.c.

int tld_get_4 ( const uint32_t *  in,
size_t  inlen,
char **  out 
)

tld_get_4:

Parameters
inArray of unicode code points to process. Does not need to be zero terminated.
inlenNumber of unicode code points.
outZero terminated ascii result string pointer.

Isolate the top-level domain of and return it as an ASCII string in .

Return value: Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

Definition at line 122 of file tld.c.

int tld_get_4z ( const uint32_t *  in,
char **  out 
)

tld_get_4z:

Parameters
inZero terminated array of unicode code points to process.
outZero terminated ascii result string pointer.

Isolate the top-level domain of and return it as an ASCII string in .

Return value: Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

Definition at line 171 of file tld.c.

const Tld_table* tld_get_table ( const char *  tld,
const Tld_table **  tables 
)

tld_get_table:

Parameters
tldTLD name (e.g. "com") as zero terminated ASCII byte string.
tablesZero terminated array of Tld_table info-structures for TLDs.

Get the TLD table for a named TLD by searching through the given TLD table array.

Return value: Return structure corresponding to TLD by going thru , or return NULL if no such structure is found.

Definition at line 60 of file tld.c.

int tld_get_z ( const char *  in,
char **  out 
)

tld_get_z:

Parameters
inZero terminated character array to process.
outZero terminated ascii result string pointer.

Isolate the top-level domain of and return it as an ASCII string in . The input string may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding.

Return value: Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

Definition at line 197 of file tld.c.

Variable Documentation

const Tld_table* _tld_tables[]

Definition at line 58 of file tlds.c.