/dev/twasilczyk/imgupload: 4c36d9f09020: Imgupload: fix basic hooks

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 4c36d9f090201aeba445dff8c9302a03d3259db2
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-05-19 10:40 +0200
Branch:	 default
URL: https://hg.pidgin.im/dev/twasilczyk/imgupload/rev/4c36d9f09020

Description:

Imgupload: fix basic hooks

diffstat:

 pidgin/plugins/imgupload.c |  52 +++++++++++++++++++++++-----------------------
 1 files changed, 26 insertions(+), 26 deletions(-)

diffs (102 lines):

diff --git a/pidgin/plugins/imgupload.c b/pidgin/plugins/imgupload.c
--- a/pidgin/plugins/imgupload.c
+++ b/pidgin/plugins/imgupload.c
@@ -33,56 +33,58 @@
 #include "pidginstock.h"
 
 /******************************************************************************
- *
+ * Helper functions
  ******************************************************************************/
 
+static gboolean
+imgup_conn_is_hooked(PurpleConnection *gc)
+{
+	return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(gc), "imgupload-set"));
+}
+
 
 /******************************************************************************
  * Plugin setup
  ******************************************************************************/
 
-#if 0
 static void
-imgup_prpl_init(PurplePlugin *prpl)
+imgup_conn_init(PurpleConnection *gc)
 {
-	PurplePluginProtocolInfo *prpl_info;
+	PurpleConnectionFlags flags;
 
-	prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
+	flags = purple_connection_get_flags(gc);
 
-	if (prpl_info->options & OPT_PROTO_IM_IMAGE)
+	if (!(flags & PURPLE_CONNECTION_FLAG_NO_IMAGES))
 		return;
 
-	purple_plugin_set_data(prpl, "imgupload-set", GINT_TO_POINTER(TRUE));
-	prpl_info->options |= OPT_PROTO_IM_IMAGE;
+	flags &= ~PURPLE_CONNECTION_FLAG_NO_IMAGES;
+	purple_connection_set_flags(gc, flags);
+
+	g_object_set_data(G_OBJECT(gc), "imgupload-set", GINT_TO_POINTER(TRUE));
 }
 
 static void
-imgup_prpl_uninit(PurplePlugin *prpl)
+imgup_conn_uninit(PurpleConnection *gc)
 {
-	PurplePluginProtocolInfo *prpl_info;
-
-	if (!purple_plugin_get_data(prpl, "imgupload-set"))
+	if (!imgup_conn_is_hooked(gc))
 		return;
 
-	prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
-	prpl_info->options &= ~OPT_PROTO_IM_IMAGE;
+	purple_connection_set_flags(gc, purple_connection_get_flags(gc) |
+		PURPLE_CONNECTION_FLAG_NO_IMAGES);
 
-	purple_plugin_set_data(prpl, "imgupload-set", NULL);
+	g_object_set_data(G_OBJECT(gc), "imgupload-set", NULL);
 }
-#endif
 
 static gboolean
 imgup_plugin_load(PurplePlugin *plugin)
 {
-#if 0
 	GList *it;
 
-	it = purple_plugins_get_protocols();
+	it = purple_connections_get_all();
 	for (; it; it = g_list_next(it)) {
-		PurplePlugin *prpl = it->data;
-		imgup_prpl_init(prpl);
+		PurpleConnection *gc = it->data;
+		imgup_conn_init(gc);
 	}
-#endif
 
 	return TRUE;
 }
@@ -90,15 +92,13 @@ imgup_plugin_load(PurplePlugin *plugin)
 static gboolean
 imgup_plugin_unload(PurplePlugin *plugin)
 {
-#if 0
 	GList *it;
 
-	it = purple_plugins_get_protocols();
+	it = purple_connections_get_all();
 	for (; it; it = g_list_next(it)) {
-		PurplePlugin *prpl = it->data;
-		imgup_prpl_uninit(prpl);
+		PurpleConnection *gc = it->data;
+		imgup_conn_uninit(gc);
 	}
-#endif
 
 	return TRUE;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.