Blame docs/libpsl/libpsl.3

Packit Service dcb6c2
'\" t
Packit Service dcb6c2
.\"     Title: libpsl
Packit Service dcb6c2
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
Packit Service dcb6c2
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
Packit Service dcb6c2
.\"      Date: 04/26/2018
Packit Service dcb6c2
.\"    Manual: LIBPSL Library
Packit Service dcb6c2
.\"    Source: LIBPSL Library
Packit Service dcb6c2
.\"  Language: English
Packit Service dcb6c2
.\"
Packit Service dcb6c2
.TH "LIBPSL" "3" "04/26/2018" "LIBPSL Library" "LIBPSL Library"
Packit Service dcb6c2
.\" -----------------------------------------------------------------
Packit Service dcb6c2
.\" * Define some portability stuff
Packit Service dcb6c2
.\" -----------------------------------------------------------------
Packit Service dcb6c2
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit Service dcb6c2
.\" http://bugs.debian.org/507673
Packit Service dcb6c2
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
Packit Service dcb6c2
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit Service dcb6c2
.ie \n(.g .ds Aq \(aq
Packit Service dcb6c2
.el       .ds Aq '
Packit Service dcb6c2
.\" -----------------------------------------------------------------
Packit Service dcb6c2
.\" * set default formatting
Packit Service dcb6c2
.\" -----------------------------------------------------------------
Packit Service dcb6c2
.\" disable hyphenation
Packit Service dcb6c2
.nh
Packit Service dcb6c2
.\" disable justification (adjust text to left margin only)
Packit Service dcb6c2
.ad l
Packit Service dcb6c2
.\" -----------------------------------------------------------------
Packit Service dcb6c2
.\" * MAIN CONTENT STARTS HERE *
Packit Service dcb6c2
.\" -----------------------------------------------------------------
Packit Service dcb6c2
.SH "NAME"
Packit Service dcb6c2
libpsl \- Public Suffix List library functions
Packit Service dcb6c2
.SH "STABILITY LEVEL"
Packit Service dcb6c2
Stable, unless otherwise indicated
Packit Service dcb6c2
.SH "FUNCTIONS"
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
psl_ctx_t\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_load_file\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
psl_ctx_t\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_load_fp\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
psl_ctx_t\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_latest\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const psl_ctx_t\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_builtin\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
void
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_free\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_is_public_suffix\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_is_public_suffix2\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_unregistrable_domain\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_registrable_domain\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_suffix_count\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_suffix_exception_count\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_suffix_wildcard_count\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
time_t
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_builtin_file_time\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_builtin_sha1sum\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_builtin_filename\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_builtin_outdated\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_is_cookie_domain_acceptable\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_dist_filename\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_get_version\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
int
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_check_version_number\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
psl_error_t
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_str_to_utf8lower\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
void
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_free_string\ \&()
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.SH "TYPES AND VALUES"
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l
Packit Service dcb6c2
l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_VERSION
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_VERSION_MAJOR
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_VERSION_MINOR
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_VERSION_NUMBER
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_VERSION_PATCH
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_TYPE_ICANN
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_TYPE_PRIVATE
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_TYPE_NO_STAR_RULE
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
#define
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
PSL_TYPE_ANY
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
enum
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_error_t
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
typedef
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
psl_ctx_t
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.SH "INCLUDES"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#include <libpsl\&.h>
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SH "DESCRIPTION"
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\m[blue]\fBPublic Suffix List\fR\m[]\&\s-2\u[1]\d\s+2
Packit Service dcb6c2
library functions\&.
Packit Service dcb6c2
.SH "FUNCTIONS"
Packit Service dcb6c2
.SS "psl_load_file\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
psl_ctx_t\ \&*
Packit Service dcb6c2
psl_load_file (\fIconst \fR\fI\fBchar\fR\fR\fI *fname\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function loads the public suffixes file named
Packit Service dcb6c2
\fIfname\fR
Packit Service dcb6c2
\&. To free the allocated resources, call
Packit Service dcb6c2
\fBpsl_free()\fR\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
The suffixes are expected to be UTF\-8 encoded (lowercase + NFKC) if they are international\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
fname
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Name of PSL file
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Pointer to a PSL context or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
on failure\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_load_fp\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
psl_ctx_t\ \&*
Packit Service dcb6c2
psl_load_fp (\fI\fBFILE\fR\fR\fI *fp\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function loads the public suffixes from a FILE pointer\&. To free the allocated resources, call
Packit Service dcb6c2
\fBpsl_free()\fR\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
The suffixes are expected to be UTF\-8 encoded (lowercase + NFKC) if they are international\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
fp
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
FILE pointer
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Pointer to a PSL context or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
on failure\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_latest\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
psl_ctx_t\ \&*
Packit Service dcb6c2
psl_latest (\fIconst \fR\fI\fBchar\fR\fR\fI *fname\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function loads the the latest available PSL data from either
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.ie n \{\
Packit Service dcb6c2
\h'-04'\(bu\h'+03'\c
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.el \{\
Packit Service dcb6c2
.sp -1
Packit Service dcb6c2
.IP \(bu 2.3
Packit Service dcb6c2
.\}
Packit Service dcb6c2
\fIfname\fR
Packit Service dcb6c2
(application specific filename, may be
Packit Service dcb6c2
NULL)
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.ie n \{\
Packit Service dcb6c2
\h'-04'\(bu\h'+03'\c
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.el \{\
Packit Service dcb6c2
.sp -1
Packit Service dcb6c2
.IP \(bu 2.3
Packit Service dcb6c2
.\}
Packit Service dcb6c2
location specified during built\-time (filename from \&./configure \-\-with\-psl\-distfile)
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.ie n \{\
Packit Service dcb6c2
\h'-04'\(bu\h'+03'\c
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.el \{\
Packit Service dcb6c2
.sp -1
Packit Service dcb6c2
.IP \(bu 2.3
Packit Service dcb6c2
.\}
Packit Service dcb6c2
built\-in PSL data (generated from \&./configure \-\-with\-psl\-file)
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.ie n \{\
Packit Service dcb6c2
\h'-04'\(bu\h'+03'\c
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.el \{\
Packit Service dcb6c2
.sp -1
Packit Service dcb6c2
.IP \(bu 2.3
Packit Service dcb6c2
.\}
Packit Service dcb6c2
location of built\-in data (filename from \&./configure \-\-with\-psl\-file)
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If none of the above is available, the function returns
Packit Service dcb6c2
NULL\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
To free the allocated resources, call
Packit Service dcb6c2
\fBpsl_free()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
fname
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Name of PSL file or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Pointer to a PSL context or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
on failure\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.16
Packit Service dcb6c2
.SS "psl_builtin\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const psl_ctx_t\ \&*
Packit Service dcb6c2
psl_builtin (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns the PSL context that has been generated and built in at compile\-time\&. You don\*(Aqt have to free the returned context explicitly\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
The builtin data also contains punycode entries, one for each international domain name\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the generation of built\-in data has been disabled during compilation,
Packit Service dcb6c2
NULL
Packit Service dcb6c2
will be returned\&. When using the builtin psl context, you can provide UTF\-8 (lowercase + NFKC) or ASCII/ACE (punycode) representations of domains to functions like
Packit Service dcb6c2
\fBpsl_is_public_suffix()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Pointer to the built in PSL data or NULL if this data is not available\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_free\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
void
Packit Service dcb6c2
psl_free (\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function frees the the PSL context that has been retrieved via
Packit Service dcb6c2
\fBpsl_load_fp()\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
\fBpsl_load_file()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context pointer
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_is_public_suffix\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_is_public_suffix (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR,
Packit Service dcb6c2
                      \fIconst \fR\fI\fBchar\fR\fR\fI *domain\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function checks if
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
is a public suffix by the means of the
Packit Service dcb6c2
\m[blue]\fBMozilla Public Suffix List\fR\m[]\&\s-2\u[2]\d\s+2\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
For cookie domain checking see
Packit Service dcb6c2
\fBpsl_is_cookie_domain_acceptable()\fR\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
International
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
names have to be either in UTF\-8 (lowercase + NFKC) or in ASCII/ACE format (punycode)\&. Other encodings likely result in incorrect return values\&. Use helper function
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
for normalization
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is a context returned by either
Packit Service dcb6c2
\fBpsl_load_file()\fR,
Packit Service dcb6c2
\fBpsl_load_fp()\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
\fBpsl_builtin()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
domain
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Domain string
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
1 if domain is a public suffix, 0 if not\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_is_public_suffix2\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_is_public_suffix2 (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR,
Packit Service dcb6c2
                       \fIconst \fR\fI\fBchar\fR\fR\fI *domain\fR,
Packit Service dcb6c2
                       \fI\fBint\fR\fR\fI type\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function checks if
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
is a public suffix by the means of the
Packit Service dcb6c2
\m[blue]\fBMozilla Public Suffix List\fR\m[]\&\s-2\u[2]\d\s+2\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\fItype\fR
Packit Service dcb6c2
specifies the PSL section where to perform the lookup\&. Valid values are
Packit Service dcb6c2
PSL_TYPE_PRIVATE,
Packit Service dcb6c2
PSL_TYPE_ICANN,
Packit Service dcb6c2
PSL_TYPE_NO_STAR_RULE, and
Packit Service dcb6c2
PSL_TYPE_ANY\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_TYPE_NO_STAR_RULE
Packit Service dcb6c2
switches of the \*(Aqprevailing star rule\*(Aq (see
Packit Service dcb6c2
\m[blue]\fBList\fR\m[]\&\s-2\u[3]\d\s+2
Packit Service dcb6c2
under \*(AqAlgorithm\*(Aq 2\&.)\&. Applying the flag means that TLDs not explicitly listed in the PSL are *not* treated as public suffixes\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
International
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
names have to be either in UTF\-8 (lowercase + NFKC) or in ASCII/ACE format (punycode)\&. Other encodings likely result in incorrect return values\&. Use helper function
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
for normalization
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is a context returned by either
Packit Service dcb6c2
\fBpsl_load_file()\fR,
Packit Service dcb6c2
\fBpsl_load_fp()\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
\fBpsl_builtin()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
domain
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Domain string
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
type
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Domain type
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
1 if domain is a public suffix, 0 if not\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_unregistrable_domain\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
psl_unregistrable_domain (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR,
Packit Service dcb6c2
                          \fIconst \fR\fI\fBchar\fR\fR\fI *domain\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function finds the longest public suffix part of
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
by the means of the
Packit Service dcb6c2
\m[blue]\fBMozilla Public Suffix List\fR\m[]\&\s-2\u[2]\d\s+2\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
International
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
names have to be either in UTF\-8 (lowercase + NFKC) or in ASCII/ACE format (punycode)\&. Other encodings likely result in incorrect return values\&. Use helper function
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
for normalization
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is a context returned by either
Packit Service dcb6c2
\fBpsl_load_file()\fR,
Packit Service dcb6c2
\fBpsl_load_fp()\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
\fBpsl_builtin()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
domain
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Domain string
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Pointer to longest public suffix part of
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
if
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
does not contain a public suffix (or if
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is
Packit Service dcb6c2
NULL)\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_registrable_domain\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
psl_registrable_domain (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR,
Packit Service dcb6c2
                        \fIconst \fR\fI\fBchar\fR\fR\fI *domain\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function finds the shortest private suffix part of
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
by the means of the
Packit Service dcb6c2
\m[blue]\fBMozilla Public Suffix List\fR\m[]\&\s-2\u[2]\d\s+2\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
International
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
names have to be either in UTF\-8 (lowercase + NFKC) or in ASCII/ACE format (punycode)\&. Other encodings likely result in incorrect return values\&. Use helper function
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
for normalization
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is a context returned by either
Packit Service dcb6c2
\fBpsl_load_file()\fR,
Packit Service dcb6c2
\fBpsl_load_fp()\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
\fBpsl_builtin()\fR\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
domain
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Domain string
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Pointer to shortest private suffix part of
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
if
Packit Service dcb6c2
\fIdomain\fR
Packit Service dcb6c2
does not contain a private suffix (or if
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is
Packit Service dcb6c2
NULL)\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_suffix_count\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_suffix_count (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns number of public suffixes maintained by
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
\&. The number of exceptions within the Public Suffix List are not included\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the information is not available, the return value is \-1 (since 0\&.19)\&. This is the case with DAFSA blobs or if
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is NULL\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context pointer
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Number of public suffixes entries in PSL context or \-1 if this information is not available\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_suffix_exception_count\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_suffix_exception_count (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns number of public suffix exceptions maintained by
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the information is not available, the return value is \-1 (since 0\&.19)\&. This is the case with DAFSA blobs or if
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is NULL\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context pointer
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Number of public suffix exceptions in PSL context or \-1 if this information is not available\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_suffix_wildcard_count\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_suffix_wildcard_count (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns number of public suffix wildcards maintained by
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the information is not available, the return value is \-1 (since 0\&.19)\&. This is the case with DAFSA blobs or if
Packit Service dcb6c2
\fIpsl\fR
Packit Service dcb6c2
is NULL\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context pointer
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Number of public suffix wildcards in PSL context or \-1 if this information is not available\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.10\&.0
Packit Service dcb6c2
.SS "psl_builtin_file_time\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
time_t
Packit Service dcb6c2
psl_builtin_file_time (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns the mtime of the Public Suffix List file that has been built in\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the generation of built\-in data has been disabled during compilation, 0 will be returned\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
time_t value or 0\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_builtin_sha1sum\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
psl_builtin_sha1sum (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns the SHA1 checksum of the Public Suffix List file that has been built in\&. The returned string is in lowercase hex encoding, e\&.g\&. "2af1e9e3044eda0678bb05949d7cca2f769901d8"\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the generation of built\-in data has been disabled during compilation, an empty string will be returned\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
String containing SHA1 checksum or an empty string\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_builtin_filename\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
psl_builtin_filename (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns the file name of the Public Suffix List file that has been built in\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the generation of built\-in data has been disabled during compilation, an empty string will be returned\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
String containing the PSL file name or an empty string\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_builtin_outdated\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_builtin_outdated (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function checks if the built\-in data is older than the file it has been created from\&. If it is, it might be a good idea for the application to reload the PSL\&. The mtime is taken as reference\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
If the PSL file does not exist, it is assumed that the built\-in data is not outdated\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
1 if the built\-in is outdated, 0 otherwise\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.10\&.0
Packit Service dcb6c2
.SS "psl_is_cookie_domain_acceptable\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_is_cookie_domain_acceptable (\fIconst \fR\fI\fBpsl_ctx_t\fR\fR\fI *psl\fR,
Packit Service dcb6c2
                                 \fIconst \fR\fI\fBchar\fR\fR\fI *hostname\fR,
Packit Service dcb6c2
                                 \fIconst \fR\fI\fBchar\fR\fR\fI *cookie_domain\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This helper function checks whether
Packit Service dcb6c2
\fIcookie_domain\fR
Packit Service dcb6c2
is an acceptable cookie domain value for the request
Packit Service dcb6c2
\fIhostname\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
For international domain names both,
Packit Service dcb6c2
\fIhostname\fR
Packit Service dcb6c2
and
Packit Service dcb6c2
\fIcookie_domain\fR
Packit Service dcb6c2
, have to be either in UTF\-8 (lowercase + NFKC) or in ASCII/ACE (punycode) format\&. Other encodings or mixing UTF\-8 and punycode likely result in incorrect return values\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Use helper function
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
for normalization of
Packit Service dcb6c2
\fIhostname\fR
Packit Service dcb6c2
and
Packit Service dcb6c2
\fIcookie_domain\fR
Packit Service dcb6c2
\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Examples:
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.ie n \{\
Packit Service dcb6c2
\h'-04' 1.\h'+01'\c
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.el \{\
Packit Service dcb6c2
.sp -1
Packit Service dcb6c2
.IP "  1." 4.2
Packit Service dcb6c2
.\}
Packit Service dcb6c2
Cookie domain \*(Aqexample\&.com\*(Aq would be acceptable for hostname \*(Aqwww\&.example\&.com\*(Aq, but \*(Aq\&.com\*(Aq or \*(Aqcom\*(Aq would NOT be acceptable since \*(Aqcom\*(Aq is a public suffix\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.ie n \{\
Packit Service dcb6c2
\h'-04' 2.\h'+01'\c
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.el \{\
Packit Service dcb6c2
.sp -1
Packit Service dcb6c2
.IP "  2." 4.2
Packit Service dcb6c2
.\}
Packit Service dcb6c2
Cookie domain \*(Aqhis\&.name\*(Aq would be acceptable for hostname \*(Aqremember\&.his\&.name\*(Aq, but NOT for \*(Aqforgot\&.his\&.name\*(Aq since \*(Aqforgot\&.his\&.name\*(Aq is a public suffix\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL context pointer
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
hostname
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
The request hostname\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
cookie_domain
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
The domain value from a cookie
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
1 if acceptable, 0 if not acceptable\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.1
Packit Service dcb6c2
.SS "psl_dist_filename\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
psl_dist_filename (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function returns the file name of the distribution/system PSL data file\&. This file will be considered by
Packit Service dcb6c2
\fBpsl_latest()\fR\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Return the filename that is set by \&./configure \-\-with\-psl\-distfile, or an empty string\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
String containing a PSL file name or an empty string\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.16
Packit Service dcb6c2
.SS "psl_get_version\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
const char\ \&*
Packit Service dcb6c2
psl_get_version (\fI\fBvoid\fR\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Get libpsl version\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
String containing version of libpsl\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.2\&.5
Packit Service dcb6c2
.SS "psl_check_version_number\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
int
Packit Service dcb6c2
psl_check_version_number (\fI\fBint\fR\fR\fI version\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Check the given version number is at minimum the current library version number\&. The version number must be a hexadecimal number like 0x000a01 (V0\&.10\&.1)\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
version
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Version number (hex) to check against\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Returns the library version number if the given version number is at least the version of the library, else return 0; If the argument is 0, the function returns the library version number without performing a check\&.
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.11\&.0
Packit Service dcb6c2
.SS "psl_str_to_utf8lower\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
psl_error_t
Packit Service dcb6c2
psl_str_to_utf8lower (\fIconst \fR\fI\fBchar\fR\fR\fI *str\fR,
Packit Service dcb6c2
                      \fIconst \fR\fI\fBchar\fR\fR\fI *encoding\fR,
Packit Service dcb6c2
                      \fIconst \fR\fI\fBchar\fR\fR\fI *locale\fR,
Packit Service dcb6c2
                      \fI\fBchar\fR\fR\fI **lower\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This helper function converts a string to UTF\-8 lowercase + NFKC representation\&. Lowercase + NFKC UTF\-8 is needed as input to the domain checking functions\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
\fIlower\fR
Packit Service dcb6c2
stays unchanged on error\&.
Packit Service dcb6c2
.PP
Packit Service dcb6c2
When returning PSL_SUCCESS, the return value \*(Aqlower\*(Aq must be freed after usage\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
str
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
string to convert
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
encoding
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
charset encoding of
Packit Service dcb6c2
\fIstr\fR
Packit Service dcb6c2
, e\&.g\&. \*(Aqiso\-8859\-1\*(Aq or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
locale
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
locale of
Packit Service dcb6c2
\fIstr\fR
Packit Service dcb6c2
for to lowercase conversion, e\&.g\&. \*(Aqde\*(Aq or
Packit Service dcb6c2
NULL
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
lower
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
return value containing the converted string
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBReturns\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.PP
Packit Service dcb6c2
psl_error_t value\&. PSL_SUCCESS: Success PSL_ERR_INVALID_ARG:
Packit Service dcb6c2
\fIstr\fR
Packit Service dcb6c2
is a
Packit Service dcb6c2
NULL
Packit Service dcb6c2
value\&. PSL_ERR_CONVERTER: Failed to open the unicode converter with name
Packit Service dcb6c2
\fIencoding\fR
Packit Service dcb6c2
PSL_ERR_TO_UTF16: Failed to convert
Packit Service dcb6c2
\fIstr\fR
Packit Service dcb6c2
to unicode PSL_ERR_TO_LOWER: Failed to convert unicode to lowercase PSL_ERR_TO_UTF8: Failed to convert unicode to UTF\-8 PSL_ERR_NO_MEM: Failed to allocate memory
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.4
Packit Service dcb6c2
.SS "psl_free_string\ \&()"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
void
Packit Service dcb6c2
psl_free_string (\fI\fBchar\fR\fR\fI *str\fR);
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.PP
Packit Service dcb6c2
This function
Packit Service dcb6c2
\fBfree()\fR\*(Aqs the memory allocated by
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
when returning a lowercase string
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBParameters\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
str
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
pointer to lowercase string returned by
Packit Service dcb6c2
\fBpsl_str_to_utf8lower()\fR
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Since:
Packit Service dcb6c2
0\&.19
Packit Service dcb6c2
.SH "TYPES AND VALUES"
Packit Service dcb6c2
.SS "PSL_VERSION"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_VERSION "0\&.20\&.2"
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_VERSION_MAJOR"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_VERSION_MAJOR 0
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_VERSION_MINOR"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_VERSION_MINOR 20
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_VERSION_NUMBER"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_VERSION_NUMBER 0x001402
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_VERSION_PATCH"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_VERSION_PATCH 2
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_TYPE_ICANN"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_TYPE_ICANN        (1<<0)
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_TYPE_PRIVATE"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_TYPE_PRIVATE      (1<<1)
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_TYPE_NO_STAR_RULE"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_TYPE_NO_STAR_RULE (1<<2)
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "PSL_TYPE_ANY"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
#define PSL_TYPE_ANY          (PSL_TYPE_ICANN | PSL_TYPE_PRIVATE)
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SS "enum psl_error_t"
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Return codes for PSL functions\&. Negative return codes mean failure\&. Positive values are reserved for non\-error return codes\&.
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.it 1 an-trap
Packit Service dcb6c2
.nr an-no-space-flag 1
Packit Service dcb6c2
.nr an-break-flag 1
Packit Service dcb6c2
.br
Packit Service dcb6c2
.ps +1
Packit Service dcb6c2
\fBMembers\fR
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.TS
Packit Service dcb6c2
expand tab(:);
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l
Packit Service dcb6c2
l l l.
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_SUCCESS
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Successful return\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_ERR_INVALID_ARG
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Invalid argument\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_ERR_CONVERTER
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Failed to open libicu utf\-16 converter\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_ERR_TO_UTF16
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Failed to convert to utf\-16\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_ERR_TO_LOWER
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Failed to convert utf\-16 to lowercase\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_ERR_TO_UTF8
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Failed to convert utf\-16 to utf\-8\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
PSL_ERR_NO_MEM
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
.PP
Packit Service dcb6c2
Failed to allocate memory\&.
Packit Service dcb6c2
T}:T{
Packit Service dcb6c2
\ \&
Packit Service dcb6c2
T}
Packit Service dcb6c2
.TE
Packit Service dcb6c2
.sp 1
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.SS "psl_ctx_t"
Packit Service dcb6c2
.sp
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.nf
Packit Service dcb6c2
typedef struct _psl_ctx_st psl_ctx_t;
Packit Service dcb6c2
.fi
Packit Service dcb6c2
.if n \{\
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.\}
Packit Service dcb6c2
.SH "NOTES"
Packit Service dcb6c2
.IP " 1." 4
Packit Service dcb6c2
Public Suffix List
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
\%https://publicsuffix.org/
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.IP " 2." 4
Packit Service dcb6c2
Mozilla Public Suffix List
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
\%https://publicsuffix.org
Packit Service dcb6c2
.RE
Packit Service dcb6c2
.IP " 3." 4
Packit Service dcb6c2
List
Packit Service dcb6c2
.RS 4
Packit Service dcb6c2
\%https://publicsuffix.org/list
Packit Service dcb6c2
.RE