--- a/plugins/raw.c Sat Apr 02 23:58:31 2005 -0500
+++ b/plugins/raw.c Sun Apr 03 14:26:27 2005 -0400
@@ -1,3 +1,5 @@
#include "conversation.h"
--- a/src/protocols/jabber/si.c Sat Apr 02 23:58:31 2005 -0500
+++ b/src/protocols/jabber/si.c Sun Apr 03 14:26:27 2005 -0400
@@ -564,6 +564,12 @@
gaim_debug(GAIM_DEBUG_INFO, "jabber", "in jabber_si_xfer_cancel_recv\n");
+static void jabber_si_xfer_request_denied(GaimXfer *xfer) + /* XXX: let the other side know */ + jabber_si_xfer_free(xfer); static void jabber_si_xfer_end(GaimXfer *xfer)
@@ -663,6 +669,7 @@
gaim_xfer_set_init_fnc(xfer, jabber_si_xfer_init);
gaim_xfer_set_cancel_send_fnc(xfer, jabber_si_xfer_cancel_send);
+ gaim_xfer_set_request_denied_fnc(xfer, jabber_si_xfer_request_denied); gaim_xfer_set_end_fnc(xfer, jabber_si_xfer_end);
js->file_transfers = g_list_append(js->file_transfers, xfer);
@@ -678,7 +685,7 @@
xmlnode *si, *file, *feature, *x, *field, *option, *value;
- const char *stream_id, *filename, *filesize_c, *profile;
+ const char *stream_id, *filename, *filesize_c, *profile, *from; if(!(si = xmlnode_get_child(packet, "si")))
@@ -706,6 +713,15 @@
if(!(x = xmlnode_get_child_with_namespace(feature, "x", "jabber:x:data")))
+ if(!(from = xmlnode_get_attrib(packet, "from"))) + /* if they've already sent us this file transfer with the same damn id + * then we're gonna ignore it, until I think of something better to do + if((xfer = jabber_si_xfer_find(js, stream_id, from))) jsx = g_new0(JabberSIXfer, 1);
for(field = xmlnode_get_child(x, "field"); field; field = xmlnode_get_next_twin(field)) {
@@ -739,8 +755,7 @@
jsx->stream_id = g_strdup(stream_id);
jsx->iq_id = g_strdup(xmlnode_get_attrib(packet, "id"));
- xfer = gaim_xfer_new(js->gc->account, GAIM_XFER_RECEIVE,
- xmlnode_get_attrib(packet, "from"));
+ xfer = gaim_xfer_new(js->gc->account, GAIM_XFER_RECEIVE, from); gaim_xfer_set_filename(xfer, filename);
@@ -749,6 +764,7 @@
gaim_xfer_set_init_fnc(xfer, jabber_si_xfer_init);
gaim_xfer_set_cancel_recv_fnc(xfer, jabber_si_xfer_cancel_recv);
+ gaim_xfer_set_request_denied_fnc(xfer, jabber_si_xfer_request_denied); gaim_xfer_set_end_fnc(xfer, jabber_si_xfer_end);
js->file_transfers = g_list_append(js->file_transfers, xfer);