diff options
Diffstat (limited to 'lib/str-idna.c')
-rw-r--r-- | lib/str-idna.c | 82 |
1 files changed, 48 insertions, 34 deletions
diff --git a/lib/str-idna.c b/lib/str-idna.c index 74b8d220b9..288b3adc64 100644 --- a/lib/str-idna.c +++ b/lib/str-idna.c @@ -56,7 +56,8 @@ * * Since: 3.5.8 **/ -int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags) +int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t * out, + unsigned flags) { char *idna = NULL; int rc, ret; @@ -79,7 +80,7 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig idn2_tflags |= IDN2_TRANSITIONAL | IDN2_USE_STD3_ASCII_RULES; if (ilen == 0) { - out->data = (uint8_t*)gnutls_strdup(""); + out->data = (uint8_t *) gnutls_strdup(""); out->size = 0; if (out->data == NULL) return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); @@ -96,22 +97,26 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig return ret; } - rc = idn2_to_ascii_8z((ICAST*)istr.data, (ICAST**)&idna, idn2_flags); + rc = idn2_to_ascii_8z((ICAST *) istr.data, (ICAST **) & idna, + idn2_flags); if (rc == IDN2_DISALLOWED && !(flags & GNUTLS_IDNA_FORCE_2008)) - rc = idn2_to_ascii_8z((ICAST*)istr.data, (ICAST**)&idna, idn2_tflags); + rc = idn2_to_ascii_8z((ICAST *) istr.data, (ICAST **) & idna, + idn2_tflags); if (rc != IDN2_OK) { gnutls_assert(); - idna = NULL; /* in case idn2_lookup_u8 modifies &idna */ - _gnutls_debug_log("unable to convert name '%s' to IDNA format: %s\n", istr.data, idn2_strerror(rc)); + idna = NULL; /* in case idn2_lookup_u8 modifies &idna */ + _gnutls_debug_log + ("unable to convert name '%s' to IDNA format: %s\n", + istr.data, idn2_strerror(rc)); ret = GNUTLS_E_INVALID_UTF8_STRING; goto fail; } if (gnutls_free != idn2_free) { ret = _gnutls_set_strdatum(out, idna, strlen(idna)); - } else { - out->data = (unsigned char*)idna; + } else { + out->data = (unsigned char *)idna; out->size = strlen(idna); idna = NULL; ret = 0; @@ -142,14 +147,15 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig * * Since: 3.5.8 **/ -int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags) +int gnutls_idna_reverse_map(const char *input, unsigned ilen, + gnutls_datum_t * out, unsigned flags) { char *u8 = NULL; int rc, ret; gnutls_datum_t istr; if (ilen == 0) { - out->data = (uint8_t*)gnutls_strdup(""); + out->data = (uint8_t *) gnutls_strdup(""); out->size = 0; if (out->data == NULL) return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); @@ -163,18 +169,20 @@ int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *ou } /* currently libidn2 just converts single labels, thus a wrapper function */ - rc = idn2_to_unicode_8z8z((char*)istr.data, &u8, 0); + rc = idn2_to_unicode_8z8z((char *)istr.data, &u8, 0); if (rc != IDN2_OK) { gnutls_assert(); - _gnutls_debug_log("unable to convert ACE name '%s' to UTF-8 format: %s\n", istr.data, idn2_strerror(rc)); + _gnutls_debug_log + ("unable to convert ACE name '%s' to UTF-8 format: %s\n", + istr.data, idn2_strerror(rc)); ret = GNUTLS_E_INVALID_UTF8_STRING; goto fail; } if (gnutls_malloc != malloc) { ret = _gnutls_set_strdatum(out, u8, strlen(u8)); - } else { - out->data = (unsigned char*)u8; + } else { + out->data = (unsigned char *)u8; out->size = strlen(u8); u8 = NULL; ret = 0; @@ -185,10 +193,11 @@ int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *ou return ret; } -#else /* no HAVE_LIBIDN2 */ +#else /* no HAVE_LIBIDN2 */ # undef gnutls_idna_map -int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags) +int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t * out, + unsigned flags) { if (!_gnutls_str_is_print(input, ilen)) { return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE); @@ -197,17 +206,19 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig return _gnutls_set_strdatum(out, input, ilen); } -int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags) +int gnutls_idna_reverse_map(const char *input, unsigned ilen, + gnutls_datum_t * out, unsigned flags) { return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE); } -#endif /* HAVE_LIBIDN2 */ +#endif /* HAVE_LIBIDN2 */ -int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *output) +int _gnutls_idna_email_map(const char *input, unsigned ilen, + gnutls_datum_t * output) { const char *p = input; - while(*p != 0 && *p != '@') { + while (*p != 0 && *p != '@') { if (!c_isprint(*p)) return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_EMAIL); p++; @@ -218,24 +229,24 @@ int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *out } if (*p == '@') { - unsigned name_part = p-input; + unsigned name_part = p - input; int ret; gnutls_datum_t domain; - ret = gnutls_idna_map(p+1, ilen-name_part-1, &domain, 0); + ret = gnutls_idna_map(p + 1, ilen - name_part - 1, &domain, 0); if (ret < 0) return gnutls_assert_val(ret); - output->data = gnutls_malloc(name_part+1+domain.size+1); + output->data = gnutls_malloc(name_part + 1 + domain.size + 1); if (output->data == NULL) { gnutls_free(domain.data); return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); } memcpy(output->data, input, name_part); output->data[name_part] = '@'; - memcpy(&output->data[name_part+1], domain.data, domain.size); - output->data[name_part+domain.size+1] = 0; - output->size = name_part+domain.size+1; + memcpy(&output->data[name_part + 1], domain.data, domain.size); + output->data[name_part + domain.size + 1] = 0; + output->size = name_part + domain.size + 1; gnutls_free(domain.data); return 0; } else { @@ -243,35 +254,38 @@ int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *out } } -int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *output) +int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen, + gnutls_datum_t * output) { const char *p = input; - while(*p != 0 && *p != '@') { + while (*p != 0 && *p != '@') { if (!c_isprint(*p)) return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_EMAIL); p++; } if (*p == '@') { - unsigned name_part = p-input; + unsigned name_part = p - input; int ret; gnutls_datum_t domain; - ret = gnutls_idna_reverse_map(p+1, ilen-name_part-1, &domain, 0); + ret = + gnutls_idna_reverse_map(p + 1, ilen - name_part - 1, + &domain, 0); if (ret < 0) return gnutls_assert_val(ret); - output->data = gnutls_malloc(name_part+1+domain.size+1); + output->data = gnutls_malloc(name_part + 1 + domain.size + 1); if (output->data == NULL) { gnutls_free(domain.data); return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); } memcpy(output->data, input, name_part); output->data[name_part] = '@'; - memcpy(&output->data[name_part+1], domain.data, domain.size); - output->data[name_part+domain.size+1] = 0; - output->size = name_part+domain.size+1; + memcpy(&output->data[name_part + 1], domain.data, domain.size); + output->data[name_part + domain.size + 1] = 0; + output->size = name_part + domain.size + 1; gnutls_free(domain.data); return 0; } else { |