diff --git a/gio/gresolver.c b/gio/gresolver.c index 6a33634c5..607bd830a 100644 --- a/gio/gresolver.c +++ b/gio/gresolver.c @@ -340,9 +340,19 @@ handle_ip_address (const char *hostname, if (inet_aton (hostname, &ip4addr)) #endif { +#ifdef G_OS_WIN32 + gchar *error_message = g_win32_error_message (WSAHOST_NOT_FOUND); +#else + const gchar *error_message = gai_strerror (EAI_NONAME); +#endif g_set_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_NOT_FOUND, _("Error resolving “%s”: %s"), - hostname, gai_strerror (EAI_NONAME)); + hostname, error_message); + +#ifdef G_OS_WIN32 + g_free (error_message); +#endif + return TRUE; } diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c index 9b7c396a1..46bea14f0 100644 --- a/gio/gthreadedresolver.c +++ b/gio/gthreadedresolver.c @@ -154,11 +154,21 @@ do_lookup_by_name (GTask *task, } else { +#ifdef G_OS_WIN32 + gchar *error_message = g_win32_error_message (WSAGetLastError ()); +#else + const gchar *error_message = gai_strerror (retval); +#endif + g_task_return_new_error (task, G_RESOLVER_ERROR, g_resolver_error_from_addrinfo_error (retval), _("Error resolving “%s”: %s"), - hostname, gai_strerror (retval)); + hostname, error_message); + +#ifdef G_OS_WIN32 + g_free (error_message); +#endif } if (res) @@ -310,14 +320,23 @@ do_lookup_by_address (GTask *task, { gchar *phys; +#ifdef G_OS_WIN32 + gchar *error_message = g_win32_error_message (WSAGetLastError ()); +#else + const gchar *error_message = gai_strerror (retval); +#endif + phys = g_inet_address_to_string (address); g_task_return_new_error (task, G_RESOLVER_ERROR, g_resolver_error_from_addrinfo_error (retval), _("Error reverse-resolving “%s”: %s"), phys ? phys : "(unknown)", - gai_strerror (retval)); + error_message); g_free (phys); +#ifdef G_OS_WIN32 + g_free (error_message); +#endif } }