libpsl

libpsl — Public Suffix List library functions

Stability Level

Unstable, unless otherwise indicated

Functions

Types and Values

typedef psl_ctx_t

Object Hierarchy


Includes

#include <libpsl.h>

Description

Public Suffix List library functions.

Functions

psl_load_file ()

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().

Parameters

fname

Name of PSL file

 

Returns

Pointer to a PSL context or NULL on failure.

Since 0.1


psl_load_fp ()

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().

Parameters

fp

FILE pointer

 

Returns

Pointer to a PSL context or NULL on failure.

Since 0.1


psl_builtin ()

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.

If the generation of built-in data has been disabled during compilation, NULL will be returned.

Returns

Pointer to the built in PSL data or NULL if this data is not available.

Since 0.1


psl_free ()

void
psl_free (psl_ctx_t *psl);

psl_is_public_suffix ()

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().

psl is a context returned by either psl_load_file(), psl_load_fp() or psl_builtin().

Parameters

psl

PSL context

 

domain

Domain string

 

Returns

1 if domain is a public suffix, 0 if not.

Since 0.1


psl_unregistrable_domain ()

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.

psl is a context returned by either psl_load_file(), psl_load_fp() or psl_builtin().

Parameters

psl

PSL context

 

domain

Domain string

 

Returns

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


psl_registrable_domain ()

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.

psl is a context returned by either psl_load_file(), psl_load_fp() or psl_builtin().

Parameters

psl

PSL context

 

domain

Domain string

 

Returns

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


psl_suffix_count ()

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.

If the generation of built-in data has been disabled during compilation, 0 will be returned.

Parameters

psl

PSL context pointer

 

Returns

Number of public suffixes entries in PSL context.

Since 0.1


psl_suffix_exception_count ()

int
psl_suffix_exception_count (const psl_ctx_t *psl);

This function returns number of public suffix exceptions maintained by psl .

If the generation of built-in data has been disabled during compilation, 0 will be returned.

Parameters

psl

PSL context pointer

 

Returns

Number of public suffix exceptions in PSL context.

Since 0.1


psl_builtin_compile_time ()

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.

Returns

time_t value or 0.

Since 0.1


psl_builtin_file_time ()

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.

Returns

time_t value or 0.

Since 0.1


psl_builtin_sha1sum ()

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.

Returns

String containing SHA1 checksum or an empty string.

Since 0.1


psl_builtin_filename ()

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.

Returns

String containing the PSL file name or an empty string.

Since 0.1


psl_is_cookie_domain_acceptable ()

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 .

Examples:

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

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

Parameters

psl

PSL context pointer

 

hostname

The request hostname.

 

cookie_domain

The domain value from a cookie

 

Returns

1 if acceptable, 0 if not acceptable.

Since 0.1

Types and Values

psl_ctx_t

typedef struct _psl_ctx_st psl_ctx_t;