talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit e6aa8837949636cb1c8540074b87e26907022c05
parent 98b12b276ff17b22d83295998a0898de44e916f2
Author: Ricardo Mones <ricardo@mones.org>
Date:   Wed, 30 Sep 2015 23:17:41 +0200

Fix bug #3526 ‘autoconfiguration: get more detailed error message’

Based on original patch by Christian Hesse (thanks!).

Diffstat:
Msrc/gtk/gtkutils.c | 16+++++++++++++++-
Msrc/gtk/gtkutils.h | 1+
2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/gtk/gtkutils.c b/src/gtk/gtkutils.c @@ -1915,7 +1915,19 @@ static void auto_configure_done(const gchar *hostname, gint port, gboolean ssl, gtk_label_set_text(data->info_label, _("Done.")); } else { - gtk_label_set_text(data->info_label, _("Failed.")); + const gchar *msg; + switch (data->resolver_error) { + case G_RESOLVER_ERROR_NOT_FOUND: + msg = g_strdup(_("Failed: no service record found.")); + break; + case G_RESOLVER_ERROR_TEMPORARY_FAILURE: + msg = g_strdup(_("Failed: network error.")); + break; + default: + msg = g_strdup_printf(_("Failed: unknown error (%d)."), data->resolver_error); + } + gtk_label_set_text(data->info_label, msg); + g_free(msg); } gtk_widget_show(GTK_WIDGET(data->configure_button)); gtk_widget_hide(GTK_WIDGET(data->cancel_button)); @@ -1951,6 +1963,8 @@ static void resolve_done(GObject *source, GAsyncResult *result, gpointer user_da } else if (error) { if (error->code == G_IO_ERROR_CANCELLED) abort = TRUE; + else + data->resolver_error = error->code; debug_print("error %s\n", error->message); g_error_free(error); } diff --git a/src/gtk/gtkutils.h b/src/gtk/gtkutils.h @@ -214,6 +214,7 @@ typedef struct _AutoConfigureData { const gchar *ssl_service; const gchar *tls_service; gchar *address; + gint resolver_error; GtkEntry *hostname_entry; GtkToggleButton *set_port;