mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 07:38:49 -05:00
idn_win32: Use boolean based success codes
Rather than use 0 and 1 integer base result codes use a FALSE / TRUE based success code.
This commit is contained in:
parent
b084173989
commit
58e4a06743
@ -65,12 +65,13 @@ WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags,
|
|||||||
|
|
||||||
#define IDN_MAX_LENGTH 255
|
#define IDN_MAX_LENGTH 255
|
||||||
|
|
||||||
int curl_win32_idn_to_ascii(const char *in, char **out);
|
bool curl_win32_idn_to_ascii(const char *in, char **out);
|
||||||
int curl_win32_ascii_to_idn(const char *in, char **out);
|
bool curl_win32_ascii_to_idn(const char *in, char **out);
|
||||||
|
|
||||||
int curl_win32_idn_to_ascii(const char *in, char **out)
|
bool curl_win32_idn_to_ascii(const char *in, char **out)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
bool success = FALSE;
|
||||||
|
|
||||||
wchar_t *in_w = Curl_convert_UTF8_to_wchar(in);
|
wchar_t *in_w = Curl_convert_UTF8_to_wchar(in);
|
||||||
if(in_w) {
|
if(in_w) {
|
||||||
wchar_t punycode[IDN_MAX_LENGTH];
|
wchar_t punycode[IDN_MAX_LENGTH];
|
||||||
@ -79,15 +80,17 @@ int curl_win32_idn_to_ascii(const char *in, char **out)
|
|||||||
if(chars) {
|
if(chars) {
|
||||||
*out = Curl_convert_wchar_to_UTF8(punycode);
|
*out = Curl_convert_wchar_to_UTF8(punycode);
|
||||||
if(*out)
|
if(*out)
|
||||||
ret = 1; /* success */
|
success = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
int curl_win32_ascii_to_idn(const char *in, char **out)
|
bool curl_win32_ascii_to_idn(const char *in, char **out)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
bool success = FALSE;
|
||||||
|
|
||||||
wchar_t *in_w = Curl_convert_UTF8_to_wchar(in);
|
wchar_t *in_w = Curl_convert_UTF8_to_wchar(in);
|
||||||
if(in_w) {
|
if(in_w) {
|
||||||
size_t in_len = wcslen(in_w) + 1;
|
size_t in_len = wcslen(in_w) + 1;
|
||||||
@ -98,10 +101,11 @@ int curl_win32_ascii_to_idn(const char *in, char **out)
|
|||||||
if(chars) {
|
if(chars) {
|
||||||
*out = Curl_convert_wchar_to_UTF8(unicode);
|
*out = Curl_convert_wchar_to_UTF8(unicode);
|
||||||
if(*out)
|
if(*out)
|
||||||
ret = 1; /* success */
|
success = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* USE_WIN32_IDN */
|
#endif /* USE_WIN32_IDN */
|
||||||
|
11
lib/url.c
11
lib/url.c
@ -75,7 +75,7 @@ void idn_free (void *ptr);
|
|||||||
#endif
|
#endif
|
||||||
#elif defined(USE_WIN32_IDN)
|
#elif defined(USE_WIN32_IDN)
|
||||||
/* prototype for curl_win32_idn_to_ascii() */
|
/* prototype for curl_win32_idn_to_ascii() */
|
||||||
int curl_win32_idn_to_ascii(const char *in, char **out);
|
bool curl_win32_idn_to_ascii(const char *in, char **out);
|
||||||
#endif /* USE_LIBIDN */
|
#endif /* USE_LIBIDN */
|
||||||
|
|
||||||
#include "urldata.h"
|
#include "urldata.h"
|
||||||
@ -3803,15 +3803,14 @@ static void fix_hostname(struct SessionHandle *data,
|
|||||||
* Check name for non-ASCII and convert hostname to ACE form.
|
* Check name for non-ASCII and convert hostname to ACE form.
|
||||||
*************************************************************/
|
*************************************************************/
|
||||||
char *ace_hostname = NULL;
|
char *ace_hostname = NULL;
|
||||||
int rc = curl_win32_idn_to_ascii(host->name, &ace_hostname);
|
|
||||||
if(rc == 0)
|
if(curl_win32_idn_to_ascii(host->name, &ace_hostname)) {
|
||||||
infof(data, "Failed to convert %s to ACE;\n",
|
|
||||||
host->name);
|
|
||||||
else {
|
|
||||||
host->encalloc = ace_hostname;
|
host->encalloc = ace_hostname;
|
||||||
/* change the name pointer to point to the encoded hostname */
|
/* change the name pointer to point to the encoded hostname */
|
||||||
host->name = host->encalloc;
|
host->name = host->encalloc;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
infof(data, "Failed to convert %s to ACE;\n", host->name);
|
||||||
#else
|
#else
|
||||||
infof(data, "IDN support not present, can't parse Unicode domains\n");
|
infof(data, "IDN support not present, can't parse Unicode domains\n");
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user