[empathy: 2/11] add empathy_dbus_error_name_get_default_message



commit 0b5e1ce2f0aafecaaf855b1f81d52821862f6526
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Aug 5 12:38:26 2010 +0200

    add empathy_dbus_error_name_get_default_message
    
    Reuse existing errors for now.

 libempathy/empathy-utils.c |   44 ++++++++++++++++++++++++++++++++++++++++++++
 libempathy/empathy-utils.h |    1 +
 2 files changed, 45 insertions(+), 0 deletions(-)
---
diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c
index 49df14b..367b6aa 100644
--- a/libempathy/empathy-utils.c
+++ b/libempathy/empathy-utils.c
@@ -321,6 +321,50 @@ empathy_status_reason_get_default_message (TpConnectionStatusReason reason)
 	}
 }
 
+static GHashTable *
+create_errors_to_message_hash (void)
+{
+	GHashTable *errors;
+
+	errors = g_hash_table_new (g_str_hash, g_str_equal);
+	g_hash_table_insert (errors, TP_ERROR_STR_NETWORK_ERROR, _("Network error"));
+	g_hash_table_insert (errors, TP_ERROR_STR_AUTHENTICATION_FAILED,
+		_("Authentication failed"));
+	g_hash_table_insert (errors, TP_ERROR_STR_ENCRYPTION_ERROR,
+		_("Encryption error"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_NOT_PROVIDED,
+		_("Certificate not provided"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_UNTRUSTED,
+		_("Certificate untrusted"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_EXPIRED,
+		_("Certificate expired"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_NOT_ACTIVATED,
+		_("Certificate not activated"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_HOSTNAME_MISMATCH,
+		_("Certificate hostname mismatch"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_FINGERPRINT_MISMATCH,
+		_("Certificate fingerprint mismatch"));
+	g_hash_table_insert (errors, TP_ERROR_STR_CERT_SELF_SIGNED,
+		_("Certificate self-signed"));
+
+	return errors;
+}
+
+const gchar *
+empathy_dbus_error_name_get_default_message  (const gchar *error)
+{
+	static GHashTable *errors_to_message = NULL;
+
+	if (error == NULL)
+		return NULL;
+
+	if (G_UNLIKELY (errors_to_message == NULL)) {
+		errors_to_message = create_errors_to_message_hash ();
+	}
+
+	return g_hash_table_lookup (errors_to_message, error);
+}
+
 gchar *
 empathy_file_lookup (const gchar *filename, const gchar *subdir)
 {
diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h
index da0edc5..6ddf58a 100644
--- a/libempathy/empathy-utils.h
+++ b/libempathy/empathy-utils.h
@@ -76,6 +76,7 @@ gboolean     empathy_check_available_state          (void);
 gint        empathy_uint_compare                    (gconstpointer a,
 						     gconstpointer b);
 const gchar * empathy_status_reason_get_default_message (TpConnectionStatusReason reason);
+const gchar * empathy_dbus_error_name_get_default_message  (const gchar *error);
 
 gchar *empathy_protocol_icon_name (const gchar *protocol);
 const gchar *empathy_protocol_name_to_display_name (const gchar *proto_name);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]