Top | ![]() |
![]() |
![]() |
![]() |
psl_ctx_t * | psl_load_file () |
psl_ctx_t * | psl_load_fp () |
const psl_ctx_t * | psl_builtin () |
void | psl_free () |
int | psl_is_public_suffix () |
const char * | psl_unregistrable_domain () |
const char * | psl_registrable_domain () |
int | psl_suffix_count () |
int | psl_suffix_exception_count () |
time_t | psl_builtin_compile_time () |
time_t | psl_builtin_file_time () |
const char * | psl_builtin_sha1sum () |
const char * | psl_builtin_filename () |
int | psl_is_cookie_domain_acceptable () |
const char * | psl_get_version () |
psl_error_t | psl_str_to_utf8lower () |
psl_ctx_t *
psl_load_file (const char *fname
);
This function loads the public suffixes file named fname
.
To free the allocated resources, call psl_free()
.
The suffixes are expected to be lowercase UTF-8 encoded if they are international.
Since: 0.1
psl_ctx_t *
psl_load_fp (FILE *fp
);
This function loads the public suffixes from a FILE pointer.
To free the allocated resources, call psl_free()
.
The suffixes are expected to be lowercase UTF-8 encoded if they are international.
Since: 0.1
const psl_ctx_t *
psl_builtin (void
);
This function returns the PSL context that has been generated and built in at compile-time. You don't have to free the returned context explicitely.
The builtin data also contains punycode entries, one for each international domain name.
If the generation of built-in data has been disabled during compilation, NULL
will be returned.
So if using the builtin psl context, you can provide UTF-8 or punycode representations of domains to
functions like psl_is_public_suffix()
.
Since: 0.1
void
psl_free (psl_ctx_t *psl
);
This function frees the the PSL context that has been retrieved via
psl_load_fp()
or psl_load_file()
.
Since: 0.1
int psl_is_public_suffix (const psl_ctx_t *psl
,const char *domain
);
This function checks if domain
is a public suffix by the means of the
Mozilla Public Suffix List.
For cookie domain checking see psl_is_cookie_domain_acceptable()
.
International domain
names have to be either in lowercase UTF-8 or in ASCII form (punycode).
Other encodings result in unexpected behavior.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Since: 0.1
const char * psl_unregistrable_domain (const psl_ctx_t *psl
,const char *domain
);
This function finds the longest publix suffix part of domain
by the means
of the Mozilla Public Suffix List.
International domain
names have to be either in lowercase UTF-8 or in ASCII form (punycode).
Other encodings result in unexpected behavior.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Pointer to longest public suffix part of domain
or NULL
if domain
does not contain a public suffix (or if psl
is NULL
).
Since: 0.1
const char * psl_registrable_domain (const psl_ctx_t *psl
,const char *domain
);
This function finds the shortest private suffix part of domain
by the means
of the Mozilla Public Suffix List.
International domain
names have to be either in lowercase UTF-8 or in ASCII form (punycode).
Other encodings result in unexpected behavior.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Pointer to shortest private suffix part of domain
or NULL
if domain
does not contain a private suffix (or if psl
is NULL
).
Since: 0.1
int
psl_suffix_count (const psl_ctx_t *psl
);
This function returns number of public suffixes maintained by psl
.
The number of exceptions within the Public Suffix List are not included.
Since: 0.1
int
psl_suffix_exception_count (const psl_ctx_t *psl
);
This function returns number of public suffix exceptions maintained by psl
.
Since: 0.1
time_t
psl_builtin_compile_time (void
);
This function returns the time when the Publix Suffix List has been compiled into C code (by psl2c).
If the generation of built-in data has been disabled during compilation, 0 will be returned.
Since: 0.1
time_t
psl_builtin_file_time (void
);
This function returns the mtime of the Publix Suffix List file that has been built in.
If the generation of built-in data has been disabled during compilation, 0 will be returned.
Since: 0.1
const char *
psl_builtin_sha1sum (void
);
This function returns the SHA1 checksum of the Publix Suffix List file that has been built in. The returned string is in lowercase hex encoding, e.g. "2af1e9e3044eda0678bb05949d7cca2f769901d8".
If the generation of built-in data has been disabled during compilation, an empty string will be returned.
Since: 0.1
const char *
psl_builtin_filename (void
);
This function returns the file name of the Publix Suffix List file that has been built in.
If the generation of built-in data has been disabled during compilation, an empty string will be returned.
Since: 0.1
int psl_is_cookie_domain_acceptable (const psl_ctx_t *psl
,const char *hostname
,const char *cookie_domain
);
This helper function checks whether cookie_domain
is an acceptable cookie domain value for the request
hostname
.
For international domain names both, hostname
and cookie_domain
, have to be either in lowercase UTF-8
or in ASCII form (punycode). Other encodings or mixing UTF-8 and punycode result in unexpected behavior.
Examples:
Cookie domain 'example.com' would be acceptable for hostname 'www.example.com', but '.com' or 'com' would NOT be acceptable since 'com' is a public suffix.
Cookie domain 'his.name' would be acceptable for hostname 'remember.his.name', but NOT for 'forgot.his.name' since 'forgot.his.name' is a public suffix.
psl |
PSL context pointer |
|
hostname |
The request hostname. |
|
cookie_domain |
The domain value from a cookie |
Since: 0.1
psl_error_t psl_str_to_utf8lower (const char *str
,const char *encoding
,const char *locale
,char **lower
);
This helper function converts a string to lowercase UTF-8 representation. Lowercase UTF-8 is needed as input to the domain checking functions.
lower
is set to NULL
on error.
The return value 'lower' must be freed after usage.
psl_error_t value.
PSL_SUCCESS: Success
PSL_ERR_INVALID_ARG: str
is a NULL
value.
PSL_ERR_CONVERTER: Failed to open the unicode converter with name encoding
PSL_ERR_TO_UTF16: Failed to convert str
to unicode
PSL_ERR_TO_LOWER: Failed to convert unicode to lowercase
PSL_ERR_TO_UTF8: Failed to convert unicode to UTF-8
Since: 0.4