pidgin/pidgin

2ee4c67768f4
Parents 3ead1b62bc55
Children 13e2a9fcbddd
connection: Support PurpleConnectionError GErrors

This patch adds support for PurpleConnectionError codes being passed
as GErrors into purple_connection_g_error() and
purple_connection_take_error(). This is a step towards handling
PurpleConnection errors natively as GErrors.
--- a/libpurple/connection.c Fri Aug 26 03:36:37 2016 -0500
+++ b/libpurple/connection.c Fri Aug 26 03:52:05 2016 -0500
@@ -39,6 +39,8 @@
#include "signals.h"
#include "util.h"
+G_DEFINE_QUARK(purple-connection-error-quark, purple_connection_error);
+
#define KEEPALIVE_INTERVAL 30
#define PURPLE_CONNECTION_GET_PRIVATE(obj) \
@@ -572,6 +574,8 @@
}
} else if (error->domain == G_IO_ERROR) {
reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR;
+ } else if (error->domain == PURPLE_CONNECTION_ERROR) {
+ reason = error->code;
} else {
reason = PURPLE_CONNECTION_ERROR_OTHER_ERROR;
}
--- a/libpurple/connection.h Fri Aug 26 03:36:37 2016 -0500
+++ b/libpurple/connection.h Fri Aug 26 03:52:05 2016 -0500
@@ -29,6 +29,8 @@
* @see_also: <link linkend="chapter-signals-connection">Connection signals</link>
*/
+#include <glib.h>
+
#define PURPLE_TYPE_CONNECTION (purple_connection_get_type())
#define PURPLE_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_CONNECTION, PurpleConnection))
#define PURPLE_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_CONNECTION, PurpleConnectionClass))
@@ -99,6 +101,16 @@
PURPLE_CONNECTION_CONNECTING
} PurpleConnectionState;
+#define PURPLE_CONNECTION_ERROR purple_connection_error_quark()
+
+/**
+ * purple_connection_error_quark:
+ *
+ * Error domain for Purple connection errors. Errors in this domain will be
+ * from the #PurpleConnectionError enum.
+ */
+GQuark purple_connection_error_quark(void);
+
/**
* PurpleConnectionError:
* @PURPLE_CONNECTION_ERROR_NETWORK_ERROR: There was an error sending or