aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/si.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/jabber/si.c')
-rw-r--r--protocols/jabber/si.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/protocols/jabber/si.c b/protocols/jabber/si.c
index 0b94f81b..1d649da3 100644
--- a/protocols/jabber/si.c
+++ b/protocols/jabber/si.c
@@ -82,6 +82,7 @@ void jabber_si_transfer_request( struct im_connection *ic, file_transfer_t *ft,
{
struct jabber_transfer *tf;
struct jabber_data *jd = ic->proto_data;
+ char *server = jd->server;
imcb_log( ic, "Trying to send %s(%zd bytes) to %s", ft->file_name, ft->file_size, who );
@@ -96,8 +97,17 @@ void jabber_si_transfer_request( struct im_connection *ic, file_transfer_t *ft,
jd->filetransfers = g_slist_prepend( jd->filetransfers, tf );
+ /* query the buddy's features */
+ jabber_iq_query_features( ic, who );
+
+ /* query proxies from the server */
+ if( !jd->have_streamhosts )
+ jabber_iq_query_server( ic, server, XMLNS_DISCO_ITEMS );
+
+ /* send the request to our buddy */
jabber_si_send_request( ic, who, tf );
+ /* and start the receive logic */
imcb_file_recv_start( ft );
}