Mercurial > pidgin.yaz
annotate libpurple/protocols/yahoo/yahoo_filexfer.c @ 27211:a167106a439a
New versions of the official Yahoo Messenger client for Windows XP (tested
with version 9.0.0.2162) seem to require us to acknowledge when we receive
an IM. If we don't send an ack then they send us the same message 7 seconds
later.
Checking this in because it at least seems to fix the problem for me.
Fixes http://trac.adium.im/ticket/12311
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 19 Jun 2009 18:46:49 +0000 |
parents | d078048fb03a |
children | f8428553f11c 462a509fb2ad |
rev | line source |
---|---|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2 * @file yahoo_filexfer.c Yahoo Filetransfer |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3 * |
15823 | 4 * Purple is the legal property of its developers, whose names are too numerous |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6 * source distribution. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18769
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
21 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 |
18210
b8572b937c09
#include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents:
15823
diff
changeset
|
23 #include "internal.h" |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
24 #include "dnsquery.h" |
18210
b8572b937c09
#include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents:
15823
diff
changeset
|
25 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 #include "prpl.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 #include "util.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
28 #include "debug.h" |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
29 #include "network.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 #include "notify.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
31 #include "proxy.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 #include "ft.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
33 #include "yahoo.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
34 #include "yahoo_packet.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
35 #include "yahoo_filexfer.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
36 #include "yahoo_doodle.h" |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
37 #include "yahoo_friend.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
38 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
39 struct yahoo_xfer_data { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
40 gchar *host; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
41 gchar *path; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
42 int port; |
15823 | 43 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
44 long expires; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
45 gboolean started; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
46 gchar *txbuf; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
47 gsize txbuflen; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
48 gsize txbuf_written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 guint tx_handler; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
50 gchar *rxqueue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 guint rxlen; |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
52 gchar *xfer_peer_idstring; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
53 gchar *xfer_idstring_for_relay; |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
54 int version; /* 0 for old, 15 for Y7(YMSG 15) */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
55 int info_val_249; |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
56 |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
57 enum { |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
58 STARTED = 0, |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
59 HEAD_REQUESTED, |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
60 HEAD_REPLY_RECEIVED, |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
61 TRANSFER_PHASE, |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
62 ACCEPTED, |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
63 P2P_HEAD_REQUESTED, |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
64 P2P_HEAD_REPLIED, |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
65 P2P_GET_REQUESTED |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
66 } status_15; |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
67 |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
68 /* contains all filenames, in case of multiple transfers, with the first |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
69 * one in the list being the current file's name (ymsg15) */ |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
70 GSList *filename_list; |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
71 GSList *size_list; /* corresponds to filename_list, with size as **STRING** */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
72 gboolean firstoflist; |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
73 gchar *xfer_url; /* url of the file, used when we are p2p server */ |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
74 int yahoo_local_p2p_ft_server_fd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
75 int yahoo_local_p2p_ft_server_port; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
76 int yahoo_p2p_ft_server_watcher; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
77 int input_event; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
78 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
79 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
80 static void yahoo_xfer_data_free(struct yahoo_xfer_data *xd) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 { |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
82 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
83 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
84 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
85 GSList *l; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
86 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
87 gc = xd->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
88 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
89 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
90 /* remove entry from map */ |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
91 if(xd->xfer_peer_idstring) { |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
92 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, xd->xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
93 if(xfer) |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
94 g_hash_table_remove(yd->xfer_peer_idstring_map, xd->xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
95 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
96 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
97 /* empty file & filesize list */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
98 for (l = xd->filename_list; l; l = l->next) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
99 g_free(l->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
100 l->data=NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
101 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
102 for (l = xd->size_list; l; l = l->next) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
103 g_free(l->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
104 l->data=NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
105 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
106 g_slist_free(xd->filename_list); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
107 g_slist_free(xd->size_list); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
108 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
109 g_free(xd->host); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
110 g_free(xd->path); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
111 g_free(xd->txbuf); |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
112 g_free(xd->xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
113 g_free(xd->xfer_idstring_for_relay); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
114 if (xd->tx_handler) |
15823 | 115 purple_input_remove(xd->tx_handler); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
116 g_free(xd); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
117 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
118 |
15823 | 119 static void yahoo_receivefile_send_cb(gpointer data, gint source, PurpleInputCondition condition) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
120 { |
15823 | 121 PurpleXfer *xfer; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
122 struct yahoo_xfer_data *xd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
123 int remaining, written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
124 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
125 xfer = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
126 xd = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
127 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
128 remaining = xd->txbuflen - xd->txbuf_written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
129 written = write(xfer->fd, xd->txbuf + xd->txbuf_written, remaining); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
130 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
131 if (written < 0 && errno == EAGAIN) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
132 written = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
133 else if (written <= 0) { |
15823 | 134 purple_debug_error("yahoo", "Unable to write in order to start ft errno = %d\n", errno); |
135 purple_xfer_cancel_remote(xfer); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
136 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
137 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
138 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
139 if (written < remaining) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
140 xd->txbuf_written += written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
141 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
142 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
143 |
15823 | 144 purple_input_remove(xd->tx_handler); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
145 xd->tx_handler = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 g_free(xd->txbuf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
147 xd->txbuf = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
148 xd->txbuflen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
149 |
15823 | 150 purple_xfer_start(xfer, source, NULL, 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
151 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
152 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
153 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
154 static void yahoo_receivefile_connected(gpointer data, gint source, const gchar *error_message) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
155 { |
15823 | 156 PurpleXfer *xfer; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
157 struct yahoo_xfer_data *xd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 |
15823 | 159 purple_debug(PURPLE_DEBUG_INFO, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
160 "AAA - in yahoo_receivefile_connected\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
161 if (!(xfer = data)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
162 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
163 if (!(xd = xfer->data)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
164 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 if ((source < 0) || (xd->path == NULL) || (xd->host == NULL)) { |
15823 | 166 purple_xfer_error(PURPLE_XFER_RECEIVE, purple_xfer_get_account(xfer), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
167 xfer->who, _("Unable to connect.")); |
15823 | 168 purple_xfer_cancel_remote(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
170 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
172 xfer->fd = source; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
173 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
174 /* The first time we get here, assemble the tx buffer */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
175 if (xd->txbuflen == 0) { |
22017
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
176 xd->txbuf = g_strdup_printf("GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n", |
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
177 xd->path, xd->host); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
178 xd->txbuflen = strlen(xd->txbuf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
179 xd->txbuf_written = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
180 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
181 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
182 if (!xd->tx_handler) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
183 { |
15823 | 184 xd->tx_handler = purple_input_add(source, PURPLE_INPUT_WRITE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
185 yahoo_receivefile_send_cb, xfer); |
15823 | 186 yahoo_receivefile_send_cb(xfer, source, PURPLE_INPUT_WRITE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
187 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
188 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
189 |
15823 | 190 static void yahoo_sendfile_send_cb(gpointer data, gint source, PurpleInputCondition condition) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
191 { |
15823 | 192 PurpleXfer *xfer; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
193 struct yahoo_xfer_data *xd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
194 int written, remaining; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
195 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
196 xfer = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
197 xd = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
198 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
199 remaining = xd->txbuflen - xd->txbuf_written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
200 written = write(xfer->fd, xd->txbuf + xd->txbuf_written, remaining); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
201 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
202 if (written < 0 && errno == EAGAIN) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
203 written = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
204 else if (written <= 0) { |
15823 | 205 purple_debug_error("yahoo", "Unable to write in order to start ft errno = %d\n", errno); |
206 purple_xfer_cancel_remote(xfer); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
207 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
208 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
209 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 if (written < remaining) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
211 xd->txbuf_written += written; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
212 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
213 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
214 |
15823 | 215 purple_input_remove(xd->tx_handler); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
216 xd->tx_handler = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
217 g_free(xd->txbuf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
218 xd->txbuf = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
219 xd->txbuflen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
220 |
15823 | 221 purple_xfer_start(xfer, source, NULL, 0); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
222 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
223 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
224 static void yahoo_sendfile_connected(gpointer data, gint source, const gchar *error_message) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
225 { |
15823 | 226 PurpleXfer *xfer; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
227 struct yahoo_xfer_data *xd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
228 struct yahoo_packet *pkt; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
229 gchar *size, *filename, *encoded_filename, *header; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
230 guchar *pkt_buf; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
231 const char *host; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
232 int port; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
233 size_t content_length, header_len, pkt_buf_len; |
15823 | 234 PurpleConnection *gc; |
235 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
236 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
237 |
15823 | 238 purple_debug(PURPLE_DEBUG_INFO, "yahoo", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
239 "AAA - in yahoo_sendfile_connected\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
240 if (!(xfer = data)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
241 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
242 if (!(xd = xfer->data)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
243 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
244 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
245 if (source < 0) { |
15823 | 246 purple_xfer_error(PURPLE_XFER_RECEIVE, purple_xfer_get_account(xfer), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
247 xfer->who, _("Unable to connect.")); |
15823 | 248 purple_xfer_cancel_remote(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
249 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
250 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
251 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
252 xfer->fd = source; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
253 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
254 /* Assemble the tx buffer */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
255 gc = xd->gc; |
15823 | 256 account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
257 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
258 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
259 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANSFER, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
260 YAHOO_STATUS_AVAILABLE, yd->session_id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
261 |
15823 | 262 size = g_strdup_printf("%" G_GSIZE_FORMAT, purple_xfer_get_size(xfer)); |
263 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
264 encoded_filename = yahoo_string_encode(gc, filename, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
265 |
15823 | 266 yahoo_packet_hash(pkt, "sssss", 0, purple_connection_get_display_name(gc), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
267 5, xfer->who, 14, "", 27, encoded_filename, 28, size); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
268 g_free(size); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
269 g_free(encoded_filename); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
270 g_free(filename); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
271 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
272 content_length = YAHOO_PACKET_HDRLEN + yahoo_packet_length(pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
273 |
24326
af8b35c7730d
Patch from 'siddish' to fix Yahoo! file transfers with older (i.e. non-p15)
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22794
diff
changeset
|
274 pkt_buf_len = yahoo_packet_build(pkt, 4, FALSE, yd->jp, &pkt_buf); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
275 yahoo_packet_free(pkt); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
276 |
15823 | 277 host = purple_account_get_string(account, "xfer_host", YAHOO_XFER_HOST); |
278 port = purple_account_get_int(account, "xfer_port", YAHOO_XFER_PORT); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
279 header = g_strdup_printf( |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
280 "POST http://%s:%d/notifyft HTTP/1.0\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
281 "Content-length: %" G_GSIZE_FORMAT "\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
282 "Host: %s:%d\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
283 "Cookie: Y=%s; T=%s\r\n" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
284 "\r\n", |
15823 | 285 host, port, content_length + 4 + purple_xfer_get_size(xfer), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
286 host, port, yd->cookie_y, yd->cookie_t); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
287 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
288 header_len = strlen(header); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
289 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
290 xd->txbuflen = header_len + pkt_buf_len + 4; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
291 xd->txbuf = g_malloc(xd->txbuflen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
292 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
293 memcpy(xd->txbuf, header, header_len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
294 g_free(header); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
295 memcpy(xd->txbuf + header_len, pkt_buf, pkt_buf_len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
296 g_free(pkt_buf); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
297 memcpy(xd->txbuf + header_len + pkt_buf_len, "29\xc0\x80", 4); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
298 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
299 xd->txbuf_written = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
300 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
301 if (xd->tx_handler == 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
302 { |
15823 | 303 xd->tx_handler = purple_input_add(source, PURPLE_INPUT_WRITE, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
304 yahoo_sendfile_send_cb, xfer); |
15823 | 305 yahoo_sendfile_send_cb(xfer, source, PURPLE_INPUT_WRITE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
306 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
307 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
308 |
15823 | 309 static void yahoo_xfer_init(PurpleXfer *xfer) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
310 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
311 struct yahoo_xfer_data *xfer_data; |
15823 | 312 PurpleConnection *gc; |
313 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
314 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
315 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
316 xfer_data = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
317 gc = xfer_data->gc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
318 yd = gc->proto_data; |
15823 | 319 account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
320 |
15823 | 321 if (purple_xfer_get_type(xfer) == PURPLE_XFER_SEND) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
322 if (yd->jp) { |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
323 if (purple_proxy_connect(gc, account, purple_account_get_string(account, "xferjp_host", YAHOOJP_XFER_HOST), |
15823 | 324 purple_account_get_int(account, "xfer_port", YAHOO_XFER_PORT), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
325 yahoo_sendfile_connected, xfer) == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
326 { |
15823 | 327 purple_notify_error(gc, NULL, _("File Transfer Failed"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
328 _("Unable to establish file descriptor.")); |
15823 | 329 purple_xfer_cancel_remote(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
330 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
331 } else { |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
332 if (purple_proxy_connect(gc, account, purple_account_get_string(account, "xfer_host", YAHOO_XFER_HOST), |
15823 | 333 purple_account_get_int(account, "xfer_port", YAHOO_XFER_PORT), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
334 yahoo_sendfile_connected, xfer) == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
335 { |
15823 | 336 purple_notify_error(gc, NULL, _("File Transfer Failed"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
337 _("Unable to establish file descriptor.")); |
15823 | 338 purple_xfer_cancel_remote(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
339 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
340 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
341 } else { |
20208
63b1ce39965c
applied changes from 7f71045586c32cffc40f836f3fba92c693adda57
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
342 xfer->fd = -1; |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
343 if (purple_proxy_connect(gc, account, xfer_data->host, xfer_data->port, |
20208
63b1ce39965c
applied changes from 7f71045586c32cffc40f836f3fba92c693adda57
Richard Laager <rlaager@wiktel.com>
parents:
19680
diff
changeset
|
344 yahoo_receivefile_connected, xfer) == NULL) { |
15823 | 345 purple_notify_error(gc, NULL, _("File Transfer Failed"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
346 _("Unable to establish file descriptor.")); |
15823 | 347 purple_xfer_cancel_remote(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
348 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
349 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
350 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
351 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
352 static void yahoo_xfer_init_15(PurpleXfer *xfer) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
353 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
354 struct yahoo_xfer_data *xfer_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
355 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
356 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
357 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
358 struct yahoo_packet *pkt; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
359 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
360 xfer_data = xfer->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
361 gc = xfer_data->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
362 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
363 account = purple_connection_get_account(gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
364 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
365 if (purple_xfer_get_type(xfer) == PURPLE_XFER_SEND) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
366 gchar *filename; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
367 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
368 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
369 YAHOO_STATUS_AVAILABLE, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
370 yd->session_id); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
371 yahoo_packet_hash(pkt, "sssiiiisiii", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
372 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
373 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
374 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
375 222, 1, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
376 266, 1, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
377 302, 268, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
378 300, 268, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
379 27, filename, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
380 28, xfer->size, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
381 301, 268, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
382 303, 268); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
383 g_free(filename); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
384 } else { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
385 if(xfer_data->firstoflist == TRUE) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
386 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
387 YAHOO_STATUS_AVAILABLE, yd->session_id); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
388 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
389 yahoo_packet_hash(pkt, "sssi", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
390 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
391 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
392 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
393 222, 3); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
394 } else { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
395 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_ACC_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
396 YAHOO_STATUS_AVAILABLE, yd->session_id); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
397 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
398 yahoo_packet_hash(pkt, "sssi", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
399 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
400 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
401 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
402 271, 1); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
403 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
404 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
405 yahoo_packet_send_and_free(pkt, yd); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
406 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
407 |
15823 | 408 static void yahoo_xfer_start(PurpleXfer *xfer) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
409 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
410 /* We don't need to do anything here, do we? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
411 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
412 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
413 static guint calculate_length(const gchar *l, size_t len) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
414 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
415 int i; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
416 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
417 for (i = 0; i < len; i++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
418 if (!g_ascii_isdigit(l[i])) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
419 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
420 return strtol(l + i, NULL, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
421 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
422 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
423 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
424 |
15823 | 425 static gssize yahoo_xfer_read(guchar **buffer, PurpleXfer *xfer) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
426 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
427 gchar buf[4096]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
428 gssize len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
429 gchar *start = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
430 gchar *length; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
431 gchar *end; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
432 int filelen; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
433 struct yahoo_xfer_data *xd = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
434 |
15823 | 435 if (purple_xfer_get_type(xfer) != PURPLE_XFER_RECEIVE) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
436 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
437 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
438 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
439 len = read(xfer->fd, buf, sizeof(buf)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
440 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
441 if (len <= 0) { |
15823 | 442 if ((purple_xfer_get_size(xfer) > 0) && |
443 (purple_xfer_get_bytes_sent(xfer) >= purple_xfer_get_size(xfer))) { | |
444 purple_xfer_set_completed(xfer, TRUE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
445 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
446 } else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
447 return -1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
448 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
449 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
450 if (!xd->started) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
451 xd->rxqueue = g_realloc(xd->rxqueue, len + xd->rxlen); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
452 memcpy(xd->rxqueue + xd->rxlen, buf, len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
453 xd->rxlen += len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
454 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
455 length = g_strstr_len(xd->rxqueue, len, "Content-length:"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
456 /* some proxies re-write this header, changing the capitalization :( |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
457 * technically that's allowed since headers are case-insensitive |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
458 * [RFC 2616, section 4.2] */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
459 if (length == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
460 length = g_strstr_len(xd->rxqueue, len, "Content-Length:"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
461 if (length) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
462 end = g_strstr_len(length, length - xd->rxqueue, "\r\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
463 if (!end) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
464 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
465 if ((filelen = calculate_length(length, len - (length - xd->rxqueue)))) |
15823 | 466 purple_xfer_set_size(xfer, filelen); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
467 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
468 start = g_strstr_len(xd->rxqueue, len, "\r\n\r\n"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
469 if (start) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
470 start += 4; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
471 if (!start || start > (xd->rxqueue + len)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
472 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
473 xd->started = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
474 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
475 len -= (start - xd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
476 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
477 *buffer = g_malloc(len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
478 memcpy(*buffer, start, len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
479 g_free(xd->rxqueue); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
480 xd->rxqueue = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
481 xd->rxlen = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
482 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
483 *buffer = g_malloc(len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
484 memcpy(*buffer, buf, len); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
485 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
486 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
487 return len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
488 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
489 |
15823 | 490 static gssize yahoo_xfer_write(const guchar *buffer, size_t size, PurpleXfer *xfer) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
491 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
492 gssize len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
493 struct yahoo_xfer_data *xd = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
494 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
495 if (!xd) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
496 return -1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
497 |
15823 | 498 if (purple_xfer_get_type(xfer) != PURPLE_XFER_SEND) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
499 return -1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
500 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
501 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
502 len = write(xfer->fd, buffer, size); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
503 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
504 if (len == -1) { |
15823 | 505 if (purple_xfer_get_bytes_sent(xfer) >= purple_xfer_get_size(xfer)) |
506 purple_xfer_set_completed(xfer, TRUE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
507 if ((errno != EAGAIN) && (errno != EINTR)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
508 return -1; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
509 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
510 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
511 |
15823 | 512 if ((purple_xfer_get_bytes_sent(xfer) + len) >= purple_xfer_get_size(xfer)) |
513 purple_xfer_set_completed(xfer, TRUE); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
514 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
515 return len; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
516 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
517 |
15823 | 518 static void yahoo_xfer_cancel_send(PurpleXfer *xfer) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
519 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
520 struct yahoo_xfer_data *xfer_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
521 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
522 xfer_data = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
523 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
524 if(purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL && xfer_data->version == 15) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
525 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
526 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
527 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
528 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
529 struct yahoo_packet *pkt; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
530 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
531 gc = xfer_data->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
532 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
533 account = purple_connection_get_account(gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
534 if(xfer_data->xfer_idstring_for_relay) /* hack to see if file trans acc/info packet has been received */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
535 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
536 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_INFO_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
537 YAHOO_STATUS_DISCONNECTED, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
538 yd->session_id); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
539 yahoo_packet_hash(pkt, "sssi", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
540 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
541 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
542 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
543 66, -1); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
544 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
545 else |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
546 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
547 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
548 YAHOO_STATUS_AVAILABLE, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
549 yd->session_id); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
550 yahoo_packet_hash(pkt, "sssi", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
551 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
552 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
553 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
554 222, 2); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
555 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
556 yahoo_packet_send_and_free(pkt, yd); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
557 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
558 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
559 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
560 if (xfer_data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
561 yahoo_xfer_data_free(xfer_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
562 xfer->data = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
563 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
564 |
15823 | 565 static void yahoo_xfer_cancel_recv(PurpleXfer *xfer) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
566 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
567 struct yahoo_xfer_data *xfer_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
568 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
569 xfer_data = xfer->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
570 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
571 if(purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL && xfer_data->version == 15) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
572 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
573 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
574 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
575 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
576 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
577 struct yahoo_packet *pkt; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
578 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
579 gc = xfer_data->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
580 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
581 account = purple_connection_get_account(gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
582 if(!xfer_data->xfer_idstring_for_relay) /* hack to see if file trans acc/info packet has been received */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
583 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
584 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
585 YAHOO_STATUS_AVAILABLE, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
586 yd->session_id); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
587 yahoo_packet_hash(pkt, "sssi", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
588 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
589 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
590 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
591 222, 4); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
592 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
593 else |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
594 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
595 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
596 YAHOO_STATUS_DISCONNECTED, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
597 yd->session_id); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
598 yahoo_packet_hash(pkt, "sssi", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
599 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
600 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
601 265, xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
602 66, -1); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
603 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
604 yahoo_packet_send_and_free(pkt, yd); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
605 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
606 |
22017
97d530d11cc0
Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21803
diff
changeset
|
607 if (xfer_data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
608 yahoo_xfer_data_free(xfer_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
609 xfer->data = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
610 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
611 |
26250
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
612 /* Send HTTP OK after receiving file */ |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
613 static void yahoo_p2p_ft_server_send_OK(PurpleXfer *xfer) |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
614 { |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
615 char *tx = NULL; |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
616 int written; |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
617 |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
618 tx = g_strdup_printf("HTTP/1.1 200 OK\r\nContent-Length: 0\r\nContent-Type: application/octet-stream\r\nConnection: close\r\n\r\n"); |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
619 written = write(xfer->fd, tx, strlen(tx)); |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
620 |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
621 if (written < 0 && errno == EAGAIN) |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
622 written = 0; |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
623 else if (written <= 0) |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
624 purple_debug_info("yahoo", "p2p filetransfer: Unable to write HTTP OK"); |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
625 |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
626 /* close connection */ |
26250
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
627 close(xfer->fd); |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
628 xfer->fd = -1; |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
629 g_free(tx); |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
630 } |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
631 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
632 static void yahoo_xfer_end(PurpleXfer *xfer_old) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
633 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
634 struct yahoo_xfer_data *xfer_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
635 PurpleXfer *xfer = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
636 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
637 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
638 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
639 xfer_data = xfer_old->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
640 if(xfer_data && xfer_data->version == 15 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
641 && purple_xfer_get_type(xfer_old) == PURPLE_XFER_RECEIVE |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
642 && xfer_data->filename_list) { |
26250
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
643 |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
644 /* Send HTTP OK in case of p2p transfer, when we act as server */ |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
645 if((xfer_data->xfer_url != NULL) && (xfer_old->fd >=0) && (purple_xfer_get_status(xfer_old) == PURPLE_XFER_STATUS_DONE)) |
1520b67d792f
When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26237
diff
changeset
|
646 yahoo_p2p_ft_server_send_OK(xfer_old); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
647 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
648 /* removing top of filename & size list completely */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
649 g_free( xfer_data->filename_list->data ); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
650 g_free( xfer_data->size_list->data ); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
651 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
652 xfer_data->filename_list->data = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
653 xfer_data->size_list->data = NULL; |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
654 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
655 xfer_data->filename_list = g_slist_delete_link(xfer_data->filename_list, xfer_data->filename_list); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
656 xfer_data->size_list = g_slist_delete_link(xfer_data->size_list, xfer_data->size_list); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
657 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
658 /* if there are still more files */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
659 if(xfer_data->filename_list) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
660 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
661 gchar* filename; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
662 long filesize; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
663 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
664 filename = xfer_data->filename_list->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
665 filesize = atol( xfer_data->size_list->data ); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
666 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
667 gc = xfer_data->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
668 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
669 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
670 /* setting up xfer_data for next file's tranfer */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
671 g_free(xfer_data->host); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
672 g_free(xfer_data->path); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
673 g_free(xfer_data->txbuf); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
674 g_free(xfer_data->rxqueue); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
675 g_free(xfer_data->xfer_idstring_for_relay); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
676 if (xfer_data->tx_handler) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
677 purple_input_remove(xfer_data->tx_handler); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
678 xfer_data->host = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
679 xfer_data->host = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
680 xfer_data->port = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
681 xfer_data->expires = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
682 xfer_data->started = FALSE; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
683 xfer_data->txbuf = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
684 xfer_data->txbuflen = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
685 xfer_data->txbuf_written = 0; |
22022
eeba86c553be
Fix a couple compile warnings.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22020
diff
changeset
|
686 xfer_data->tx_handler = 0; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
687 xfer_data->rxqueue = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
688 xfer_data->rxlen = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
689 xfer_data->xfer_idstring_for_relay = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
690 xfer_data->info_val_249 = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
691 xfer_data->status_15 = STARTED; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
692 xfer_data->firstoflist = FALSE; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
693 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
694 /* Dereference xfer_data from old xfer */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
695 xfer_old->data = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
696 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
697 /* Build the file transfer handle. */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
698 xfer = purple_xfer_new(gc->account, PURPLE_XFER_RECEIVE, xfer_old->who); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
699 |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
700 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
701 if (xfer) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
702 /* Set the info about the incoming file. */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
703 char *utf8_filename = yahoo_string_decode(gc, filename, TRUE); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
704 purple_xfer_set_filename(xfer, utf8_filename); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
705 g_free(utf8_filename); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
706 purple_xfer_set_size(xfer, filesize); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
707 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
708 xfer->data = xfer_data; |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
709 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
710 /* Setup our I/O op functions */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
711 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init_15); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
712 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
713 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
714 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
715 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
716 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
717 purple_xfer_set_write_fnc(xfer, yahoo_xfer_write); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
718 purple_xfer_set_request_denied_fnc(xfer,yahoo_xfer_cancel_recv); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
719 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
720 /* update map to current xfer */ |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
721 g_hash_table_remove(yd->xfer_peer_idstring_map, xfer_data->xfer_peer_idstring); |
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
722 g_hash_table_insert(yd->xfer_peer_idstring_map, xfer_data->xfer_peer_idstring, xfer); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
723 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
724 /* Now perform the request */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
725 purple_xfer_request(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
726 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
727 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
728 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
729 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
730 if (xfer_data) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
731 yahoo_xfer_data_free(xfer_data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
732 xfer_old->data = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
733 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
734 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
735 |
15823 | 736 void yahoo_process_p2pfilexfer(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
737 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
738 GSList *l = pkt->hash; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
739 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
740 char *me = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
741 char *from = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
742 char *service = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
743 char *message = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
744 char *command = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
745 char *imv = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
746 char *unknown = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
747 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
748 /* Get all the necessary values from this new packet */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
749 while(l != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
750 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
751 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
752 |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
753 switch(pair->key) { |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
754 case 5: /* Get who the packet is for */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
755 me = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
756 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
757 case 4: /* Get who the packet is from */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
758 from = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
759 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
760 case 49: /* Get the type of service */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
761 service = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
762 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
763 case 14: /* Get the 'message' of the packet */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
764 message = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
765 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
766 case 13: /* Get the command associated with this packet */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
767 command = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
768 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
769 case 63: /* IMVironment name and version */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
770 imv = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
771 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
772 case 64: /* Not sure, but it does vary with initialization of Doodle */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
773 unknown = pair->value; /* So, I'll keep it (for a little while atleast) */ |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
774 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
775 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
776 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
777 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
778 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
779 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
780 /* If this packet is an IMVIRONMENT, handle it accordingly */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
781 if(service != NULL && imv != NULL && !strcmp(service, "IMVIRONMENT")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
782 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
783 /* Check for a Doodle packet and handle it accordingly */ |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18210
diff
changeset
|
784 if(strstr(imv, "doodle;") != NULL) |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
785 yahoo_doodle_process(gc, me, from, command, message, imv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
786 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
787 /* If an IMVIRONMENT packet comes without a specific imviroment name */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
788 if(!strcmp(imv, ";0")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
789 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
790 /* It is unfortunately time to close all IMVironments with the remote client */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
791 yahoo_doodle_command_got_shutdown(gc, from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
792 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
793 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
794 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
795 |
15823 | 796 void yahoo_process_filetransfer(PurpleConnection *gc, struct yahoo_packet *pkt) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
797 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
798 char *from = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
799 char *to = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
800 char *msg = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
801 char *url = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
802 char *imv = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
803 long expires = 0; |
15823 | 804 PurpleXfer *xfer; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
805 struct yahoo_data *yd; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
806 struct yahoo_xfer_data *xfer_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
807 char *service = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
808 char *filename = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
809 unsigned long filesize = 0L; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
810 GSList *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
811 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
812 yd = gc->proto_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
813 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
814 for (l = pkt->hash; l; l = l->next) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
815 struct yahoo_pair *pair = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
816 |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
817 switch (pair->key) { |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
818 case 4: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
819 from = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
820 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
821 case 5: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
822 to = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
823 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
824 case 14: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
825 msg = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
826 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
827 case 20: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
828 url = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
829 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
830 case 38: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
831 expires = strtol(pair->value, NULL, 10); |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
832 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
833 case 27: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
834 filename = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
835 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
836 case 28: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
837 filesize = atol(pair->value); |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
838 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
839 case 49: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
840 service = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
841 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
842 case 63: |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
843 imv = pair->value; |
20254
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
844 break; |
f379a2e9e939
applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents:
20208
diff
changeset
|
845 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
846 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
847 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
848 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
849 * The remote user has changed their IMVironment. We |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
850 * record it for later use. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
851 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
852 if (from && imv && service && (strcmp("IMVIRONMENT", service) == 0)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
853 g_hash_table_replace(yd->imvironments, g_strdup(from), g_strdup(imv)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
854 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
855 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
856 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
857 if (pkt->service == YAHOO_SERVICE_P2PFILEXFER) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
858 if (service && (strcmp("FILEXFER", service) != 0)) { |
15823 | 859 purple_debug_misc("yahoo", "unhandled service 0x%02x\n", pkt->service); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
860 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
861 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
862 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
863 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
864 if (msg) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
865 char *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
866 tmp = strchr(msg, '\006'); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
867 if (tmp) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
868 *tmp = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
869 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
870 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
871 if (!url || !from) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
872 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
873 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
874 /* Setup the Yahoo-specific file transfer data */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
875 xfer_data = g_new0(struct yahoo_xfer_data, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
876 xfer_data->gc = gc; |
15823 | 877 if (!purple_url_parse(url, &(xfer_data->host), &(xfer_data->port), &(xfer_data->path), NULL, NULL)) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
878 g_free(xfer_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
879 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
880 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
881 |
15823 | 882 purple_debug_misc("yahoo_filexfer", "Host is %s, port is %d, path is %s, and the full url was %s.\n", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
883 xfer_data->host, xfer_data->port, xfer_data->path, url); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
884 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
885 /* Build the file transfer handle. */ |
15823 | 886 xfer = purple_xfer_new(gc->account, PURPLE_XFER_RECEIVE, from); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
887 if (xfer) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
888 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
889 xfer->data = xfer_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
890 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
891 /* Set the info about the incoming file. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
892 if (filename) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
893 char *utf8_filename = yahoo_string_decode(gc, filename, TRUE); |
15823 | 894 purple_xfer_set_filename(xfer, utf8_filename); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
895 g_free(utf8_filename); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
896 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
897 gchar *start, *end; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
898 start = g_strrstr(xfer_data->path, "/"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
899 if (start) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
900 start++; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
901 end = g_strrstr(xfer_data->path, "?"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
902 if (start && *start && end) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
903 char *utf8_filename; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
904 filename = g_strndup(start, end - start); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
905 utf8_filename = yahoo_string_decode(gc, filename, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
906 g_free(filename); |
15823 | 907 purple_xfer_set_filename(xfer, utf8_filename); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
908 g_free(utf8_filename); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
909 filename = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
910 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
911 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
912 |
15823 | 913 purple_xfer_set_size(xfer, filesize); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
914 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
915 /* Setup our I/O op functions */ |
15823 | 916 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init); |
917 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start); | |
918 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end); | |
919 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send); | |
920 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv); | |
921 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read); | |
922 purple_xfer_set_write_fnc(xfer, yahoo_xfer_write); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
923 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
924 /* Now perform the request */ |
15823 | 925 purple_xfer_request(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
926 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
927 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
928 |
15823 | 929 PurpleXfer *yahoo_new_xfer(PurpleConnection *gc, const char *who) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
930 { |
15823 | 931 PurpleXfer *xfer; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
932 struct yahoo_xfer_data *xfer_data; |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18210
diff
changeset
|
933 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
934 g_return_val_if_fail(who != NULL, NULL); |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18210
diff
changeset
|
935 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
936 xfer_data = g_new0(struct yahoo_xfer_data, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
937 xfer_data->gc = gc; |
18769
cddf062baa71
Fix yahoo doodling to work with newer yahoo messenger clients. This breaks doodling with older Pidgin clients (trying to support both looked too painful). Fixes #1445.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
18210
diff
changeset
|
938 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
939 /* Build the file transfer handle. */ |
15823 | 940 xfer = purple_xfer_new(gc->account, PURPLE_XFER_SEND, who); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
941 if (xfer) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
942 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
943 xfer->data = xfer_data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
944 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
945 /* Setup our I/O op functions */ |
15823 | 946 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init); |
947 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start); | |
948 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end); | |
949 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send); | |
950 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv); | |
951 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read); | |
952 purple_xfer_set_write_fnc(xfer, yahoo_xfer_write); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
953 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
954 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
955 return xfer; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
956 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
957 |
22201
393c639dd021
Kill this warning when using -Wstrict-prototypes:
Stu Tomlinson <stu@nosnilmot.com>
parents:
22022
diff
changeset
|
958 static gchar* yahoo_xfer_new_xfer_id(void) |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
959 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
960 gchar *ans; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
961 int i,j; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
962 ans = g_strnfill(24, ' '); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
963 ans[23] = '$'; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
964 ans[22] = '$'; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
965 for(i = 0; i < 22; i++) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
966 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
967 j = g_random_int_range (0,61); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
968 if(j < 26) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
969 ans[i] = j + 'a'; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
970 else if(j < 52) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
971 ans[i] = j - 26 + 'A'; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
972 else |
22201
393c639dd021
Kill this warning when using -Wstrict-prototypes:
Stu Tomlinson <stu@nosnilmot.com>
parents:
22022
diff
changeset
|
973 ans[i] = j - 52 + '0'; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
974 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
975 return ans; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
976 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
977 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
978 static void yahoo_xfer_dns_connected_15(GSList *hosts, gpointer data, const char *error_message) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
979 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
980 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
981 struct yahoo_xfer_data *xd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
982 struct sockaddr_in *addr; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
983 struct yahoo_packet *pkt; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
984 long actaddr; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
985 long a,b,c,d; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
986 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
987 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
988 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
989 gchar *url; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
990 gchar *filename; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
991 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
992 if (!(xfer = data)) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
993 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
994 if (!(xd = xfer->data)) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
995 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
996 gc = xd->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
997 account = purple_connection_get_account(gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
998 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
999 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1000 if(!hosts) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1001 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1002 purple_debug_error("yahoo", "Unable to find an IP address for relay.msg.yahoo.com\n"); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1003 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1004 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1005 } |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1006 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1007 /* Discard the length... */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1008 hosts = g_slist_remove(hosts, hosts->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1009 if(!hosts) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1010 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1011 purple_debug_error("yahoo", "Unable to find an IP address for relay.msg.yahoo.com\n"); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1012 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1013 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1014 } |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1015 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1016 /* TODO:actually, u must try with addr no.1 , if its not working addr no.2 ..... */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1017 addr = hosts->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1018 actaddr = addr->sin_addr.s_addr; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1019 d = actaddr % 256; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1020 actaddr = (actaddr - d) / 256; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1021 c = actaddr % 256; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1022 actaddr = (actaddr - c) / 256; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1023 b = actaddr % 256; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1024 actaddr = (actaddr - b) / 256; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1025 a = actaddr; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1026 if(yd->jp) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1027 xd->port = YAHOOJP_XFER_RELAY_PORT; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1028 else |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1029 xd->port = YAHOO_XFER_RELAY_PORT; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1030 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1031 url = g_strdup_printf("%ld.%ld.%ld.%ld", d, c, b, a); |
26634
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1032 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1033 /* Free the address... */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1034 g_free(hosts->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1035 hosts = g_slist_remove(hosts, hosts->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1036 addr = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1037 while (hosts != NULL) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1038 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1039 /* Discard the length... */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1040 hosts = g_slist_remove(hosts, hosts->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1041 /* Free the address... */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1042 g_free(hosts->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1043 hosts = g_slist_remove(hosts, hosts->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1044 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1045 |
26634
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1046 if (!purple_url_parse(url, &(xd->host), &(xd->port), &(xd->path), NULL, NULL)) { |
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1047 purple_xfer_cancel_remote(xfer); |
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1048 g_free(url); |
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1049 return; |
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1050 } |
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1051 g_free(url); |
4bac03b3c0fd
Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <paul@darkrain42.org>
parents:
26627
diff
changeset
|
1052 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1053 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_INFO_15, YAHOO_STATUS_AVAILABLE, yd->session_id); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1054 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1055 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1056 yahoo_packet_hash(pkt, "ssssis", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1057 1, purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1058 5, xfer->who, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1059 265, xd->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1060 27, filename, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1061 249, 3, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1062 250, xd->host); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1063 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1064 g_free(filename); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1065 yahoo_packet_send_and_free(pkt, yd); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1066 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1067 |
15823 | 1068 void yahoo_send_file(PurpleConnection *gc, const char *who, const char *file) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1069 { |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1070 struct yahoo_xfer_data *xfer_data; |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1071 struct yahoo_data *yd = gc->proto_data; |
15823 | 1072 PurpleXfer *xfer = yahoo_new_xfer(gc, who); |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1073 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1074 g_return_if_fail(xfer != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1075 |
26227
abf830f6cd43
When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26220
diff
changeset
|
1076 /* if we don't have a p2p connection, try establishing it now */ |
abf830f6cd43
When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26220
diff
changeset
|
1077 if( !g_hash_table_lookup(yd->peers, who) ) |
abf830f6cd43
When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26220
diff
changeset
|
1078 yahoo_send_p2p_pkt(gc, who, 0); |
abf830f6cd43
When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26220
diff
changeset
|
1079 |
26219
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1080 xfer_data = xfer->data; |
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1081 xfer_data->status_15 = STARTED; |
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1082 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init_15); |
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1083 xfer_data->version = 15; |
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1084 xfer_data->xfer_peer_idstring = yahoo_xfer_new_xfer_id(); |
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1085 g_hash_table_insert(yd->xfer_peer_idstring_map, xfer_data->xfer_peer_idstring, xfer); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1086 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1087 /* Now perform the request */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1088 if (file) |
15823 | 1089 purple_xfer_request_accepted(xfer, file); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1090 else |
15823 | 1091 purple_xfer_request(xfer); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1092 } |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1093 |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1094 static void yahoo_p2p_ft_server_listen_cb(int listenfd, gpointer data); /* using this in yahoo_xfer_send_cb_15 */ |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1095 static void yahoo_xfer_connected_15(gpointer data, gint source, const gchar *error_message);/* using this in recv_cb */ |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1096 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1097 static void yahoo_xfer_recv_cb_15(gpointer data, gint source, PurpleInputCondition condition) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1098 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1099 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1100 struct yahoo_xfer_data *xd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1101 int did; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1102 gchar* buf; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1103 gchar* t; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1104 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1105 PurpleConnection *gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1106 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1107 xfer = data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1108 xd = xfer->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1109 account = purple_connection_get_account(xd->gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1110 gc = xd->gc; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1111 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1112 buf=g_strnfill(1000, 0); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1113 while((did = read(source, buf, 998)) > 0) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1114 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1115 xd->txbuflen += did; |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1116 buf[did] = '\0'; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1117 t = xd->txbuf; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1118 xd->txbuf = g_strconcat(t,buf,NULL); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1119 g_free(t); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1120 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1121 g_free(buf); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1122 |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
1123 if (did < 0 && errno == EAGAIN) |
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
1124 return; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1125 else if (did < 0) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1126 purple_debug_error("yahoo", "Unable to write in order to start ft errno = %d\n", errno); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1127 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1128 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1129 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1130 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1131 purple_input_remove(xd->tx_handler); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1132 xd->tx_handler = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1133 xd->txbuflen = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1134 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1135 if(xd->status_15 == HEAD_REQUESTED) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1136 xd->status_15 = HEAD_REPLY_RECEIVED; |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1137 close(source);/* Is this required? */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1138 g_free(xd->txbuf); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1139 xd->txbuf = NULL; |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
1140 if (purple_proxy_connect(gc, account, xd->host, xd->port, yahoo_xfer_connected_15, xfer) == NULL) |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1141 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1142 purple_notify_error(gc, NULL, _("File Transfer Failed"), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1143 _("Unable to establish file descriptor.")); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1144 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1145 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1146 } else { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1147 purple_debug_error("yahoo","Unrecognized yahoo file transfer mode and stage (ymsg15):%d,%d\n", |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1148 purple_xfer_get_type(xfer), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1149 xd->status_15); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1150 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1151 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1152 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1153 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1154 static void yahoo_xfer_send_cb_15(gpointer data, gint source, PurpleInputCondition condition) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1155 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1156 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1157 struct yahoo_xfer_data *xd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1158 int remaining, written; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1159 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1160 xfer = data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1161 xd = xfer->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1162 remaining = xd->txbuflen - xd->txbuf_written; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1163 written = write(source, xd->txbuf + xd->txbuf_written, remaining); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1164 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1165 if (written < 0 && errno == EAGAIN) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1166 written = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1167 else if (written <= 0) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1168 purple_debug_error("yahoo", "Unable to write in order to start ft errno = %d\n", errno); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1169 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1170 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1171 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1172 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1173 if (written < remaining) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1174 xd->txbuf_written += written; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1175 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1176 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1177 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1178 purple_input_remove(xd->tx_handler); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1179 xd->tx_handler = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1180 g_free(xd->txbuf); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1181 xd->txbuf = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1182 xd->txbuflen = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1183 xd->txbuf_written = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1184 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1185 if(purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE && xd->status_15 == STARTED) |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1186 { |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1187 xd->status_15 = HEAD_REQUESTED; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1188 xd->tx_handler = purple_input_add(source, PURPLE_INPUT_READ, yahoo_xfer_recv_cb_15, xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1189 yahoo_xfer_recv_cb_15(xfer, source, PURPLE_INPUT_READ); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1190 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1191 else if(purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE && xd->status_15 == HEAD_REPLY_RECEIVED) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1192 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1193 xd->status_15 = TRANSFER_PHASE; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1194 xfer->fd = source; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1195 purple_xfer_start(xfer, source, NULL, 0); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1196 } |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1197 else if(purple_xfer_get_type(xfer) == PURPLE_XFER_SEND && (xd->status_15 == ACCEPTED || xd->status_15 == P2P_GET_REQUESTED) ) |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1198 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1199 xd->status_15 = TRANSFER_PHASE; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1200 xfer->fd = source; |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1201 /* Remove Read event */ |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1202 purple_input_remove(xd->input_event); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1203 xd->input_event = 0; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1204 purple_xfer_start(xfer, source, NULL, 0); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1205 } |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1206 else if(purple_xfer_get_type(xfer) == PURPLE_XFER_SEND && xd->status_15 == P2P_HEAD_REQUESTED) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1207 { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1208 xd->status_15 = P2P_HEAD_REPLIED; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1209 /* Remove Read event and close descriptor */ |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1210 purple_input_remove(xd->input_event); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1211 xd->input_event = 0; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1212 close(source); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1213 xfer->fd = -1; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1214 /* start local server, listen for connections */ |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1215 purple_network_listen(xd->yahoo_local_p2p_ft_server_port, SOCK_STREAM, yahoo_p2p_ft_server_listen_cb, xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1216 } |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1217 else |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1218 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1219 purple_debug_error("yahoo", "Unrecognized yahoo file transfer mode and stage (ymsg15):%d,%d\n", purple_xfer_get_type(xfer), xd->status_15); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1220 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1221 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1222 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1223 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1224 static void yahoo_xfer_connected_15(gpointer data, gint source, const gchar *error_message) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1225 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1226 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1227 struct yahoo_xfer_data *xd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1228 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1229 struct yahoo_data* yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1230 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1231 if (!(xfer = data)) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1232 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1233 if (!(xd = xfer->data)) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1234 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1235 yd = xd->gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1236 account = purple_connection_get_account(xd->gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1237 if ((source < 0) || (xd->path == NULL) || (xd->host == NULL)) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1238 purple_xfer_error(PURPLE_XFER_RECEIVE, purple_xfer_get_account(xfer), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1239 xfer->who, _("Unable to connect.")); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1240 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1241 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1242 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1243 /* The first time we get here, assemble the tx buffer */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1244 if (xd->txbuflen == 0) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1245 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1246 gchar* cookies; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1247 cookies = yahoo_get_cookies(xd->gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1248 if(purple_xfer_get_type(xfer) == PURPLE_XFER_SEND && xd->status_15 == ACCEPTED) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1249 { |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1250 if(xd->info_val_249 == 2) |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1251 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1252 /* sending file via p2p, we are connected as client */ |
26909
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1253 xd->txbuf = g_strdup_printf("POST /%s HTTP/1.1\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1254 "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1255 "Host: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1256 "Content-Length: %ld\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1257 "Cache-Control: no-cache\r\n\r\n", |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1258 xd->path, |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1259 xd->host, |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1260 (long int)xfer->size); /* to do, add Referer */ |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1261 } |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1262 else |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1263 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1264 /* sending file via relaying */ |
26909
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1265 xd->txbuf = g_strdup_printf("POST /relay?token=%s&sender=%s&recver=%s HTTP/1.1\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1266 "Cookie:%s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1267 "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1268 "Host: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1269 "Content-Length: %ld\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1270 "Cache-Control: no-cache\r\n\r\n", |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1271 purple_url_encode(xd->xfer_idstring_for_relay), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1272 purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1273 xfer->who, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1274 cookies, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1275 xd->host, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1276 (long int)xfer->size); |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1277 } |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1278 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1279 else if(purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE && xd->status_15 == STARTED) |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1280 { |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1281 if(xd->info_val_249 == 1) |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1282 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1283 /* receiving file via p2p, connected as client */ |
26909
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1284 xd->txbuf = g_strdup_printf("HEAD /%s HTTP/1.1\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1285 "Accept: */*\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1286 "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1287 "Host: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1288 "Content-Length: 0\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1289 "Cache-Control: no-cache\r\n\r\n", |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1290 xd->path,xd->host); |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1291 } |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1292 else |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1293 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1294 /* receiving file via relaying */ |
26909
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1295 xd->txbuf = g_strdup_printf("HEAD /relay?token=%s&sender=%s&recver=%s HTTP/1.1\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1296 "Accept: */*\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1297 "Cookie: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1298 "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1299 "Host: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1300 "Content-Length: 0\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1301 "Cache-Control: no-cache\r\n\r\n", |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1302 purple_url_encode(xd->xfer_idstring_for_relay), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1303 purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1304 xfer->who, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1305 cookies, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1306 xd->host); |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1307 } |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1308 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1309 else if(purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE && xd->status_15 == HEAD_REPLY_RECEIVED) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1310 { |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1311 if(xd->info_val_249 == 1) |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1312 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1313 /* receiving file via p2p, connected as client */ |
26909
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1314 xd->txbuf = g_strdup_printf("GET /%s HTTP/1.1\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1315 "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1316 "Host: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1317 "Connection: Keep-Alive\r\n\r\n", |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1318 xd->path, xd->host); |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1319 } |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1320 else |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1321 { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1322 /* receiving file via relaying */ |
26909
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1323 xd->txbuf = g_strdup_printf("GET /relay?token=%s&sender=%s&recver=%s HTTP/1.1\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1324 "Cookie: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1325 "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1326 "Host: %s\r\n" |
fac90dbe196d
Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents:
26634
diff
changeset
|
1327 "Connection: Keep-Alive\r\n\r\n", |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1328 purple_url_encode(xd->xfer_idstring_for_relay), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1329 purple_normalize(account, purple_account_get_username(account)), |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1330 xfer->who, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1331 cookies, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1332 xd->host); |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1333 } |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1334 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1335 else |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1336 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1337 purple_debug_error("yahoo", "Unrecognized yahoo file transfer mode and stage (ymsg15):%d,%d\n", purple_xfer_get_type(xfer), xd->status_15); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1338 g_free(cookies); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1339 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1340 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1341 xd->txbuflen = strlen(xd->txbuf); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1342 xd->txbuf_written = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1343 g_free(cookies); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1344 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1345 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1346 if (!xd->tx_handler) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1347 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1348 xd->tx_handler = purple_input_add(source, PURPLE_INPUT_WRITE, |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1349 yahoo_xfer_send_cb_15, xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1350 yahoo_xfer_send_cb_15(xfer, source, PURPLE_INPUT_WRITE); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1351 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1352 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1353 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1354 static void yahoo_p2p_ft_POST_cb(gpointer data, gint source, PurpleInputCondition cond) |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1355 { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1356 PurpleXfer *xfer; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1357 struct yahoo_xfer_data *xd; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1358 |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1359 xfer = data; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1360 if (!(xd = xfer->data)) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1361 purple_input_remove(xd->input_event); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1362 purple_xfer_cancel_remote(xfer); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1363 return; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1364 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1365 |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1366 purple_input_remove(xd->input_event); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1367 xd->status_15 = TRANSFER_PHASE; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1368 xfer->fd = source; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1369 purple_xfer_start(xfer, source, NULL, 0); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1370 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1371 |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1372 static void yahoo_p2p_ft_HEAD_GET_cb(gpointer data, gint source, PurpleInputCondition cond) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1373 { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1374 PurpleXfer *xfer; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1375 struct yahoo_xfer_data *xd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1376 guchar buf[1024]; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1377 int len; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1378 char *url_head; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1379 char *url_get; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1380 time_t unix_time; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1381 char *time_str; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1382 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1383 xfer = data; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1384 if (!(xd = xfer->data)) { |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1385 purple_input_remove(xd->input_event); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1386 purple_xfer_cancel_remote(xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1387 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1388 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1389 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1390 len = read(source, buf, sizeof(buf)); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1391 if ((len < 0) && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1392 return ; /* No Worries*/ |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1393 else if (len <= 0) { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1394 purple_debug_warning("yahoo","p2p-ft: Error in connection, or host disconnected\n"); |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1395 purple_input_remove(xd->input_event); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1396 purple_xfer_cancel_remote(xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1397 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1398 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1399 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1400 url_head = g_strdup_printf("HEAD %s", xd->xfer_url); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1401 url_get = g_strdup_printf("GET %s", xd->xfer_url); |
25623
d96190de653a
Add + in place of spaces in p2p url, fixes transfer of file with name containing spaces
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25622
diff
changeset
|
1402 |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1403 if( strncmp(url_head, (char *)buf, strlen(url_head)) == 0 ) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1404 xd->status_15 = P2P_HEAD_REQUESTED; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1405 else if( strncmp(url_get, (char *)buf, strlen(url_get)) == 0 ) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1406 xd->status_15 = P2P_GET_REQUESTED; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1407 else { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1408 purple_debug_warning("yahoo","p2p-ft: Wrong HEAD/GET request from peer, disconnecting host\n"); |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1409 purple_input_remove(xd->input_event); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1410 purple_xfer_cancel_remote(xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1411 g_free(url_head); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1412 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1413 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1414 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1415 unix_time = time(NULL); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1416 time_str = ctime(&unix_time); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1417 strcpy(time_str + strlen(time_str) - 1, "\0"); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1418 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1419 if (xd->txbuflen == 0) { |
26626
430298a61512
Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents:
26250
diff
changeset
|
1420 xd->txbuf = g_strdup_printf("HTTP/1.0 200 OK\r\n" |
430298a61512
Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents:
26250
diff
changeset
|
1421 "Date: %s GMT\r\n" |
430298a61512
Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents:
26250
diff
changeset
|
1422 "Server: Y!/1.0\r\n" |
430298a61512
Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents:
26250
diff
changeset
|
1423 "MIME-version: 1.0\r\n" |
430298a61512
Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents:
26250
diff
changeset
|
1424 "Last-modified: %s GMT\r\n" |
26627
98d8c336234d
Fix two int/size_t format build warnings on 64-bit
Paul Aurich <paul@darkrain42.org>
parents:
26626
diff
changeset
|
1425 "Content-length: %" G_GSIZE_FORMAT "\r\n\r\n", |
26626
430298a61512
Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents:
26250
diff
changeset
|
1426 time_str, time_str, xfer->size); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1427 xd->txbuflen = strlen(xd->txbuf); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1428 xd->txbuf_written = 0; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1429 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1430 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1431 if (!xd->tx_handler) { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1432 xd->tx_handler = purple_input_add(source, PURPLE_INPUT_WRITE, yahoo_xfer_send_cb_15, xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1433 yahoo_xfer_send_cb_15(xfer, source, PURPLE_INPUT_WRITE); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1434 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1435 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1436 g_free(url_head); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1437 g_free(url_get); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1438 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1439 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1440 static void yahoo_p2p_ft_server_send_connected_cb(gpointer data, gint source, PurpleInputCondition cond) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1441 { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1442 int acceptfd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1443 PurpleXfer *xfer; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1444 struct yahoo_xfer_data *xd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1445 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1446 xfer = data; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1447 if (!(xd = xfer->data)) { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1448 purple_xfer_cancel_remote(xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1449 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1450 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1451 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1452 acceptfd = accept(source, NULL, 0); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1453 if(acceptfd == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1454 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1455 else if(acceptfd == -1) { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1456 purple_debug_warning("yahoo","yahoo_p2p_server_send_connected_cb: accept: %s\n", g_strerror(errno)); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1457 purple_xfer_cancel_remote(xfer); |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1458 /* remove watcher and close p2p ft server */ |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1459 purple_input_remove(xd->yahoo_p2p_ft_server_watcher); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1460 close(xd->yahoo_local_p2p_ft_server_fd); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1461 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1462 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1463 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1464 /* remove watcher and close p2p ft server */ |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1465 purple_input_remove(xd->yahoo_p2p_ft_server_watcher); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1466 close(xd->yahoo_local_p2p_ft_server_fd); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1467 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1468 /* Add an Input Read event to the file descriptor */ |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1469 xfer->fd = acceptfd; |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1470 if(xfer->type == PURPLE_XFER_RECEIVE) |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1471 xd->input_event = purple_input_add(acceptfd, PURPLE_INPUT_READ, yahoo_p2p_ft_POST_cb, data); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1472 else |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1473 xd->input_event = purple_input_add(acceptfd, PURPLE_INPUT_READ, yahoo_p2p_ft_HEAD_GET_cb, data); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1474 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1475 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1476 static void yahoo_p2p_ft_server_listen_cb(int listenfd, gpointer data) |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1477 { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1478 PurpleXfer *xfer; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1479 struct yahoo_xfer_data *xd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1480 struct yahoo_packet *pkt; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1481 PurpleAccount *account; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1482 struct yahoo_data *yd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1483 gchar *filename; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1484 const char *local_ip; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1485 gchar *url_to_send = NULL; |
25623
d96190de653a
Add + in place of spaces in p2p url, fixes transfer of file with name containing spaces
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25622
diff
changeset
|
1486 char *filename_without_spaces = NULL; |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1487 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1488 xfer = data; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1489 if ( !( (xd = xfer->data) || (listenfd != -1) ) ) { |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1490 purple_debug_warning("yahoo","p2p: error starting server for p2p file transfer\n"); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1491 purple_xfer_cancel_remote(xfer); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1492 return; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1493 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1494 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1495 if( (xfer->type == PURPLE_XFER_RECEIVE) || (xd->status_15 != P2P_HEAD_REPLIED) ) { |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1496 yd = xd->gc->proto_data; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1497 account = purple_connection_get_account(xd->gc); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1498 local_ip = purple_network_get_my_ip(listenfd); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1499 xd->yahoo_local_p2p_ft_server_port = purple_network_get_port_from_fd(listenfd); |
25623
d96190de653a
Add + in place of spaces in p2p url, fixes transfer of file with name containing spaces
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25622
diff
changeset
|
1500 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1501 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
26220
9a5da524fba9
Use purple_util_chrreplace instead of g_strsplit then g_strjoinv
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26219
diff
changeset
|
1502 filename_without_spaces = g_strdup(filename); |
9a5da524fba9
Use purple_util_chrreplace instead of g_strsplit then g_strjoinv
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
26219
diff
changeset
|
1503 purple_util_chrreplace(filename_without_spaces, ' ', '+'); |
25623
d96190de653a
Add + in place of spaces in p2p url, fixes transfer of file with name containing spaces
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25622
diff
changeset
|
1504 xd->xfer_url = g_strdup_printf("/Messenger.%s.%d000%s?AppID=Messenger&UserID=%s&K=lc9lu2u89gz1llmplwksajkjx", xfer->who, (int)time(NULL), filename_without_spaces, xfer->who); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1505 url_to_send = g_strdup_printf("http://%s:%d%s", local_ip, xd->yahoo_local_p2p_ft_server_port, xd->xfer_url); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1506 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1507 if(xfer->type == PURPLE_XFER_RECEIVE) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1508 xd->info_val_249 = 2; /* 249=2: we are p2p server, and receiving file */ |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1509 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_ACC_15, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1510 YAHOO_STATUS_AVAILABLE, yd->session_id); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1511 yahoo_packet_hash(pkt, "ssssis", |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1512 1, purple_normalize(account, purple_account_get_username(account)), |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1513 5, xfer->who, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1514 265, xd->xfer_peer_idstring, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1515 27, xfer->filename, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1516 249, 2, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1517 250, url_to_send); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1518 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1519 else { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1520 xd->info_val_249 = 1; /* 249=1: we are p2p server, and sending file */ |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1521 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_INFO_15, YAHOO_STATUS_AVAILABLE, yd->session_id); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1522 yahoo_packet_hash(pkt, "ssssis", |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1523 1, purple_normalize(account, purple_account_get_username(account)), |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1524 5, xfer->who, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1525 265, xd->xfer_peer_idstring, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1526 27, filename, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1527 249, 1, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1528 250, url_to_send); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1529 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1530 |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1531 yahoo_packet_send_and_free(pkt, yd); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1532 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1533 g_free(filename); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1534 g_free(url_to_send); |
25623
d96190de653a
Add + in place of spaces in p2p url, fixes transfer of file with name containing spaces
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25622
diff
changeset
|
1535 g_free(filename_without_spaces); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1536 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1537 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1538 /* Add an Input Read event to the file descriptor */ |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1539 xd->yahoo_local_p2p_ft_server_fd = listenfd; |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1540 xd->yahoo_p2p_ft_server_watcher = purple_input_add(listenfd, PURPLE_INPUT_READ, yahoo_p2p_ft_server_send_connected_cb, data); |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1541 } |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1542 |
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1543 /* send (p2p) file transfer information */ |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1544 static void yahoo_p2p_client_send_ft_info(PurpleConnection *gc, PurpleXfer *xfer) |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1545 { |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1546 struct yahoo_xfer_data *xd; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1547 struct yahoo_packet *pkt; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1548 PurpleAccount *account; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1549 struct yahoo_data *yd; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1550 gchar *filename; |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1551 struct yahoo_p2p_data *p2p_data; |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1552 |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1553 if (!(xd = xfer->data)) |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1554 return; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1555 |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1556 account = purple_connection_get_account(gc); |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1557 yd = gc->proto_data; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1558 |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1559 p2p_data = g_hash_table_lookup(yd->peers, xfer->who); |
25629
38d188685f2f
changed gboolean connection_type to enum yahoo_p2p_connection_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25624
diff
changeset
|
1560 if( p2p_data->connection_type == YAHOO_P2P_WE_ARE_SERVER ) |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1561 if(purple_network_listen_range(0, 0, SOCK_STREAM, yahoo_p2p_ft_server_listen_cb, xfer)) |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1562 return; |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1563 |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1564 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_INFO_15, YAHOO_STATUS_AVAILABLE, yd->session_id); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1565 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1566 |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1567 yahoo_packet_hash(pkt, "ssssi", |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1568 1, purple_normalize(account, purple_account_get_username(account)), |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1569 5, xfer->who, |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1570 265, xd->xfer_peer_idstring, |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1571 27, filename, |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1572 249, 2); /* 249=2: we are p2p client */ |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1573 xd->info_val_249 = 2; |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1574 yahoo_packet_send_and_free(pkt, yd); |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1575 |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1576 g_free(filename); |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1577 } |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1578 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1579 void yahoo_process_filetrans_15(PurpleConnection *gc, struct yahoo_packet *pkt) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1580 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1581 char *from = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1582 char *to = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1583 char *imv = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1584 long val_222 = 0L; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1585 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1586 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1587 struct yahoo_xfer_data *xfer_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1588 char *service = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1589 char *filename = NULL; |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1590 char *xfer_peer_idstring = NULL; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1591 unsigned long filesize = 0L; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1592 GSList *l; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1593 GSList *filename_list = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1594 GSList *size_list = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1595 int nooffiles = 0; |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1596 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1597 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1598 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1599 for (l = pkt->hash; l; l = l->next) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1600 struct yahoo_pair *pair = l->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1601 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1602 switch (pair->key) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1603 case 4: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1604 from = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1605 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1606 case 5: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1607 to = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1608 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1609 case 265: |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1610 xfer_peer_idstring = pair->value; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1611 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1612 case 27: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1613 filename_list = g_slist_prepend(filename_list, g_strdup(pair->value)); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1614 nooffiles++; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1615 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1616 case 28: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1617 size_list = g_slist_prepend(size_list, g_strdup(pair->value)); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1618 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1619 case 222: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1620 val_222 = atol(pair->value); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1621 /* 1=send, 2=cancel, 3=accept, 4=reject */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1622 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1623 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1624 /* check for p2p and imviron .... not sure it comes by this service packet. Since it was bundled with filexfer in old ymsg version, still keeping it. */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1625 case 49: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1626 service = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1627 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1628 case 63: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1629 imv = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1630 break; |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1631 /* end check */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1632 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1633 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1634 } |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1635 if(!xfer_peer_idstring) |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1636 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1637 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1638 if(val_222 == 2 || val_222 == 4) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1639 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1640 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1641 xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1642 if(!xfer) return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1643 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1644 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1645 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1646 if(val_222 == 3) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1647 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1648 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1649 xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1650 if(!xfer) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1651 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1652 /* |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1653 * In the file trans info packet that we must reply with, we are |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1654 * supposed to mention the ip address... |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1655 * purple connect does not give me a way of finding the ip address... |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1656 * so, purple dnsquery is used... but retries, trying with next ip |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1657 * address etc. is not implemented..TODO |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1658 */ |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1659 |
25622
2fb8c39d0494
Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25616
diff
changeset
|
1660 /* To send through p2p */ |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1661 if( g_hash_table_lookup(yd->peers, from) ) { |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1662 /* send p2p file transfer information */ |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1663 yahoo_p2p_client_send_ft_info(gc, xfer); |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1664 return; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1665 } |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1666 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1667 if (yd->jp) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1668 { |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1669 purple_dnsquery_a(YAHOOJP_XFER_RELAY_HOST, YAHOOJP_XFER_RELAY_PORT, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1670 yahoo_xfer_dns_connected_15, xfer); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1671 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1672 else |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1673 { |
22271
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1674 purple_dnsquery_a(YAHOO_XFER_RELAY_HOST, YAHOO_XFER_RELAY_PORT, |
cc5b2a145652
Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22201
diff
changeset
|
1675 yahoo_xfer_dns_connected_15, xfer); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1676 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1677 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1678 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1679 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1680 /* processing for p2p and imviron .... not sure it comes by this service packet. Since it was bundled with filexfer in old ymsg version, still keeping it. */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1681 /* |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1682 * The remote user has changed their IMVironment. We |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1683 * record it for later use. |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1684 */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1685 if (from && imv && service && (strcmp("IMVIRONMENT", service) == 0)) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1686 g_hash_table_replace(yd->imvironments, g_strdup(from), g_strdup(imv)); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1687 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1688 } |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1689 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1690 if (pkt->service == YAHOO_SERVICE_P2PFILEXFER) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1691 if (service && (strcmp("FILEXFER", service) != 0)) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1692 purple_debug_misc("yahoo", "unhandled service 0x%02x\n", pkt->service); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1693 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1694 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1695 } |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1696 /* end processing */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1697 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1698 if(!filename_list) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1699 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1700 /* have to change list into order in which client at other end sends */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1701 filename_list = g_slist_reverse(filename_list); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1702 size_list = g_slist_reverse(size_list); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1703 filename = filename_list->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1704 filesize = atol(size_list->data); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1705 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1706 if(!from) return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1707 xfer_data = g_new0(struct yahoo_xfer_data, 1); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1708 xfer_data->version = 15; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1709 xfer_data->firstoflist = TRUE; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1710 xfer_data->gc = gc; |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1711 xfer_data->xfer_peer_idstring = g_strdup(xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1712 xfer_data->filename_list = filename_list; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1713 xfer_data->size_list = size_list; |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1714 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1715 /* Build the file transfer handle. */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1716 xfer = purple_xfer_new(gc->account, PURPLE_XFER_RECEIVE, from); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1717 xfer->message = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1718 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1719 if (xfer) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1720 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1721 /* Set the info about the incoming file. */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1722 char *utf8_filename = yahoo_string_decode(gc, filename, TRUE); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1723 purple_xfer_set_filename(xfer, utf8_filename); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1724 g_free(utf8_filename); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1725 purple_xfer_set_size(xfer, filesize); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1726 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1727 xfer->data = xfer_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1728 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1729 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1730 /* Setup our I/O op functions */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1731 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init_15); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1732 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1733 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1734 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1735 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1736 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1737 purple_xfer_set_write_fnc(xfer, yahoo_xfer_write); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1738 purple_xfer_set_request_denied_fnc(xfer,yahoo_xfer_cancel_recv); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1739 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1740 g_hash_table_insert(yd->xfer_peer_idstring_map, |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1741 xfer_data->xfer_peer_idstring, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1742 xfer); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1743 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1744 if(nooffiles > 1) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1745 gchar* message; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1746 message = g_strdup_printf(_("%s is trying to send you a group of %d files.\n"), xfer->who, nooffiles); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1747 purple_xfer_conversation_write(xfer, message, FALSE); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1748 g_free(message); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1749 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1750 /* Now perform the request */ |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1751 purple_xfer_request(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1752 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1753 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1754 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1755 void yahoo_process_filetrans_info_15(PurpleConnection *gc, struct yahoo_packet *pkt) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1756 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1757 char *from = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1758 char *to = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1759 char *url = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1760 long val_249 = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1761 long val_66 = 0; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1762 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1763 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1764 struct yahoo_xfer_data *xfer_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1765 char *filename = NULL; |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1766 char *xfer_peer_idstring = NULL; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1767 char *xfer_idstring_for_relay = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1768 GSList *l; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1769 struct yahoo_packet *pkt_to_send; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1770 PurpleAccount *account; |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1771 struct yahoo_p2p_data *p2p_data; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1772 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1773 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1774 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1775 for (l = pkt->hash; l; l = l->next) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1776 struct yahoo_pair *pair = l->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1777 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1778 switch (pair->key) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1779 case 4: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1780 from = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1781 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1782 case 5: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1783 to = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1784 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1785 case 265: |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1786 xfer_peer_idstring = pair->value; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1787 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1788 case 27: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1789 filename = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1790 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1791 case 66: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1792 val_66 = strtol(pair->value, NULL, 10); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1793 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1794 case 249: |
25571
ef47df3e5dd4
Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
22794
diff
changeset
|
1795 val_249 = strtol(pair->value, NULL, 10); |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1796 /* 249 has value 1 or 2 when doing p2p transfer and value 3 when relaying through yahoo server */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1797 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1798 case 250: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1799 url = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1800 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1801 case 251: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1802 xfer_idstring_for_relay = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1803 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1804 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1805 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1806 |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1807 if(!xfer_peer_idstring) |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1808 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1809 |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1810 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1811 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1812 if(!xfer) return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1813 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1814 if(val_66==-1) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1815 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1816 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1817 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1818 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1819 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1820 xfer_data = xfer->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1821 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1822 xfer_data->info_val_249 = val_249; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1823 xfer_data->xfer_idstring_for_relay = g_strdup(xfer_idstring_for_relay); |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1824 if(val_249 == 1 || val_249 == 3) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1825 if (!purple_url_parse(url, &(xfer_data->host), &(xfer_data->port), &(xfer_data->path), NULL, NULL)) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1826 purple_xfer_cancel_remote(xfer); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1827 return; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1828 } |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1829 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1830 account = purple_connection_get_account(xfer_data->gc); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1831 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1832 pkt_to_send = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_ACC_15, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1833 YAHOO_STATUS_AVAILABLE, yd->session_id); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1834 yahoo_packet_hash(pkt_to_send, "ssssisi", |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1835 1, purple_normalize(account, purple_account_get_username(account)), |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1836 5, xfer->who, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1837 265, xfer_data->xfer_peer_idstring, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1838 27, xfer->filename, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1839 249, xfer_data->info_val_249, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1840 251, xfer_data->xfer_idstring_for_relay, |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1841 222, 3); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1842 |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1843 yahoo_packet_send_and_free(pkt_to_send, yd); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1844 |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
1845 if (purple_proxy_connect(gc, account, xfer_data->host, xfer_data->port, |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1846 yahoo_xfer_connected_15, xfer) == NULL) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1847 purple_notify_error(gc, NULL, _("File Transfer Failed"), |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1848 _("Unable to establish file descriptor.")); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1849 purple_xfer_cancel_remote(xfer); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1850 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1851 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1852 else if(val_249 == 2) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1853 p2p_data = g_hash_table_lookup(yd->peers, xfer->who); |
25629
38d188685f2f
changed gboolean connection_type to enum yahoo_p2p_connection_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25624
diff
changeset
|
1854 if( !( p2p_data && (p2p_data->connection_type == YAHOO_P2P_WE_ARE_SERVER) ) ) { |
25624
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1855 purple_xfer_cancel_remote(xfer); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1856 return; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1857 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1858 if(!purple_network_listen_range(0, 0, SOCK_STREAM, yahoo_p2p_ft_server_listen_cb, xfer)) { |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1859 purple_xfer_cancel_remote(xfer); |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1860 return; |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1861 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1862 } |
37b207e08c69
Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25623
diff
changeset
|
1863 } |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1864 |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1865 /* TODO: Check filename etc. No probs till some hacker comes in the way */ |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1866 void yahoo_process_filetrans_acc_15(PurpleConnection *gc, struct yahoo_packet *pkt) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1867 { |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1868 gchar *xfer_peer_idstring = NULL; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1869 gchar *xfer_idstring_for_relay = NULL; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1870 PurpleXfer *xfer; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1871 struct yahoo_data *yd; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1872 struct yahoo_xfer_data *xfer_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1873 GSList *l; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1874 PurpleAccount *account; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1875 long val_66 = 0; |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1876 gchar *url = NULL; |
26219
51bdaa82b95d
Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25631
diff
changeset
|
1877 int val_249 = 0; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1878 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1879 yd = gc->proto_data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1880 for (l = pkt->hash; l; l = l->next) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1881 struct yahoo_pair *pair = l->data; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1882 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1883 switch (pair->key) { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1884 case 251: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1885 xfer_idstring_for_relay = pair->value; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1886 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1887 case 265: |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1888 xfer_peer_idstring = pair->value; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1889 break; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1890 case 66: |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1891 val_66 = atol(pair->value); |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1892 break; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1893 case 249: |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1894 val_249 = atol(pair->value); |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1895 break; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1896 case 250: |
25630
63033139c590
minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25629
diff
changeset
|
1897 url = pair->value; /* we get a p2p url here when sending file, connected as client */ |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1898 break; |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1899 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1900 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1901 |
22020
4163dcf643ae
Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22018
diff
changeset
|
1902 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, xfer_peer_idstring); |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1903 if(!xfer) return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1904 |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1905 if(val_66 == -1 || ( (!(xfer_idstring_for_relay)) && (val_249 != 2) )) |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1906 { |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1907 purple_xfer_cancel_remote(xfer); |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1908 return; |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1909 } |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1910 |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1911 if( (val_249 == 2) && (!(url)) ) |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1912 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1913 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1914 return; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1915 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1916 |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1917 xfer_data = xfer->data; |
25616
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1918 if(url) |
ccbded331513
Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents:
25571
diff
changeset
|
1919 purple_url_parse(url, &(xfer_data->host), &(xfer_data->port), &(xfer_data->path), NULL, NULL); |
27193
510f07e1f5c1
Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents:
26909
diff
changeset
|
1920 |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1921 xfer_data->xfer_idstring_for_relay = g_strdup(xfer_idstring_for_relay); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1922 xfer_data->status_15 = ACCEPTED; |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1923 account = purple_connection_get_account(gc); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1924 |
27201
d078048fb03a
Pass the gc as the handle in a bunch of calls to purple_proxy_connect
Mark Doliner <mark@kingant.net>
parents:
27193
diff
changeset
|
1925 if (purple_proxy_connect(gc, account, xfer_data->host, xfer_data->port, |
22018
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1926 yahoo_xfer_connected_15, xfer) == NULL) |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1927 { |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1928 purple_notify_error(gc, NULL, _("File Transfer Failed"),_("Unable to connect")); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1929 purple_xfer_cancel_remote(xfer); |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1930 } |
118046227581
This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents:
22017
diff
changeset
|
1931 } |