--- a/libpurple/protocols/mxit/login.c Fri Jan 07 11:42:13 2011 +0000
+++ b/libpurple/protocols/mxit/login.c Fri Jan 07 19:56:19 2011 +0000
@@ -762,6 +762,12 @@
purple_debug_info( MXIT_PLUGIN_ID, "mxit_reconnect\n" );
+ /* remove the input cb function */ + if ( session->con->inpa ) { + purple_input_remove( session->con->inpa ); + session->con->inpa = 0; /* close existing connection */
session->flags &= ~MXIT_FLAG_CONNECTED;
purple_proxy_connect_cancel_with_handle( session->con );
--- a/libpurple/protocols/mxit/mxit.c Fri Jan 07 11:42:13 2011 +0000
+++ b/libpurple/protocols/mxit/mxit.c Fri Jan 07 19:56:19 2011 +0000
@@ -588,7 +588,33 @@
/*------------------------------------------------------------------------
+ * Re-Invite was selected from the buddy-list menu. + * @param node The entry in the buddy list. + * @param ignored (not used) +static void mxit_reinvite( PurpleBlistNode *node, gpointer ignored ) + struct contact* contact; + struct MXitSession* session; + buddy = (PurpleBuddy *)node; + gc = purple_account_get_connection( purple_buddy_get_account( buddy ) ); + session = gc->proto_data; + contact = purple_buddy_get_protocol_data( (PurpleBuddy*) node ); + /* send a new invite */ + mxit_send_invite( session, contact->username, contact->alias, contact->groupname ); +/*------------------------------------------------------------------------ * @param node The entry in the buddy list.
@@ -597,6 +623,7 @@
if ( !PURPLE_BLIST_NODE_IS_BUDDY( node ) )
@@ -606,6 +633,12 @@
+ if ( ( contact->subtype == MXIT_SUBTYPE_DELETED ) || ( contact->subtype == MXIT_SUBTYPE_REJECTED ) || ( contact->subtype == MXIT_SUBTYPE_NONE ) ) { + /* contact is in Deleted, Rejected or None state */ + act = purple_menu_action_new( _( "Re-Invite" ), PURPLE_CALLBACK( mxit_reinvite ), NULL, NULL ); + m = g_list_append(m, act);