Added "connection-error" signal callback.
authorRagner Magalhaes <ragner.magalhaes@openbossa.org>
Tue, 2 Dec 2008 20:52:19 +0000 (20:52 +0000)
committerAnderson Briglia <anderson.briglia@openbossa.org>
Sat, 28 Feb 2009 21:11:14 +0000 (17:11 -0400)
FIXES:
 - Added "connection-error" signal callback.

Signed-off-by: Bruno Abinader <bruno.abinader@indt.org.br>

git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1363 596f6dd7-e928-0410-a184-9e12fd12cf7e

purple.pyx
signal_cbs.pxd

index 8d0eba9..b984590 100644 (file)
@@ -284,6 +284,11 @@ cdef class Purple:
                     connection.c_purple_connections_get_handle(),
                     "signed-off", &handle,
                     <signals.PurpleCallback> signal_signed_off_cb, NULL)
                     connection.c_purple_connections_get_handle(),
                     "signed-off", &handle,
                     <signals.PurpleCallback> signal_signed_off_cb, NULL)
+        elif name == "connection-error":
+            signals.c_purple_signal_connect(
+                    connection.c_purple_connections_get_handle(),
+                    "connection-error", &handle,
+                    <signals.PurpleCallback> signal_connection_error_cb, NULL)
         elif name == "buddy-signed-on":
             signals.c_purple_signal_connect(
                     blist.c_purple_blist_get_handle(),
         elif name == "buddy-signed-on":
             signals.c_purple_signal_connect(
                     blist.c_purple_blist_get_handle(),
index 14a7434..b1bb26d 100644 (file)
@@ -67,6 +67,38 @@ cdef void signal_signed_off_cb (connection.PurpleConnection *gc, \
     except KeyError:
         pass
 
     except KeyError:
         pass
 
+cdef void signal_connection_error_cb (connection.PurpleConnection *gc, \
+        connection.PurpleConnectionError err, char *c_desc):
+
+    short_desc = {
+        0: "Network error",
+        1: "Invalid username",
+        2: "Authentication failed",
+        3: "Authentication impossible",
+        4: "No SSL support",
+        5: "Encryption error",
+        6: "Name in use",
+        7: "Invalid settings",
+        8: "SSL certificate not provided",
+        9: "SSL certificate untrusted",
+        10: "SSL certificate expired",
+        11: "SSL certificate not activated",
+        12: "SSL certificate hostname mismatch",
+        13: "SSL certificate fingerprint mismatch",
+        14: "SSL certificate self signed",
+        15: "SSL certificate other error",
+        16: "Other error" }[<int>err]
+
+    if c_desc == NULL:
+        desc = None
+    else:
+        desc = c_desc
+
+    try:
+        (<object> signal_cbs["connection-error"])(short_desc, desc)
+    except KeyError:
+        pass
+
 cdef void signal_buddy_signed_on_cb (blist.PurpleBuddy *buddy):
     cdef char *c_name = NULL
     cdef char *c_alias = NULL
 cdef void signal_buddy_signed_on_cb (blist.PurpleBuddy *buddy):
     cdef char *c_name = NULL
     cdef char *c_alias = NULL