introduced defines for error codes
This commit is contained in:
parent
d34938703a
commit
1c20931896
|
@ -38,6 +38,14 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
PSL_SUCCESS = 0,
|
||||||
|
PSL_ERR_INVALID_ARG = -1,
|
||||||
|
PSL_ERR_CONVERTER = -2, /* failed to open libicu utf-16 converter */
|
||||||
|
PSL_ERR_TO_UTF16 = -3, /* failed to convert to utf-16 */
|
||||||
|
PSL_ERR_TO_LOWER = -4, /* failed to convert utf-16 to lowercase */
|
||||||
|
PSL_ERR_TO_UTF8 = -5 /* failed to convert utf-16 to utf-8 */
|
||||||
|
} psl_error_t;
|
||||||
|
|
||||||
typedef struct _psl_ctx_st psl_ctx_t;
|
typedef struct _psl_ctx_st psl_ctx_t;
|
||||||
|
|
||||||
|
|
31
src/psl.c
31
src/psl.c
|
@ -852,24 +852,25 @@ int psl_is_cookie_domain_acceptable(const psl_ctx_t *psl, const char *hostname,
|
||||||
* @lower is %NULL on error.
|
* @lower is %NULL on error.
|
||||||
* The return value 'lower' must be freed after usage.
|
* The return value 'lower' must be freed after usage.
|
||||||
*
|
*
|
||||||
* Returns: 0 on success, negative value on error.
|
* Returns: psl_error_t value.
|
||||||
* -1 @str is a %NULL value
|
* PSL_SUCCESS: Success
|
||||||
* -2 failed to open converter with name @encoding
|
* PSL_ERR_INVALID_ARG: @str is a %NULL value.
|
||||||
* -3 failed to convert @str to unicode
|
* PSL_ERR_CONVERTER: Failed to open the unicode converter with name @encoding
|
||||||
* -4 failed to convert unicode to lowercase
|
* PSL_ERR_TO_UTF16: Failed to convert @str to unicode
|
||||||
* -5 failed to convert unicode to UTF-8
|
* PSL_ERR_TO_LOWER: Failed to convert unicode to lowercase
|
||||||
|
* PSL_ERR_TO_UTF8: Failed to convert unicode to UTF-8
|
||||||
*
|
*
|
||||||
* Since: 0.4
|
* Since: 0.4
|
||||||
*/
|
*/
|
||||||
int psl_str_to_utf8lower(const char *str, const char *encoding, const char *locale, char **lower)
|
psl_error_t psl_str_to_utf8lower(const char *str, const char *encoding, const char *locale, char **lower)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = PSL_ERR_INVALID_ARG;
|
||||||
|
|
||||||
if (lower)
|
if (lower)
|
||||||
*lower = NULL;
|
*lower = NULL;
|
||||||
|
|
||||||
if (!str)
|
if (!str)
|
||||||
return -1;
|
return PSL_ERR_INVALID_ARG;
|
||||||
|
|
||||||
/* shortcut to avoid costly conversion */
|
/* shortcut to avoid costly conversion */
|
||||||
if (_str_is_ascii(str)) {
|
if (_str_is_ascii(str)) {
|
||||||
|
@ -883,7 +884,7 @@ int psl_str_to_utf8lower(const char *str, const char *encoding, const char *loca
|
||||||
if (isupper(*p))
|
if (isupper(*p))
|
||||||
*p = tolower(*p);
|
*p = tolower(*p);
|
||||||
}
|
}
|
||||||
return 0;
|
return PSL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WITH_LIBICU
|
#ifdef WITH_LIBICU
|
||||||
|
@ -912,21 +913,21 @@ int psl_str_to_utf8lower(const char *str, const char *encoding, const char *loca
|
||||||
if (U_SUCCESS(status)) {
|
if (U_SUCCESS(status)) {
|
||||||
if (lower)
|
if (lower)
|
||||||
*lower = strdup(utf8_lower);
|
*lower = strdup(utf8_lower);
|
||||||
ret = 0;
|
ret = PSL_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
ret = -5;
|
ret = PSL_ERR_TO_UTF8;
|
||||||
/* fprintf(stderr, "Failed to convert UTF-16 to UTF-8 (status %d)\n", status); */
|
/* fprintf(stderr, "Failed to convert UTF-16 to UTF-8 (status %d)\n", status); */
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = -4;
|
ret = PSL_ERR_TO_LOWER;
|
||||||
/* fprintf(stderr, "Failed to convert UTF-16 to lowercase (status %d)\n", status); */
|
/* fprintf(stderr, "Failed to convert UTF-16 to lowercase (status %d)\n", status); */
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = -3;
|
ret = PSL_ERR_TO_UTF16;
|
||||||
/* fprintf(stderr, "Failed to convert string to UTF-16 (status %d)\n", status); */
|
/* fprintf(stderr, "Failed to convert string to UTF-16 (status %d)\n", status); */
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = -2;
|
ret = PSL_ERR_CONVERTER;
|
||||||
/* fprintf(stderr, "Failed to open converter for '%s' (status %d)\n", encoding, status); */
|
/* fprintf(stderr, "Failed to open converter for '%s' (status %d)\n", encoding, status); */
|
||||||
}
|
}
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
|
@ -55,7 +55,7 @@ static void test(const psl_ctx_t *psl, const char *domain, const char *expected_
|
||||||
char *lower;
|
char *lower;
|
||||||
|
|
||||||
/* our test data is fixed to UTF-8 (english), so provide it here */
|
/* our test data is fixed to UTF-8 (english), so provide it here */
|
||||||
if (psl_str_to_utf8lower(domain, "utf-8", "en", &lower) == 0)
|
if (psl_str_to_utf8lower(domain, "utf-8", "en", &lower) == PSL_SUCCESS)
|
||||||
domain = lower;
|
domain = lower;
|
||||||
|
|
||||||
result = psl_registrable_domain(psl, domain);
|
result = psl_registrable_domain(psl, domain);
|
||||||
|
|
|
@ -149,7 +149,7 @@ int main(int argc, const char *const *argv)
|
||||||
if (arg >= argv + argc) {
|
if (arg >= argv + argc) {
|
||||||
char buf[256], *domain, *lower;
|
char buf[256], *domain, *lower;
|
||||||
size_t len;
|
size_t len;
|
||||||
int rc;
|
psl_error_t rc;
|
||||||
|
|
||||||
/* read URLs from STDIN */
|
/* read URLs from STDIN */
|
||||||
while (fgets(buf, sizeof(buf), stdin)) {
|
while (fgets(buf, sizeof(buf), stdin)) {
|
||||||
|
@ -158,7 +158,7 @@ int main(int argc, const char *const *argv)
|
||||||
for (len = strlen(domain); len && isspace(domain[len - 1]); len--); /* skip trailing spaces */
|
for (len = strlen(domain); len && isspace(domain[len - 1]); len--); /* skip trailing spaces */
|
||||||
domain[len] = 0;
|
domain[len] = 0;
|
||||||
|
|
||||||
if ((rc = psl_str_to_utf8lower(domain, NULL, NULL, &lower)) != 0)
|
if ((rc = psl_str_to_utf8lower(domain, NULL, NULL, &lower)) != PSL_SUCCESS)
|
||||||
fprintf(stderr, "%s: Failed to convert to lowercase UTF-8 (%d)\n", domain, rc);
|
fprintf(stderr, "%s: Failed to convert to lowercase UTF-8 (%d)\n", domain, rc);
|
||||||
else if (mode == 1)
|
else if (mode == 1)
|
||||||
printf("%s: %d (%s)\n", domain, psl_is_public_suffix(psl, lower), lower);
|
printf("%s: %d (%s)\n", domain, psl_is_public_suffix(psl, lower), lower);
|
||||||
|
@ -169,7 +169,7 @@ int main(int argc, const char *const *argv)
|
||||||
else if (mode == 4) {
|
else if (mode == 4) {
|
||||||
char *cookie_domain_lower;
|
char *cookie_domain_lower;
|
||||||
|
|
||||||
if ((rc = psl_str_to_utf8lower(domain, NULL, NULL, &cookie_domain_lower)) != 0)
|
if ((rc = psl_str_to_utf8lower(domain, NULL, NULL, &cookie_domain_lower)) != PSL_SUCCESS)
|
||||||
fprintf(stderr, "%s: Failed to convert cookie domain '%s' to lowercase UTF-8 (%d)\n", domain, cookie_domain, rc);
|
fprintf(stderr, "%s: Failed to convert cookie domain '%s' to lowercase UTF-8 (%d)\n", domain, cookie_domain, rc);
|
||||||
else
|
else
|
||||||
printf("%s: %d\n", domain, psl_is_cookie_domain_acceptable(psl, lower, cookie_domain));
|
printf("%s: %d\n", domain, psl_is_cookie_domain_acceptable(psl, lower, cookie_domain));
|
||||||
|
|
Loading…
Reference in New Issue