/soc/2013/ankitkv/gobjectification: 4b7b5964754a: Backed out cha...
Ankit Vani
a at nevitus.org
Fri Sep 13 09:44:38 EDT 2013
Changeset: 4b7b5964754a1762b6b35fb0992944904cb0183e
Author: Ankit Vani <a at nevitus.org>
Date: 2013-09-13 18:54 +0530
Branch: soc.2013.gobjectification.plugins
URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/4b7b5964754a
Description:
Backed out changeset 01edebf55111
diffstat:
libpurple/protocols/bonjour/bonjour.c | 60 +++++++-----------------------
libpurple/protocols/bonjour/bonjour.h | 23 +----------
libpurple/protocols/bonjour/bonjour_ft.c | 34 ++++++++--------
libpurple/protocols/bonjour/jabber.c | 12 +++---
libpurple/protocols/bonjour/mdns_avahi.c | 2 +-
libpurple/protocols/bonjour/mdns_common.c | 2 +-
6 files changed, 42 insertions(+), 91 deletions(-)
diffs (truncated from 435 to 300 lines):
diff --git a/libpurple/protocols/bonjour/bonjour.c b/libpurple/protocols/bonjour/bonjour.c
--- a/libpurple/protocols/bonjour/bonjour.c
+++ b/libpurple/protocols/bonjour/bonjour.c
@@ -54,7 +54,7 @@ const char *
bonjour_get_jid(PurpleAccount *account)
{
PurpleConnection *conn = purple_account_get_connection(account);
- BonjourConnection *bd = BONJOUR_CONNECTION(conn);
+ BonjourData *bd = purple_connection_get_protocol_data(conn);
return bd->jid;
}
@@ -91,7 +91,7 @@ static void
bonjour_login(PurpleAccount *account)
{
PurpleConnection *gc = purple_account_get_connection(account);
- BonjourConnection *bd;
+ BonjourData *bd;
PurpleStatus *status;
PurplePresence *presence;
@@ -107,7 +107,8 @@ bonjour_login(PurpleAccount *account)
#endif /* _WIN32 */
purple_connection_set_flags(gc, PURPLE_CONNECTION_FLAG_HTML);
- bd = BONJOUR_CONNECTION(gc);
+ bd = g_new0(BonjourData, 1);
+ purple_connection_set_protocol_data(gc, bd);
/* Start waiting for jabber connections (iChat style) */
bd->jabber_data = g_new0(BonjourJabber, 1);
@@ -161,7 +162,7 @@ static void
bonjour_close(PurpleConnection *connection)
{
PurpleGroup *bonjour_group;
- BonjourConnection *bd = BONJOUR_CONNECTION(connection);
+ BonjourData *bd = purple_connection_get_protocol_data(connection);
bonjour_group = purple_blist_find_group(BONJOUR_GROUP_NAME);
@@ -195,6 +196,8 @@ bonjour_close(PurpleConnection *connecti
if (bd != NULL)
g_free(bd->jid);
+ g_free(bd);
+ purple_connection_set_protocol_data(connection, NULL);
}
static const char *
@@ -206,7 +209,7 @@ bonjour_list_icon(PurpleAccount *account
static int
bonjour_send_im(PurpleConnection *connection, const char *to, const char *msg, PurpleMessageFlags flags)
{
- BonjourConnection *bd = BONJOUR_CONNECTION(connection);
+ BonjourData *bd = purple_connection_get_protocol_data(connection);
if(!to || !msg)
return 0;
@@ -218,13 +221,13 @@ static void
bonjour_set_status(PurpleAccount *account, PurpleStatus *status)
{
PurpleConnection *gc;
- BonjourConnection *bd;
+ BonjourData *bd;
PurplePresence *presence;
const char *message, *bonjour_status;
gchar *stripped;
gc = purple_account_get_connection(account);
- bd = BONJOUR_CONNECTION(gc);
+ bd = purple_connection_get_protocol_data(gc);
presence = purple_account_get_presence(account);
message = purple_status_get_attr_string(status, "message");
@@ -329,7 +332,7 @@ bonjour_convo_closed(PurpleConnection *c
static
void bonjour_set_buddy_icon(PurpleConnection *conn, PurpleStoredImage *img)
{
- BonjourConnection *bd = BONJOUR_CONNECTION(conn);
+ BonjourData *bd = purple_connection_get_protocol_data(conn);
bonjour_dns_sd_update_buddy_icon(bd->dns_sd_data);
}
@@ -627,32 +630,6 @@ initialize_default_account_values(void)
}
static void
-bonjour_connection_init(GObject *object)
-{
-}
-
-static void
-bonjour_connection_class_init(GObjectClass *klass)
-{
-}
-
-static PurpleConnection *
-bonjour_connection_new(PurpleProtocol *protocol, PurpleAccount *account, const char *password)
-{
- g_return_val_if_fail(protocol != NULL, NULL);
- g_return_val_if_fail(account != NULL, NULL);
-
- return g_object_new(BONJOUR_TYPE_CONNECTION,
- "protocol", protocol,
- "account", account,
- "password", password,
- NULL);
-}
-
-PURPLE_DEFINE_TYPE(BonjourConnection, bonjour_connection,
- PURPLE_TYPE_CONNECTION);
-
-static void
bonjour_protocol_init(PurpleProtocol *protocol)
{
PurpleAccountOption *option;
@@ -692,7 +669,6 @@ bonjour_protocol_class_init(PurpleProtoc
static void
bonjour_protocol_interface_init(PurpleProtocolInterface *iface)
{
- iface->connection_new = bonjour_connection_new;
iface->list_icon = bonjour_list_icon;
iface->status_text = bonjour_status_text;
iface->tooltip_text = bonjour_tooltip_text;
@@ -713,12 +689,6 @@ bonjour_protocol_interface_init(PurplePr
iface->get_max_message_size = bonjour_get_max_message_size;
}
-PURPLE_DEFINE_TYPE_EXTENDED(
- BonjourProtocol, bonjour_protocol, PURPLE_TYPE_PROTOCOL, 0,
- PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_INTERFACE,
- bonjour_protocol_interface_init)
-);
-
static PurplePluginInfo *
plugin_query(GError **error)
{
@@ -740,9 +710,6 @@ plugin_query(GError **error)
static gboolean
plugin_load(PurplePlugin *plugin, GError **error)
{
- bonjour_connection_register_type(plugin);
- bonjour_protocol_register_type(plugin);
-
my_protocol = purple_protocols_add(BONJOUR_TYPE_PROTOCOL, error);
if (!my_protocol)
return FALSE;
@@ -764,4 +731,7 @@ plugin_unload(PurplePlugin *plugin, GErr
return TRUE;
}
-PURPLE_PLUGIN_INIT(bonjour, plugin_query, plugin_load, plugin_unload);
+static PurplePlugin *my_plugin;
+PURPLE_PROTOCOL_DEFINE(my_plugin, BonjourProtocol, bonjour_protocol);
+PURPLE_PLUGIN_INIT_VAL(my_plugin, bonjour, plugin_query, plugin_load,
+ plugin_unload);
diff --git a/libpurple/protocols/bonjour/bonjour.h b/libpurple/protocols/bonjour/bonjour.h
--- a/libpurple/protocols/bonjour/bonjour.h
+++ b/libpurple/protocols/bonjour/bonjour.h
@@ -42,13 +42,6 @@
#define BONJOUR_DEFAULT_PORT 5298
-#define BONJOUR_TYPE_CONNECTION (bonjour_connection_get_type())
-#define BONJOUR_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), BONJOUR_TYPE_CONNECTION, BonjourConnection))
-#define BONJOUR_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), BONJOUR_TYPE_CONNECTION, BonjourConnectionClass))
-#define BONJOUR_IS_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), BONJOUR_TYPE_CONNECTION))
-#define BONJOUR_IS_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), BONJOUR_TYPE_CONNECTION))
-#define BONJOUR_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), BONJOUR_TYPE_CONNECTION, BonjourConnectionClass))
-
#define BONJOUR_TYPE_PROTOCOL (bonjour_protocol_get_type())
#define BONJOUR_PROTOCOL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), BONJOUR_TYPE_PROTOCOL, BonjourProtocol))
#define BONJOUR_PROTOCOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), BONJOUR_TYPE_PROTOCOL, BonjourProtocolClass))
@@ -66,20 +59,13 @@ typedef struct _BonjourProtocolClass
PurpleProtocolClass parent_class;
} BonjourProtocolClass;
-typedef struct _BonjourConnection
+typedef struct _BonjourData
{
- PurpleConnection parent;
-
BonjourDnsSd *dns_sd_data;
BonjourJabber *jabber_data;
GSList *xfer_lists;
gchar *jid;
-} BonjourConnection;
-
-typedef struct _BonjourConnectionClass
-{
- PurpleConnectionClass parent_class;
-} BonjourConnectionClass;
+} BonjourData;
/**
* Returns the GType for the BonjourProtocol object.
@@ -87,11 +73,6 @@ typedef struct _BonjourConnectionClass
GType bonjour_protocol_get_type(void);
/**
- * Returns the GType for the BonjourConnection object.
- */
-GType bonjour_connection_get_type(void);
-
-/**
* This will always be username at machinename
*/
const char *bonjour_get_jid(PurpleAccount *account);
diff --git a/libpurple/protocols/bonjour/bonjour_ft.c b/libpurple/protocols/bonjour/bonjour_ft.c
--- a/libpurple/protocols/bonjour/bonjour_ft.c
+++ b/libpurple/protocols/bonjour/bonjour_ft.c
@@ -45,7 +45,7 @@ static void bonjour_free_xfer(PurpleXfer
static unsigned int next_id = 0;
static void
-xep_ft_si_reject(BonjourConnection *bd, const char *id, const char *to, const char *error_code, const char *error_type)
+xep_ft_si_reject(BonjourData *bd, const char *id, const char *to, const char *error_code, const char *error_type)
{
PurpleXmlNode *error_node;
XepIq *iq;
@@ -146,7 +146,7 @@ static void bonjour_xfer_end(PurpleXfer
}
static PurpleXfer*
-bonjour_si_xfer_find(BonjourConnection *bd, const char *sid, const char *from)
+bonjour_si_xfer_find(BonjourData *bd, const char *sid, const char *from)
{
GSList *xfers;
PurpleXfer *xfer;
@@ -181,7 +181,7 @@ xep_ft_si_offer(PurpleXfer *xfer, const
PurpleXmlNode *si_node, *feature, *field, *file, *x;
XepIq *iq;
XepXfer *xf = purple_xfer_get_protocol_data(xfer);
- BonjourConnection *bd = NULL;
+ BonjourData *bd = NULL;
char buf[32];
if(!xf)
@@ -245,7 +245,7 @@ xep_ft_si_result(PurpleXfer *xfer, const
PurpleXmlNode *si_node, *feature, *field, *value, *x;
XepIq *iq;
XepXfer *xf;
- BonjourConnection *bd;
+ BonjourData *bd;
if(!to || !xfer)
return;
@@ -313,7 +313,7 @@ bonjour_free_xfer(PurpleXfer *xfer)
xf = purple_xfer_get_protocol_data(xfer);
if(xf != NULL) {
- BonjourConnection *bd = (BonjourConnection*)xf->data;
+ BonjourData *bd = (BonjourData*)xf->data;
if(bd != NULL) {
bd->xfer_lists = g_slist_remove(bd->xfer_lists, xfer);
purple_debug_misc("bonjour", "B free xfer from lists(%p).\n", bd->xfer_lists);
@@ -344,13 +344,13 @@ bonjour_new_xfer(PurpleConnection *gc, c
{
PurpleXfer *xfer;
XepXfer *xep_xfer;
- BonjourConnection *bd;
+ BonjourData *bd;
if(who == NULL || gc == NULL)
return NULL;
purple_debug_info("bonjour", "Bonjour-new-xfer to %s.\n", who);
- bd = BONJOUR_CONNECTION(gc);
+ bd = purple_connection_get_protocol_data(gc);
if(bd == NULL)
return NULL;
@@ -431,7 +431,7 @@ void
xep_si_parse(PurpleConnection *pc, PurpleXmlNode *packet, PurpleBuddy *pb)
{
const char *type, *id;
- BonjourConnection *bd;
+ BonjourData *bd;
PurpleXfer *xfer;
const gchar *name = NULL;
@@ -439,7 +439,7 @@ xep_si_parse(PurpleConnection *pc, Purpl
g_return_if_fail(packet != NULL);
g_return_if_fail(pb != NULL);
- bd = BONJOUR_CONNECTION(pc);
+ bd = purple_connection_get_protocol_data(pc);
if(bd == NULL)
return;
@@ -484,7 +484,7 @@ xep_si_parse(PurpleConnection *pc, Purpl
}
if (!parsed_receive) {
- BonjourConnection *bd = BONJOUR_CONNECTION(pc);
+ BonjourData *bd = purple_connection_get_protocol_data(pc);
purple_debug_info("bonjour", "rejecting unrecognized si SET offer.\n");
xep_ft_si_reject(bd, id, name, "403", "cancel");
@@ -496,7 +496,7 @@ xep_si_parse(PurpleConnection *pc, Purpl
More information about the Commits
mailing list