# HG changeset patch # User Marcus Lundblad # Date 1222885140 0 # Node ID d6351b105e4227b734d79e04c90064a615981f9c # Parent 6e0f1532eb3d3b793ec3626bce3873f1a630f375 Call purple_xfer_end when ending an IBB session. This should ensure we close open files kept by PurpleXfer object diff -r 6e0f1532eb3d -r d6351b105e42 libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Tue Sep 30 21:48:09 2008 +0000 +++ b/libpurple/protocols/jabber/si.c Wed Oct 01 18:19:00 2008 +0000 @@ -956,11 +956,11 @@ if (purple_xfer_get_bytes_remaining(xfer) > 0) { purple_xfer_error(purple_xfer_get_type(xfer), account, jabber_ibb_session_get_who(sess), _("Transfer was closed.")); - purple_xfer_end(xfer); } else { purple_xfer_set_completed(xfer, TRUE); } jabber_si_xfer_free(xfer); + purple_xfer_end(xfer); } static void @@ -984,6 +984,7 @@ if (purple_xfer_get_bytes_remaining(xfer) == 0) { purple_xfer_set_completed(xfer, TRUE); jabber_si_xfer_free(xfer); + purple_xfer_end(xfer); } } else { /* trying to write past size of file transfers negotiated size, @@ -991,6 +992,7 @@ purple_debug_error("jabber", "IBB file transfer, trying to write past end of file\n"); jabber_si_xfer_cancel_recv(xfer); + purple_xfer_end(xfer); } } @@ -1027,6 +1029,7 @@ /* failed to create IBB session */ purple_debug_error("jabber", "failed to create IBB session\n"); jabber_si_xfer_cancel_recv(xfer); + purple_xfer_end(xfer); return FALSE; } } @@ -1069,6 +1072,7 @@ jabber_ibb_session_close(sess); purple_xfer_set_completed(xfer, TRUE); jabber_si_xfer_free(xfer); + purple_xfer_end(xfer); } else { /* send more... */ jabber_si_xfer_ibb_send_data(sess);