diff options
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/jabber/jabber.c | 37 | ||||
| -rw-r--r-- | protocols/nogaim.h | 78 | ||||
| -rw-r--r-- | protocols/yahoo/yahoo.c | 7 | 
3 files changed, 24 insertions, 98 deletions
| diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 224762ce..3c7d39fa 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -1884,24 +1884,11 @@ static void jabber_set_away(struct gaim_connection *gc, char *state, char *messa  	xmlnode_free(x);  } -static void jabber_set_idle(struct gaim_connection *gc, int idle) { -	struct jabber_data *jd = (struct jabber_data *)gc->proto_data; -   	jd->idle = idle ? time(NULL) - idle : idle; -} -  static void jabber_keepalive(struct gaim_connection *gc) {  	struct jabber_data *jd = (struct jabber_data *)gc->proto_data;  	gjab_send_raw(jd->gjc, "  \t  ");  } -static void jabber_buddy_free(struct buddy *b) -{ -	while (b->proto_data) { -		g_free(((GSList *)b->proto_data)->data); -		b->proto_data = g_slist_remove(b->proto_data, ((GSList *)b->proto_data)->data); -	} -} -  /*---------------------------------------*/  /* Jabber "set info" (vCard) support     */  /*---------------------------------------*/ @@ -2337,29 +2324,12 @@ static void jabber_handlevcard(gjconn gjc, xmlnode querynode, char *from)  	g_string_free(str, TRUE);  } - -static GList *jabber_actions() -{ -	GList *m = NULL; - -	m = g_list_append(m, _("Set User Info")); -	/* -	m = g_list_append(m, _("Set Dir Info")); -	m = g_list_append(m, _("Change Password")); -	 */ - -	return m; -} - -  void jabber_init()  {  	struct prpl *ret = g_new0(struct prpl, 1); -	/* the NULL's aren't required but they're nice to have */  	ret->name = "jabber";  	ret->away_states = jabber_away_states; -	ret->actions = jabber_actions;  	ret->login = jabber_login;  	ret->close = jabber_close;  	ret->send_im = jabber_send_im; @@ -2367,16 +2337,9 @@ void jabber_init()  	ret->get_info = jabber_get_info;  	ret->set_away = jabber_set_away;  	ret->get_away = jabber_get_away_msg; -	ret->set_idle = jabber_set_idle;  	ret->add_buddy = jabber_add_buddy;  	ret->remove_buddy = jabber_remove_buddy; -	ret->add_permit = NULL; -	ret->add_deny = NULL; -	ret->rem_permit = NULL; -	ret->rem_deny = NULL; -	ret->set_permit_deny = NULL;  	ret->keepalive = jabber_keepalive; -	ret->buddy_free = jabber_buddy_free;  	ret->alias_buddy = jabber_roster_update;  	ret->group_buddy = jabber_group_change;  	ret->cmp_buddynames = g_strcasecmp; diff --git a/protocols/nogaim.h b/protocols/nogaim.h index 3d45d0a0..9bdbc624 100644 --- a/protocols/nogaim.h +++ b/protocols/nogaim.h @@ -68,14 +68,17 @@  #define GAIM_INFO	3  /* ok. now the fun begins. first we create a connection structure */ -struct gaim_connection { -	/* we need to do either oscar or TOC */ -	/* we make this as an int in case if we want to add more protocols later */ +struct gaim_connection +{  	struct prpl *prpl;  	guint32 flags; +	/* each connection then can have its own protocol-specific data */ +	void *proto_data; +	  	/* all connections need an input watcher */  	int inpa; +	guint keepalive;  	/* buddy list stuff. there is still a global groups for the buddy list, but  	 * we need to maintain our own set of buddies, and our own permit/deny lists */ @@ -83,33 +86,19 @@ struct gaim_connection {  	GSList *deny;  	int permdeny; -	/* all connections need a list of chats, even if they don't have chat */ -	GSList *buddy_chats; -	 -	/* each connection then can have its own protocol-specific data */ -	void *proto_data; -	  	struct aim_user *user;  	char username[64];  	char displayname[128];  	char password[32]; -	guint keepalive; -	/* stuff needed for per-connection idle times */ -	guint idle_timer; -	time_t login_time; -	time_t lastsent; -	int is_idle;  	char *away; -	int is_auto_away;  	int evil;  	gboolean wants_to_die; /* defaults to FALSE */  	/* BitlBee */  	irc_t *irc; -	int lstitems;  /* added for msnP8 */  	struct conversation *conversations;  }; @@ -163,61 +152,41 @@ struct prpl {  	int options;  	const char *name; -	/* for ICQ and Yahoo, who have off/on per-conversation options */ -	/* char *checkbox; this should be per-connection */ - -	GList *(* away_states)(struct gaim_connection *gc); -	GList *(* actions)(); -	void   (* do_action)(struct gaim_connection *, char *); -	/* user_opts returns a GList* of g_malloc'd struct proto_user_opts */ -	GList *(* user_opts)(); -	GList *(* chat_info)(struct gaim_connection *); - -	/* all the server-related functions */ - -	/* a lot of these (like get_dir) are protocol-dependent and should be removed. ones like -	 * set_dir (which is also protocol-dependent) can stay though because there's a dialog -	 * (i.e. the prpl says you can set your dir info, the ui shows a dialog and needs to call -	 * set_dir in order to set it) */ -  	void (* login)		(struct aim_user *); +	void (* keepalive)	(struct gaim_connection *);  	void (* close)		(struct gaim_connection *); +	  	int  (* send_im)	(struct gaim_connection *, char *who, char *message, int len, int away); -	int  (* send_typing)	(struct gaim_connection *, char *who, int typing); -	void (* set_info)	(struct gaim_connection *, char *info); -	void (* get_info)	(struct gaim_connection *, char *who);  	void (* set_away)	(struct gaim_connection *, char *state, char *message);  	void (* get_away)       (struct gaim_connection *, char *who); -	void (* set_idle)	(struct gaim_connection *, int idletime); +	int  (* send_typing)	(struct gaim_connection *, char *who, int typing); +	  	void (* add_buddy)	(struct gaim_connection *, char *name); +	void (* group_buddy)	(struct gaim_connection *, char *who, char *old_group, char *new_group);  	void (* remove_buddy)	(struct gaim_connection *, char *name, char *group);  	void (* add_permit)	(struct gaim_connection *, char *name);  	void (* add_deny)	(struct gaim_connection *, char *name);  	void (* rem_permit)	(struct gaim_connection *, char *name);  	void (* rem_deny)	(struct gaim_connection *, char *name);  	void (* set_permit_deny)(struct gaim_connection *); +	 +	void (* set_info)	(struct gaim_connection *, char *info); +	void (* get_info)	(struct gaim_connection *, char *who); +	void (* alias_buddy)	(struct gaim_connection *, char *who);	/* save/store buddy's alias on server list/roster */ +	 +	/* Group chat stuff. */  	void (* join_chat)	(struct gaim_connection *, GList *data);  	void (* chat_invite)	(struct gaim_connection *, int id, char *who, char *message);  	void (* chat_leave)	(struct gaim_connection *, int id); -	void (* chat_whisper)	(struct gaim_connection *, int id, char *who, char *message);  	int  (* chat_send)	(struct gaim_connection *, int id, char *message);  	int  (* chat_open)	(struct gaim_connection *, char *who); -	void (* keepalive)	(struct gaim_connection *); - -	/* get "chat buddy" info and away message */ -	void (* get_cb_info)	(struct gaim_connection *, int, char *who); -	void (* get_cb_away)	(struct gaim_connection *, int, char *who); - -	/* save/store buddy's alias on server list/roster */ -	void (* alias_buddy)	(struct gaim_connection *, char *who); - -	/* change a buddy's group on a server list/roster */ -	void (* group_buddy)	(struct gaim_connection *, char *who, char *old_group, char *new_group); - -	void (* buddy_free)	(struct buddy *); - +	 +	/* DIE! */  	char *(* get_status_string) (struct gaim_connection *gc, int stat); - +	 +	GList *(* away_states)(struct gaim_connection *gc); +	 +	/* Mainly for AOL, since they think "Bung hole" == "Bu ngho le". *sigh* */  	int (* cmp_buddynames) (const char *who1, const char *who2);  }; @@ -306,5 +275,4 @@ G_MODULE_EXPORT void build_allow_list();  struct conversation *conv_findchannel( char *channel ); -  #endif diff --git a/protocols/yahoo/yahoo.c b/protocols/yahoo/yahoo.c index 4f257d99..bf1dd1a0 100644 --- a/protocols/yahoo/yahoo.c +++ b/protocols/yahoo/yahoo.c @@ -226,16 +226,11 @@ static void byahoo_set_away( struct gaim_connection *gc, char *state, char *msg  			yd->current_status = YAHOO_STATUS_INVISIBLE;  		else if( g_strcasecmp( state, GAIM_AWAY_CUSTOM ) == 0 )  		{ -			if (gc->is_idle) -				yd->current_status = YAHOO_STATUS_IDLE; -			else -				yd->current_status = YAHOO_STATUS_AVAILABLE; +			yd->current_status = YAHOO_STATUS_AVAILABLE;  			gc->away = NULL;  		}  	} -	else if( gc->is_idle ) -		yd->current_status = YAHOO_STATUS_IDLE;  	else  		yd->current_status = YAHOO_STATUS_AVAILABLE; | 
