![]() |
![]() |
![]() |
libsoup Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <libsoup/soup.h> const char * soup_tld_get_base_domain (const char *hostname
,GError **error
); gboolean soup_tld_domain_is_public_suffix (const char *domain
); #define SOUP_TLD_ERROR enum SoupTLDError;
These functions can be used to parse hostnames to attempt to determine what part of the name belongs to the domain owner, and what part is simply a "public suffix" such as ".com".
const char * soup_tld_get_base_domain (const char *hostname
,GError **error
);
Finds the base domain for a given hostname
. The base domain is
composed by the top level domain (such as .org, .com, .co.uk, etc)
plus the second level domain, for example for myhost.mydomain.com
it will return mydomain.com.
Note that NULL
will be returned for private URLs (those not ending
with any well known TLD) because choosing a base domain for them
would be totally arbitrary.
Prior to libsoup 2.46, this function required that hostname
be in
UTF-8 if it was an IDN. From 2.46 on, the name can be in either
UTF-8 or ASCII format (and the return value will be in the same
format).
|
a hostname |
|
return location for a GError, or NULL to ignore
errors. See SoupTLDError for the available error codes |
Returns : |
a pointer to the start of the base domain in hostname . If
an error occurs, NULL will be returned and error set. |
Since 2.40
gboolean soup_tld_domain_is_public_suffix (const char *domain
);
Looks whether the domain
passed as argument is a public domain
suffix (.org, .com, .co.uk, etc) or not.
Prior to libsoup 2.46, this function required that domain
be in
UTF-8 if it was an IDN. From 2.46 on, the name can be in either
UTF-8 or ASCII format (and the return value will be in the same
format).
Since 2.40
#define SOUP_TLD_ERROR soup_tld_error_quark()
The GError domain for soup-tld-related errors.
Since 2.40
typedef enum { SOUP_TLD_ERROR_INVALID_HOSTNAME, SOUP_TLD_ERROR_IS_IP_ADDRESS, SOUP_TLD_ERROR_NOT_ENOUGH_DOMAINS, SOUP_TLD_ERROR_NO_BASE_DOMAIN } SoupTLDError;
Error codes for SOUP_TLD_ERROR
.
A hostname was syntactically invalid. | |
The passed-in "hostname" was actually an IP address (and thus has no base domain or public suffix). | |
The passed-in hostname
did not have enough components. Eg, calling
soup_tld_get_base_domain() on "co.uk" .
|
|
The passed-in hostname has no recognized public suffix. |
Since 2.40