# HG changeset patch # User Daniel Atallah # Date 1213319311 0 # Node ID d33fcdbd6ebc58c0d0e590f2299c685d24dcd940 # Parent 77f43c248845acbac1deeef6b4e9d48167c36928 Add a can_receive_file function to the xmpp prpl so that we disable the menu item when it is not going to succeed. References #6078. diff -r 77f43c248845 -r d33fcdbd6ebc libpurple/protocols/jabber/libxmpp.c --- a/libpurple/protocols/jabber/libxmpp.c Thu Jun 12 16:34:53 2008 +0000 +++ b/libpurple/protocols/jabber/libxmpp.c Fri Jun 13 01:08:31 2008 +0000 @@ -76,9 +76,9 @@ jabber_roster_remove_buddy, /* remove_buddy */ NULL, /* remove_buddies */ NULL, /* add_permit */ - jabber_google_roster_add_deny, /* add_deny */ + jabber_google_roster_add_deny, /* add_deny */ NULL, /* rem_permit */ - jabber_google_roster_rem_deny, /* rem_deny */ + jabber_google_roster_rem_deny, /* rem_deny */ NULL, /* set_permit_deny */ jabber_chat_join, /* join_chat */ NULL, /* reject_chat */ @@ -105,7 +105,7 @@ jabber_roomlist_get_list, /* roomlist_get_list */ jabber_roomlist_cancel, /* roomlist_cancel */ NULL, /* roomlist_expand_category */ - NULL, /* can_receive_file */ + jabber_si_xfer_can_receive_file,/* can_receive_file */ jabber_si_xfer_send, /* send_file */ jabber_si_new_xfer, /* new_xfer */ jabber_offline_message, /* offline_message */ diff -r 77f43c248845 -r d33fcdbd6ebc libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Thu Jun 12 16:34:53 2008 +0000 +++ b/libpurple/protocols/jabber/si.c Fri Jun 13 01:08:31 2008 +0000 @@ -1205,6 +1205,13 @@ return xfer; } +gboolean jabber_si_xfer_can_receive_file(PurpleConnection *conn, const char *who) +{ + JabberStream *js = conn->proto_data; + + return purple_find_buddy(conn->account, who) && jabber_buddy_find(js, who, FALSE); +} + void jabber_si_xfer_send(PurpleConnection *gc, const char *who, const char *file) { JabberStream *js; @@ -1213,7 +1220,7 @@ js = gc->proto_data; - if(!purple_find_buddy(gc->account, who) || !jabber_buddy_find(js, who, FALSE)) + if (!jabber_si_xfer_can_receive_file(gc, who)) return; xfer = jabber_si_new_xfer(gc, who); diff -r 77f43c248845 -r d33fcdbd6ebc libpurple/protocols/jabber/si.h --- a/libpurple/protocols/jabber/si.h Thu Jun 12 16:34:53 2008 +0000 +++ b/libpurple/protocols/jabber/si.h Fri Jun 13 01:08:31 2008 +0000 @@ -28,6 +28,7 @@ void jabber_bytestreams_parse(JabberStream *js, xmlnode *packet); void jabber_si_parse(JabberStream *js, xmlnode *packet); +gboolean jabber_si_xfer_can_receive_file(PurpleConnection *conn, const char *who); PurpleXfer *jabber_si_new_xfer(PurpleConnection *gc, const char *who); void jabber_si_xfer_send(PurpleConnection *gc, const char *who, const char *file);