annotate libpurple/protocols/yahoo/yahoo_filexfer.c @ 32449:b6defcebfe4b

Steps toward hiding PurpleXfer. To convert prpls as they are now, lot of new accessors are needed (for stuff that maybe shouldn't be exposed directly). To convert prpls so that they don't keep re-implementing the same type of stuff, a lot of error-prone changes are needed.
author Daniel Atallah <daniel.atallah@gmail.com>
date Mon, 29 Aug 2011 22:55:51 +0000
parents dc4de0b08405
children fcf841ffd620
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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"
27395
ef5f0cde8d74 Update for file renames.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27384
diff changeset
33 #include "libymsg.h"
15374
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
46 guchar *txbuf;
15374
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;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
83 YahooData *yd;
22018
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
123 gssize remaining, written;
15374
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;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
126 xd = purple_xfer_get_protocol_data(xfer);
15374
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;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
129 written = purple_xfer_write(xfer, xd->txbuf + xd->txbuf_written, remaining);
15374
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
134 purple_debug_error("yahoo", "Unable to write in order to start ft errno = %d\n", errno);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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
27384
377e063ecda5 Convert the yahoo prpl to using the debug convenience functions instead of
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27263
diff changeset
159 purple_debug_info("yahoo", "in yahoo_receivefile_connected\n");
377e063ecda5 Convert the yahoo prpl to using the debug convenience functions instead of
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27263
diff changeset
160
15374
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;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
163 if (!(xd = purple_xfer_get_protocol_data(xfer)))
15374
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
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
166 purple_xfer_error(PURPLE_XFER_RECEIVE, purple_xfer_get_account(xfer),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
167 purple_xfer_get_remote_user(xfer), _("Unable to connect."));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
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) {
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
176 gchar *header = g_strdup_printf("GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n",
22017
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);
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
178 xd->txbuf = (guchar*) header;
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
179 xd->txbuflen = strlen(header);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180 xd->txbuf_written = 0;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
183 if (!xd->tx_handler)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
184 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
185 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
186 yahoo_receivefile_send_cb, xfer);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
187 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
188 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
189 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
190
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
191 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
192 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
193 PurpleXfer *xfer;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
194 struct yahoo_xfer_data *xd;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
195 gssize written, remaining;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
196
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
198 xd = purple_xfer_get_protocol_data(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
199
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
200 remaining = xd->txbuflen - xd->txbuf_written;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
201 written = purple_xfer_write(xfer, xd->txbuf + xd->txbuf_written, remaining);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
202
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
203 if (written < 0 && errno == EAGAIN)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
204 written = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
205 else if (written <= 0) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
206 purple_debug_error("yahoo", "Unable to write in order to start ft errno = %d\n", errno);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
207 purple_xfer_cancel_remote(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
208 return;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
211 if (written < remaining) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
212 xd->txbuf_written += written;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
213 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
214 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
216 purple_input_remove(xd->tx_handler);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
217 xd->tx_handler = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218 g_free(xd->txbuf);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 xd->txbuf = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 xd->txbuflen = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
222 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
223 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 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
226 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
227 PurpleXfer *xfer;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
228 struct yahoo_xfer_data *xd;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
229 struct yahoo_packet *pkt;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230 gchar *size, *filename, *encoded_filename, *header;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
231 guchar *pkt_buf;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
232 const char *host;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
233 int port;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 size_t content_length, header_len, pkt_buf_len;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
235 PurpleConnection *gc;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
236 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
237 YahooData *yd;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
238
27384
377e063ecda5 Convert the yahoo prpl to using the debug convenience functions instead of
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27263
diff changeset
239 purple_debug_info("yahoo", "in yahoo_sendfile_connected\n");
377e063ecda5 Convert the yahoo prpl to using the debug convenience functions instead of
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27263
diff changeset
240
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 if (!(xfer = data))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242 return;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
243 if (!(xd = purple_xfer_get_protocol_data(xfer)))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
244 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246 if (source < 0) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
247 purple_xfer_error(PURPLE_XFER_RECEIVE, purple_xfer_get_account(xfer),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
248 purple_xfer_get_remote_user(xfer), _("Unable to connect."));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
249 purple_xfer_cancel_remote(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 return;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 xfer->fd = source;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 /* Assemble the tx buffer */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 gc = xd->gc;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
257 account = purple_connection_get_account(gc);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
258 yd = gc->proto_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANSFER,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261 YAHOO_STATUS_AVAILABLE, yd->session_id);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
263 size = g_strdup_printf("%" G_GSIZE_FORMAT, purple_xfer_get_size(xfer));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
264 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
265 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
266
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
267 yahoo_packet_hash(pkt, "sssss", 0, purple_connection_get_display_name(gc),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
268 5, purple_xfer_get_remote_user(xfer), 14, "", 27, encoded_filename, 28, size);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 g_free(size);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270 g_free(encoded_filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271 g_free(filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
272
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
273 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
274
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
275 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
276 yahoo_packet_free(pkt);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
277
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
278 host = purple_account_get_string(account, "xfer_host", YAHOO_XFER_HOST);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
279 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
280 header = g_strdup_printf(
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
281 "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
282 "Content-length: %" G_GSIZE_FORMAT "\r\n"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283 "Host: %s:%d\r\n"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
284 "Cookie: Y=%s; T=%s\r\n"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
285 "\r\n",
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
286 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
287 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
288
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 header_len = strlen(header);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
290
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
291 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
292 xd->txbuf = g_malloc(xd->txbuflen);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
293
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294 memcpy(xd->txbuf, header, header_len);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
295 g_free(header);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 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
297 g_free(pkt_buf);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298 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
299
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 xd->txbuf_written = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302 if (xd->tx_handler == 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
304 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
305 yahoo_sendfile_send_cb, xfer);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
306 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
307 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
310 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
311 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312 struct yahoo_xfer_data *xfer_data;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
313 PurpleConnection *gc;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
314 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
315 YahooData *yd;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
317 xfer_data = purple_xfer_get_protocol_data(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
318 gc = xfer_data->gc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
319 yd = gc->proto_data;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
320 account = purple_connection_get_account(gc);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
322 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
323 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
324 if (purple_proxy_connect(gc, account, purple_account_get_string(account, "xferjp_host", YAHOOJP_XFER_HOST),
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
325 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
326 yahoo_sendfile_connected, xfer) == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
327 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
328 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
329 _("Unable to establish file descriptor."));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
330 purple_xfer_cancel_remote(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
331 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
332 } 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
333 if (purple_proxy_connect(gc, account, purple_account_get_string(account, "xfer_host", YAHOO_XFER_HOST),
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
334 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
335 yahoo_sendfile_connected, xfer) == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
337 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
338 _("Unable to establish file descriptor."));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
339 purple_xfer_cancel_remote(xfer);
15374
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
342 } else {
20208
63b1ce39965c applied changes from 7f71045586c32cffc40f836f3fba92c693adda57
Richard Laager <rlaager@wiktel.com>
parents: 19680
diff changeset
343 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
344 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
345 yahoo_receivefile_connected, xfer) == NULL) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
346 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
347 _("Unable to establish file descriptor."));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
348 purple_xfer_cancel_remote(xfer);
15374
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
352
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
353 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
354 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
355 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
356 PurpleConnection *gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
357 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
358 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
359 struct yahoo_packet *pkt;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
360
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
361 xfer_data = purple_xfer_get_protocol_data(xfer);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
362 gc = xfer_data->gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
363 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
364 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
365
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
366 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
367 gchar *filename;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
368 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
369 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
370 YAHOO_STATUS_AVAILABLE,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
371 yd->session_id);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
372 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
373 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
374 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
375 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
376 222, 1,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
377 266, 1,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
378 302, 268,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
379 300, 268,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
380 27, filename,
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
381 28, purple_xfer_get_size(xfer),
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
382 301, 268,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
383 303, 268);
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
384 g_free(filename);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
385 } else {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
386 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
387 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
388 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
389
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
390 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
391 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
392 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
393 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
394 222, 3);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
395 } else {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
396 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
397 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
398
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
399 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
400 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
401 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
402 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
403 271, 1);
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 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
406 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
407 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
408
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
409 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
410 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
411 /* 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
412 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
413
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414 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
415 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
416 int i;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
417
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
418 for (i = 0; i < len; i++) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
419 if (!g_ascii_isdigit(l[i]))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
420 continue;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
421 return strtol(l + i, NULL, 10);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
422 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
423 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
424 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
425
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
426 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
427 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
428 gchar buf[4096];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
429 gssize len;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
430 gchar *start = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
431 gchar *length;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
432 gchar *end;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
433 int filelen;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
434 struct yahoo_xfer_data *xd = purple_xfer_get_protocol_data(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
435
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
436 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
437 return 0;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
440 len = read(xfer->fd, buf, sizeof(buf));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
441
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
442 if (len <= 0) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
443 if ((purple_xfer_get_size(xfer) > 0) &&
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
444 (purple_xfer_get_bytes_sent(xfer) >= purple_xfer_get_size(xfer))) {
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
445 purple_xfer_set_completed(xfer, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
446 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
447 } else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
448 return -1;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
451 if (!xd->started) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
452 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
453 memcpy(xd->rxqueue + xd->rxlen, buf, len);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
454 xd->rxlen += len;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
455
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
456 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
457 /* 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
458 * 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
459 * [RFC 2616, section 4.2] */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
460 if (length == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
461 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
462 if (length) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
463 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
464 if (!end)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
465 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
466 if ((filelen = calculate_length(length, len - (length - xd->rxqueue))))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
467 purple_xfer_set_size(xfer, filelen);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
468 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
469 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
470 if (start)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
471 start += 4;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
472 if (!start || start > (xd->rxqueue + len))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
473 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
474 xd->started = TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
475
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
476 len -= (start - xd->rxqueue);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
477
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
478 *buffer = g_malloc(len);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
479 memcpy(*buffer, start, len);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
480 g_free(xd->rxqueue);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
481 xd->rxqueue = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
482 xd->rxlen = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
483 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
484 *buffer = g_malloc(len);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
485 memcpy(*buffer, buf, len);
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
488 return len;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
489 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
490
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
491 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
492 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
493 gssize len;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
494 struct yahoo_xfer_data *xd = purple_xfer_get_protocol_data(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
495
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
496 if (!xd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
497 return -1;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
498
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
499 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
500 return -1;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
503 len = write(xfer->fd, buffer, size);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
504
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
505 if (len == -1) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
506 if (purple_xfer_get_bytes_sent(xfer) >= purple_xfer_get_size(xfer))
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
507 purple_xfer_set_completed(xfer, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
508 if ((errno != EAGAIN) && (errno != EINTR))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
509 return -1;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
510 return 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
511 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
512
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
513 return len;
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
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
516 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
517 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
518 struct yahoo_xfer_data *xfer_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
519
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
520 xfer_data = purple_xfer_get_protocol_data(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
521
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
522 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
523 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
524 PurpleConnection *gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
525 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
526 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
527 struct yahoo_packet *pkt;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
528
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
529 gc = xfer_data->gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
530 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
531 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
532 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
533 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
534 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
535 YAHOO_STATUS_DISCONNECTED,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
536 yd->session_id);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
537 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
538 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
539 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
540 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
541 66, -1);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
542 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
543 else
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 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
546 YAHOO_STATUS_AVAILABLE,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
547 yd->session_id);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
548 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
549 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
550 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
551 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
552 222, 2);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
553 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
554 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
555 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
556
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
557
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
558 if (xfer_data)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
559 yahoo_xfer_data_free(xfer_data);
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
560 purple_xfer_set_protocol_data(xfer, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
561 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
562
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
563 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
564 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
565 struct yahoo_xfer_data *xfer_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
566
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
567 xfer_data = purple_xfer_get_protocol_data(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
568
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
569 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
570 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
571
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
572 PurpleConnection *gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
573 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
574 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
575 struct yahoo_packet *pkt;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
576
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
577 gc = xfer_data->gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
578 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
579 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
580 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
581 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
582 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
583 YAHOO_STATUS_AVAILABLE,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
584 yd->session_id);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
585 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
586 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
587 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
588 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
589 222, 4);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
590 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
591 else
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 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
594 YAHOO_STATUS_DISCONNECTED,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
595 yd->session_id);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
596 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
597 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
598 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
599 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
600 66, -1);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
601 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
602 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
603 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
604
22017
97d530d11cc0 Revert patch that added receive-only transfer support for Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 21803
diff changeset
605 if (xfer_data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
606 yahoo_xfer_data_free(xfer_data);
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
607 purple_xfer_set_protocol_data(xfer, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
608 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
609
26250
1520b67d792f When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 26237
diff changeset
610 /* 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
611 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
612 {
1520b67d792f When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 26237
diff changeset
613 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
614 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
615
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
616 tx = "HTTP/1.1 200 OK\r\nContent-Length: 0\r\nContent-Type: application/octet-stream\r\nConnection: close\r\n\r\n";
26250
1520b67d792f When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 26237
diff changeset
617 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
618
1520b67d792f When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 26237
diff changeset
619 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
620 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
621 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
622 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
623
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
624 /* 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
625 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
626 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
627 }
1520b67d792f When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 26237
diff changeset
628
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
629 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
630 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
631 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
632 PurpleXfer *xfer = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
633 PurpleConnection *gc;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
634 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
635
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
636 xfer_data = purple_xfer_get_protocol_data(xfer_old);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
637 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
638 && 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
639 && 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
640
1520b67d792f When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 26237
diff changeset
641 /* 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
642 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
643 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
644
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
645 /* 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
646 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
647 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
648
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
649 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
650 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
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 = 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
653 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
654
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
655 /* 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
656 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
657 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
658 gchar* filename;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
659 long filesize;
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 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
662 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
663
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
664 gc = xfer_data->gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
665 yd = gc->proto_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 /* 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
668 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
669 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
670 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
671 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
672 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
673 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
674 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
675 xfer_data->host = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
676 xfer_data->host = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
677 xfer_data->port = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
678 xfer_data->expires = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
679 xfer_data->started = FALSE;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
680 xfer_data->txbuf = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
681 xfer_data->txbuflen = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
682 xfer_data->txbuf_written = 0;
22022
eeba86c553be Fix a couple compile warnings.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22020
diff changeset
683 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
684 xfer_data->rxqueue = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
685 xfer_data->rxlen = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
686 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
687 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
688 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
689 xfer_data->firstoflist = FALSE;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
690
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
691 /* Dereference xfer_data from old xfer */
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
692 purple_xfer_set_protocol_data(xfer_old, NULL);
22018
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 /* Build the file transfer handle. */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
695 xfer = purple_xfer_new(gc->account, PURPLE_XFER_RECEIVE, purple_xfer_get_remote_user(xfer_old));
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
696
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
697
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
698 if (xfer) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
699 /* 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
700 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
701 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
702 g_free(utf8_filename);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
703 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
704
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
705 purple_xfer_set_protocol_data(xfer, xfer_data);
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
706
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
707 /* 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
708 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
709 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
710 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
711 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
712 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
713 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
714 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
715 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
716
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
717 /* update map to current xfer */
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
718 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
719 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
720
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
721 /* Now perform the request */
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
722 purple_xfer_request(xfer);
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 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
725 }
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 if (xfer_data)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
728 yahoo_xfer_data_free(xfer_data);
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
729 purple_xfer_set_protocol_data(xfer_old, NULL);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
730 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
731
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
732 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
733 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
734 GSList *l = pkt->hash;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
735
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
736 char *me = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
737 char *from = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
738 char *service = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
739 char *message = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
740 char *command = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
741 char *imv = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
742 char *unknown = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
743
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
744 /* 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
745 while(l != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
746 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
747 struct yahoo_pair *pair = l->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
748
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
749 switch(pair->key) {
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
750 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
751 me = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
752 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
753 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
754 from = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
755 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
756 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
757 service = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
758 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
759 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
760 message = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
761 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
762 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
763 command = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
764 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
765 case 63: /* IMVironment name and version */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
766 imv = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
767 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
768 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
769 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
770 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
771 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
772
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
773 l = l->next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
774 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
775
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
776 /* 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
777 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
778 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
779 /* 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
780 if(strstr(imv, "doodle;") != NULL)
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
781 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
782
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
783 /* 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
784 if(!strcmp(imv, ";0"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
785 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
786 /* 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
787 yahoo_doodle_command_got_shutdown(gc, from);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
788 }
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 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
791
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
792 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
793 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
794 char *from = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
795 char *to = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
796 char *msg = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
797 char *url = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
798 char *imv = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
799 long expires = 0;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
800 PurpleXfer *xfer;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
801 YahooData *yd;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
802 struct yahoo_xfer_data *xfer_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
803 char *service = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
804 char *filename = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
805 unsigned long filesize = 0L;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
806 GSList *l;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
807
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
808 yd = gc->proto_data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
809
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
810 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
811 struct yahoo_pair *pair = l->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
812
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
813 switch (pair->key) {
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
814 case 4:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
815 from = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
816 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
817 case 5:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
818 to = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
819 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
820 case 14:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
821 msg = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
822 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
823 case 20:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
824 url = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
825 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
826 case 38:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
827 expires = strtol(pair->value, NULL, 10);
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
828 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
829 case 27:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
830 filename = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
831 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
832 case 28:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
833 filesize = atol(pair->value);
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
834 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
835 case 49:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
836 service = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
837 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
838 case 63:
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
839 imv = pair->value;
20254
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
840 break;
f379a2e9e939 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@wiktel.com>
parents: 20208
diff changeset
841 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
842 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
843
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
844 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
845 * 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
846 * record it for later use.
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 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
849 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
850 return;
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
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
853 if (pkt->service == YAHOO_SERVICE_P2PFILEXFER) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
854 if (service && (strcmp("FILEXFER", service) != 0)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
855 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
856 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
857 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
858 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
859
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
860 if (msg) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
861 char *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
862 tmp = strchr(msg, '\006');
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
863 if (tmp)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
864 *tmp = '\0';
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
865 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
866
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
867 if (!url || !from)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
868 return;
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 /* Setup the Yahoo-specific file transfer data */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
871 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
872 xfer_data->gc = gc;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
873 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
874 g_free(xfer_data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
875 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
876 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
877
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
878 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
879 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
880
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
881 /* Build the file transfer handle. */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
882 xfer = purple_xfer_new(gc->account, PURPLE_XFER_RECEIVE, from);
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
883 if (xfer == NULL) {
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
884 g_free(xfer_data);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
885 g_return_if_reached();
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
886 }
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
887
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
888 purple_xfer_set_protocol_data(xfer, xfer_data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
889
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
890 /* Set the info about the incoming file. */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
891 if (filename) {
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
892 char *utf8_filename = yahoo_string_decode(gc, filename, TRUE);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
893 purple_xfer_set_filename(xfer, utf8_filename);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
894 g_free(utf8_filename);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
895 } else {
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
896 gchar *start, *end;
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
897 start = g_strrstr(xfer_data->path, "/");
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
898 if (start)
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
899 start++;
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
900 end = g_strrstr(xfer_data->path, "?");
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
901 if (start && *start && end) {
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
902 char *utf8_filename;
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
903 filename = g_strndup(start, end - start);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
904 utf8_filename = yahoo_string_decode(gc, filename, TRUE);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
905 g_free(filename);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
906 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
907 g_free(utf8_filename);
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
908 filename = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
909 }
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
910 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
911
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
912 purple_xfer_set_size(xfer, filesize);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
913
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
914 /* Setup our I/O op functions */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
915 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
916 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
917 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
918 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
919 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
920 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
921 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
922
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
923 /* Now perform the request */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
924 purple_xfer_request(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
925 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
926
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
927 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
928 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
929 PurpleXfer *xfer;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
930 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
931
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
932 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
933
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
934 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
935 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
936
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
937 /* Build the file transfer handle. */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
938 xfer = purple_xfer_new(gc->account, PURPLE_XFER_SEND, who);
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
939 if (xfer == NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
940 {
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
941 g_free(xfer_data);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
942 g_return_val_if_reached(NULL);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
943 }
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
944
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
945 purple_xfer_set_protocol_data(xfer, xfer_data);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
946
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
947 /* Setup our I/O op functions */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
948 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
949 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
950 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
951 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
952 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
953 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
954 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
955
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
956 return xfer;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
957 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
958
22201
393c639dd021 Kill this warning when using -Wstrict-prototypes:
Stu Tomlinson <stu@nosnilmot.com>
parents: 22022
diff changeset
959 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
960 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
961 gchar *ans;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
962 int i,j;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
963 ans = g_strnfill(24, ' ');
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
964 ans[23] = '$';
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
965 ans[22] = '$';
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
966 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
967 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
968 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
969 if(j < 26)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
970 ans[i] = j + 'a';
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
971 else if(j < 52)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
972 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
973 else
22201
393c639dd021 Kill this warning when using -Wstrict-prototypes:
Stu Tomlinson <stu@nosnilmot.com>
parents: 22022
diff changeset
974 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
975 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
976 return ans;
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
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
979 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
980 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
981 PurpleXfer *xfer;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
982 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
983 struct sockaddr_in *addr;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
984 struct yahoo_packet *pkt;
30644
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
985 unsigned long actaddr;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
986 unsigned char a,b,c,d;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
987 PurpleConnection *gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
988 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
989 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
990 gchar *url;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
991 gchar *filename;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
992
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
993 if (!(xfer = data))
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
994 return;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
995 if (!(xd = purple_xfer_get_protocol_data(xfer)))
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
996 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
997 gc = xd->gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
998 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
999 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1000
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1001 if(!hosts)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1002 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1003 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
1004 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
1005 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1006 }
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
1007
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1008 /* Discard the length... */
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1009 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
1010 if(!hosts)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1011 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1012 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
1013 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
1014 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1015 }
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
1016
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1017 /* 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
1018 addr = hosts->data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1019 actaddr = addr->sin_addr.s_addr;
30644
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1020 d = actaddr & 0xff;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1021 actaddr >>= 8;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1022 c = actaddr & 0xff;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1023 actaddr >>= 8;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1024 b = actaddr & 0xff;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1025 actaddr >>= 8;
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1026 a = actaddr & 0xff;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1027 if(yd->jp)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1028 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
1029 else
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1030 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
1031
30644
d0b0f0d17046 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29623
diff changeset
1032 url = g_strdup_printf("%u.%u.%u.%u", 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
1033
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1034 /* Free the address... */
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1035 g_free(hosts->data);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1036 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
1037 addr = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1038 while (hosts != NULL)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1039 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1040 /* Discard the length... */
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1041 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
1042 /* Free the address... */
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1043 g_free(hosts->data);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1044 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
1045 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1046
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
1047 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
1048 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
1049 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
1050 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
1051 }
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 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
1053
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1054 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
1055 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
1056
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1057 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
1058 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1059 5, purple_xfer_get_remote_user(xfer),
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1060 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
1061 27, filename,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1062 249, 3,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1063 250, xd->host);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1064
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1065 g_free(filename);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1066 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
1067 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1068
28836
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1069 gboolean yahoo_can_receive_file(PurpleConnection *gc, const char *who)
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1070 {
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1071 if (!who || yahoo_get_federation_from_name(who) != YAHOO_FEDERATION_NONE)
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1072 return FALSE;
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1073 return TRUE;
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1074 }
7b88cc6c3f7a Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28664
diff changeset
1075
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1076 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
1077 {
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1078 struct yahoo_xfer_data *xfer_data;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
1079 YahooData *yd = gc->proto_data;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1080 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
1081
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1082 g_return_if_fail(xfer != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1083
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
1084 /* 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
1085 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
1086 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
1087
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1088 xfer_data = purple_xfer_get_protocol_data(xfer);
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
1089 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
1090 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
1091 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
1092 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
1093 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
1094
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1095 /* Now perform the request */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1096 if (file)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1097 purple_xfer_request_accepted(xfer, file);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1098 else
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1099 purple_xfer_request(xfer);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1100 }
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1101
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1102 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
1103 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
1104
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1105 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
1106 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1107 PurpleXfer *xfer;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1108 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
1109 int did;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1110 guchar buf[1000];
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1111 PurpleAccount *account;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1112 PurpleConnection *gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1113
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1114 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1115 xd = purple_xfer_get_protocol_data(xfer);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1116 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
1117 gc = xd->gc;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1118
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1119 while((did = read(source, buf, sizeof(buf))) > 0)
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1120 {
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1121 /* TODO: Convert to circ buffer, this all is pretty horrible */
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1122 xd->txbuf = g_realloc(xd->txbuf, xd->txbuflen + did);
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1123 g_memmove(xd->txbuf + xd->txbuflen, buf, did);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1124 xd->txbuflen += did;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1125 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1126
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
1127 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
1128 return;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1129 else if (did < 0) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1130 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
1131 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
1132 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1133 }
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 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
1136 xd->tx_handler = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1137 xd->txbuflen = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1138
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1139 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
1140 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
1141 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
1142 g_free(xd->txbuf);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1143 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
1144 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
1145 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1146 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
1147 _("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
1148 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
1149 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1150 } else {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1151 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
1152 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
1153 xd->status_15);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1154 return;
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 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1157
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1158 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
1159 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1160 PurpleXfer *xfer;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1161 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
1162 int remaining, written;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1163
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1164 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1165 xd = purple_xfer_get_protocol_data(xfer);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1166 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
1167 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
1168
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1169 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
1170 written = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1171 else if (written <= 0) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1172 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
1173 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
1174 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1175 }
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 if (written < remaining) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1178 xd->txbuf_written += written;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1179 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1180 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1181
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1182 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
1183 xd->tx_handler = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1184 g_free(xd->txbuf);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1185 xd->txbuf = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1186 xd->txbuflen = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1187 xd->txbuf_written = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1188
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1189 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
1190 {
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1191 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
1192 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
1193 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
1194 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1195 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
1196 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1197 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
1198 xfer->fd = source;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1199 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
1200 }
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1201 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
1202 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1203 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
1204 xfer->fd = source;
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1205 /* Remove Read event */
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1206 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
1207 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
1208 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
1209 }
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1210 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
1211 {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1212 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
1213 /* 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
1214 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
1215 xd->input_event = 0;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1216 close(source);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1217 xfer->fd = -1;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1218 /* 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
1219 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
1220 }
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1221 else
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 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
1224 return;
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 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1227
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1228 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
1229 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1230 PurpleXfer *xfer;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1231 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
1232 PurpleAccount *account;
30863
351d07aefb09 Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30644
diff changeset
1233 PurpleConnection *gc;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1234
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1235 if (!(xfer = data))
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1236 return;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1237 if (!(xd = purple_xfer_get_protocol_data(xfer)))
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1238 return;
30863
351d07aefb09 Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30644
diff changeset
1239 gc = xd->gc;
351d07aefb09 Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30644
diff changeset
1240 account = purple_connection_get_account(gc);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1241 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
1242 purple_xfer_error(PURPLE_XFER_RECEIVE, purple_xfer_get_account(xfer),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1243 purple_xfer_get_remote_user(xfer), _("Unable to connect."));
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1244 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
1245 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1246 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1247 /* 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
1248 if (xd->txbuflen == 0)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1249 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1250 gchar* cookies;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1251 gchar* initial_buffer;
30974
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1252 YahooData *yd = gc->proto_data;
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1253
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1254 /* cookies = yahoo_get_cookies(gc);
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1255 * This doesn't seem to be working. The function is returning NULL, which yahoo servers don't like
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1256 * For now let us not use this function */
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1257
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1258 cookies = g_strdup_printf("Y=%s; T=%s", yd->cookie_y, yd->cookie_t);
fc961dfd4122 Fix file transfers. yahoo_get_cookies() doesn't seem to be working. As a
sulabh@pidgin.im
parents: 30863
diff changeset
1259
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1260 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
1261 {
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
1262 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
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 p2p, we are connected as client */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1265 initial_buffer = g_strdup_printf("POST /%s HTTP/1.1\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1266 "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
1267 "Host: %s\r\n"
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1268 "Content-Length: %" G_GSIZE_FORMAT "\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1269 "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
1270 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
1271 xd->host,
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1272 purple_xfer_get_size(xfer)); /* 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
1273 }
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1274 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
1275 {
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1276 /* sending file via relaying */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1277 initial_buffer = g_strdup_printf("POST /relay?token=%s&sender=%s&recver=%s HTTP/1.1\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1278 "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
1279 "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
1280 "Host: %s\r\n"
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1281 "Content-Length: %" G_GSIZE_FORMAT "\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1282 "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
1283 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
1284 purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1285 purple_xfer_get_remote_user(xfer),
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1286 cookies,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1287 xd->host,
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1288 purple_xfer_get_size(xfer)); /* 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
1289 }
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1290 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1291 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
1292 {
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
1293 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
1294 {
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1295 /* receiving file via p2p, connected as client */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1296 initial_buffer = g_strdup_printf("HEAD /%s HTTP/1.1\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1297 "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
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",
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1302 xd->path,xd->host);
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1303 }
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
1304 else
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1305 {
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1306 /* receiving file via relaying */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1307 initial_buffer = g_strdup_printf("HEAD /relay?token=%s&sender=%s&recver=%s HTTP/1.1\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1308 "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
1309 "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
1310 "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
1311 "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
1312 "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
1313 "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
1314 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
1315 purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1316 purple_xfer_get_remote_user(xfer),
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1317 cookies,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1318 xd->host);
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1319 }
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1320 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1321 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
1322 {
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
1323 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
1324 {
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1325 /* receiving file via p2p, connected as client */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1326 initial_buffer = g_strdup_printf("GET /%s HTTP/1.1\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1327 "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
1328 "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
1329 "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
1330 xd->path, xd->host);
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1331 }
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
1332 else
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1333 {
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1334 /* receiving file via relaying */
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1335 initial_buffer = g_strdup_printf("GET /relay?token=%s&sender=%s&recver=%s HTTP/1.1\r\n"
26909
fac90dbe196d Various minor cleanups. The majority of this is the #define for the useragent.
Paul Aurich <paul@darkrain42.org>
parents: 26634
diff changeset
1336 "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
1337 "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
1338 "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
1339 "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
1340 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
1341 purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1342 purple_xfer_get_remote_user(xfer),
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1343 cookies,
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1344 xd->host);
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1345 }
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1346 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1347 else
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1348 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1349 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
1350 g_free(cookies);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1351 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1352 }
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1353 xd->txbuf = (guchar*) initial_buffer;
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1354 xd->txbuflen = strlen(initial_buffer);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1355 xd->txbuf_written = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1356 g_free(cookies);
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1357 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1358
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1359 if (!xd->tx_handler)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1360 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1361 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
1362 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
1363 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
1364 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1365 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1366
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1367 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
1368 {
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1369 PurpleXfer *xfer;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1370 struct yahoo_xfer_data *xd;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1371
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1372 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1373 if (!(xd = purple_xfer_get_protocol_data(xfer))) {
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1374 purple_xfer_cancel_remote(xfer);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1375 return;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1376 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1377
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1378 purple_input_remove(xd->input_event);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1379 xd->status_15 = TRANSFER_PHASE;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1380 xfer->fd = source;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1381 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
1382 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1383
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1384 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
1385 {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1386 PurpleXfer *xfer;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1387 struct yahoo_xfer_data *xd;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1388 guchar buf[1024];
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1389 int len;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1390 char *url_head;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1391 char *url_get;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1392 time_t unix_time;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1393 char *time_str;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1394
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1395 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1396 if (!(xd = purple_xfer_get_protocol_data(xfer))) {
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1397 purple_xfer_cancel_remote(xfer);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1398 return;
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
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1401 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
1402 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
1403 return ; /* No Worries*/
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1404 else if (len <= 0) {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1405 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
1406 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
1407 purple_xfer_cancel_remote(xfer);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1408 return;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1409 }
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1410
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1411 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
1412 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
1413
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1414 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
1415 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
1416 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
1417 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
1418 else {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1419 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
1420 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
1421 purple_xfer_cancel_remote(xfer);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1422 g_free(url_head);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1423 return;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1424 }
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1425
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1426 unix_time = time(NULL);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1427 time_str = ctime(&unix_time);
32246
f70353405940 Fix truncation of a string in the Yahoo! prpl to be not quite so stupid.
Ethan Blanton <elb@pidgin.im>
parents: 31932
diff changeset
1428 time_str[strlen(time_str) - 1] = '\0';
25622
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 if (xd->txbuflen == 0) {
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1431 gchar *initial_buffer = g_strdup_printf("HTTP/1.0 200 OK\r\n"
26626
430298a61512 Reformat a printf so the HTTP headers are easier to read
Paul Aurich <paul@darkrain42.org>
parents: 26250
diff changeset
1432 "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
1433 "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
1434 "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
1435 "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
1436 "Content-length: %" G_GSIZE_FORMAT "\r\n\r\n",
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1437 time_str, time_str, purple_xfer_get_size(xfer));
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1438 xd->txbuf = (guchar *)initial_buffer;
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1439 xd->txbuflen = strlen(initial_buffer);
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1440 xd->txbuf_written = 0;
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
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1443 if (!xd->tx_handler) {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1444 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
1445 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
1446 }
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1447
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1448 g_free(url_head);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1449 g_free(url_get);
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 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
1453 {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1454 int acceptfd;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1455 PurpleXfer *xfer;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1456 struct yahoo_xfer_data *xd;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1457
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1458 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1459 if (!(xd = purple_xfer_get_protocol_data(xfer))) {
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1460 purple_xfer_cancel_remote(xfer);
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
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1464 acceptfd = accept(source, NULL, 0);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1465 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
1466 return;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1467 else if(acceptfd == -1) {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1468 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
1469 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
1470 /* 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
1471 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
1472 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
1473 return;
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
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1476 /* 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
1477 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
1478 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
1479
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1480 /* 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
1481 xfer->fd = acceptfd;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1482 if(purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE)
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1483 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
1484 else
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1485 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
1486 }
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 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
1489 {
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1490 PurpleXfer *xfer;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1491 struct yahoo_xfer_data *xd;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1492 struct yahoo_packet *pkt;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1493 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
1494 YahooData *yd;
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1495 gchar *filename;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1496 const char *local_ip;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1497 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
1498 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
1499
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1500 xfer = data;
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1501 if (!(xd = purple_xfer_get_protocol_data(xfer)) || (listenfd == -1)) {
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1502 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
1503 purple_xfer_cancel_remote(xfer);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1504 return;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1505 }
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1506
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1507 if( (purple_xfer_get_type(xfer) == 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
1508 yd = xd->gc->proto_data;
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1509 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
1510 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
1511 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
1512
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1513 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
1514 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
1515 purple_util_chrreplace(filename_without_spaces, ' ', '+');
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1516 xd->xfer_url = g_strdup_printf("/Messenger.%s.%d000%s?AppID=Messenger&UserID=%s&K=lc9lu2u89gz1llmplwksajkjx", purple_xfer_get_remote_user(xfer), (int)time(NULL), filename_without_spaces, purple_xfer_get_remote_user(xfer));
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1517 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
1518
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1519 if(purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE) {
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1520 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
1521 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
1522 YAHOO_STATUS_AVAILABLE, yd->session_id);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1523 yahoo_packet_hash(pkt, "ssssis",
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1524 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1525 5, purple_xfer_get_remote_user(xfer),
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1526 265, xd->xfer_peer_idstring,
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1527 27, purple_xfer_get_filename(xfer),
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1528 249, 2,
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1529 250, url_to_send);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1530 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1531 else {
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1532 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
1533 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
1534 yahoo_packet_hash(pkt, "ssssis",
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1535 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1536 5, purple_xfer_get_remote_user(xfer),
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1537 265, xd->xfer_peer_idstring,
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1538 27, filename,
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1539 249, 1,
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1540 250, url_to_send);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1541 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1542
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1543 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
1544
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1545 g_free(filename);
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1546 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
1547 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
1548 }
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1549
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1550 /* 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
1551 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
1552 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
1553 }
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1554
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1555 /* 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
1556 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
1557 {
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 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
1559 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
1560 PurpleAccount *account;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
1561 YahooData *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
1562 gchar *filename;
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1563 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
1564
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1565 if (!(xd = purple_xfer_get_protocol_data(xfer)))
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
1566 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
1567
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 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
1569 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
1570
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1571 p2p_data = g_hash_table_lookup(yd->peers, purple_xfer_get_remote_user(xfer));
25629
38d188685f2f changed gboolean connection_type to enum yahoo_p2p_connection_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25624
diff changeset
1572 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
1573 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
1574 return;
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1575
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1576 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
1577 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
1578
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
1579 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
1580 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1581 5, purple_xfer_get_remote_user(xfer),
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
1582 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
1583 27, filename,
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1584 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
1585 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
1586 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
1587
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1588 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
1589 }
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1590
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1591 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
1592 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1593 char *from = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1594 char *to = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1595 char *imv = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1596 long val_222 = 0L;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1597 PurpleXfer *xfer;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
1598 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1599 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
1600 char *service = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1601 char *filename = NULL;
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1602 char *xfer_peer_idstring = NULL;
28137
da33da2e1a1e Fix a bunch of memory leaks reported by Josh Mueller. Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28135
diff changeset
1603 char *utf8_filename;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1604 unsigned long filesize = 0L;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1605 GSList *l;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1606 GSList *filename_list = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1607 GSList *size_list = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1608 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
1609
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1610 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1611
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1612 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
1613 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
1614
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1615 switch (pair->key) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1616 case 4:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1617 from = 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 5:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1620 to = pair->value;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1621 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1622 case 265:
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1623 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
1624 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1625 case 27:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1626 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
1627 nooffiles++;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1628 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1629 case 28:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1630 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
1631 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1632 case 222:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1633 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
1634 /* 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
1635 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1636
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1637 /* 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
1638 case 49:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1639 service = pair->value;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1640 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1641 case 63:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1642 imv = pair->value;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1643 break;
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1644 /* end check */
22018
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 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1647 }
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1648 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
1649 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1650
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1651 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
1652 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1653 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
1654 xfer_peer_idstring);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1655 if(!xfer) return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1656 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
1657 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1658 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1659 if(val_222 == 3)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1660 {
31932
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1661 PurpleAccount *account;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1662 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
1663 xfer_peer_idstring);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1664 if(!xfer)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1665 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1666 /*
22271
cc5b2a145652 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22201
diff changeset
1667 * 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
1668 * 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
1669 * 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
1670 * 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
1671 * 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
1672 */
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
1673
25622
2fb8c39d0494 Send file by p2p when we are server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25616
diff changeset
1674 /* 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
1675 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
1676 /* 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
1677 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
1678 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
1679 }
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1680
31932
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1681 account = purple_connection_get_account(gc);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1682 if (yd->jp)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1683 {
31932
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1684 purple_dnsquery_a_account(account, YAHOOJP_XFER_RELAY_HOST,
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1685 YAHOOJP_XFER_RELAY_PORT,
22271
cc5b2a145652 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22201
diff changeset
1686 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
1687 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1688 else
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1689 {
31932
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1690 purple_dnsquery_a_account(account, YAHOO_XFER_RELAY_HOST,
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1691 YAHOO_XFER_RELAY_PORT,
22271
cc5b2a145652 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22201
diff changeset
1692 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
1693 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1694 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1695 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1696
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1697 /* 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
1698 /*
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1699 * 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
1700 * 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
1701 */
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1702 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
1703 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
1704 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1705 }
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
1706
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1707 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
1708 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
1709 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
1710 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1711 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1712 }
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1713 /* end processing */
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1714
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1715 if(!filename_list)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1716 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1717 /* 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
1718 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
1719 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
1720 filename = filename_list->data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1721 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
1722
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1723 if(!from) return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1724 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
1725 xfer_data->version = 15;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1726 xfer_data->firstoflist = TRUE;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1727 xfer_data->gc = gc;
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1728 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
1729 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
1730 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
1731
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1732 /* 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
1733 xfer = purple_xfer_new(gc->account, PURPLE_XFER_RECEIVE, from);
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1734 if (xfer == NULL)
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1735 {
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1736 g_free(xfer_data);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1737 g_return_if_reached();
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1738 }
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1739
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1740 /* Set the info about the incoming file. */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1741 utf8_filename = yahoo_string_decode(gc, filename, TRUE);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1742 purple_xfer_set_filename(xfer, utf8_filename);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1743 g_free(utf8_filename);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1744 purple_xfer_set_size(xfer, filesize);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1745
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1746 purple_xfer_set_protocol_data(xfer, xfer_data);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1747
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1748 /* Setup our I/O op functions */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1749 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init_15);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1750 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1751 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1752 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1753 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1754 purple_xfer_set_read_fnc(xfer, yahoo_xfer_read);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1755 purple_xfer_set_write_fnc(xfer, yahoo_xfer_write);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1756 purple_xfer_set_request_denied_fnc(xfer,yahoo_xfer_cancel_recv);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1757
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1758 g_hash_table_insert(yd->xfer_peer_idstring_map,
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1759 xfer_data->xfer_peer_idstring,
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1760 xfer);
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
1761
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1762 if(nooffiles > 1) {
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1763 gchar* message;
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1764 message = g_strdup_printf(_("%s is trying to send you a group of %d files.\n"), purple_xfer_get_remote_user(xfer), nooffiles);
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1765 purple_xfer_conversation_write(xfer, message, FALSE);
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1766 g_free(message);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1767 }
28135
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1768 /* Now perform the request */
0a056130718e yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <paul@darkrain42.org>
parents: 28025
diff changeset
1769 purple_xfer_request(xfer);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1770 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1771
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1772 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
1773 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1774 char *from = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1775 char *to = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1776 char *url = NULL;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1777 long val_249 = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1778 long val_66 = 0;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1779 PurpleXfer *xfer;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
1780 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1781 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
1782 char *filename = NULL;
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1783 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
1784 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
1785 GSList *l;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1786 struct yahoo_packet *pkt_to_send;
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1787 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
1788
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1789 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1790
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1791 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
1792 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
1793
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1794 switch (pair->key) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1795 case 4:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1796 from = pair->value;
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 5:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1799 to = 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 265:
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1802 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
1803 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1804 case 27:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1805 filename = pair->value;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1806 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1807 case 66:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1808 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
1809 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1810 case 249:
25571
ef47df3e5dd4 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 22794
diff changeset
1811 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
1812 /* 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
1813 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1814 case 250:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1815 url = pair->value;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1816 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1817 case 251:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1818 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
1819 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1820 }
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
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1823 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
1824 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1825
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1826 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
1827
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1828 if(!xfer) return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1829
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1830 if(val_66==-1)
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1831 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1832 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
1833 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1834 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1835
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1836 xfer_data = purple_xfer_get_protocol_data(xfer);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1837
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1838 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
1839 xfer_data->xfer_idstring_for_relay = g_strdup(xfer_idstring_for_relay);
31932
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1840 if(val_249 == 1 || val_249 == 3) {
b671728e6ee9 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <daniel.atallah@gmail.com>
parents: 30974
diff changeset
1841 PurpleAccount *account;
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1842 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
1843 purple_xfer_cancel_remote(xfer);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1844 return;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1845 }
27193
510f07e1f5c1 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <mark@kingant.net>
parents: 26909
diff changeset
1846
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1847 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
1848
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1849 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
1850 YAHOO_STATUS_AVAILABLE, yd->session_id);
27263
f8428553f11c Fix File transfer issue with Pidgin 2.5.7, ticket #9478
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 27201
diff changeset
1851 yahoo_packet_hash(pkt_to_send, "ssssis",
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1852 1, purple_normalize(account, purple_account_get_username(account)),
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1853 5, purple_xfer_get_remote_user(xfer),
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1854 265, xfer_data->xfer_peer_idstring,
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1855 27, purple_xfer_get_filename(xfer),
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1856 249, xfer_data->info_val_249,
27263
f8428553f11c Fix File transfer issue with Pidgin 2.5.7, ticket #9478
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 27201
diff changeset
1857 251, xfer_data->xfer_idstring_for_relay);
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1858
25624
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1859 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
1860
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
1861 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
1862 yahoo_xfer_connected_15, xfer) == NULL) {
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1863 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
1864 _("Unable to establish file descriptor."));
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1865 purple_xfer_cancel_remote(xfer);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1866 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1867 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1868 else if(val_249 == 2) {
32449
b6defcebfe4b Steps toward hiding PurpleXfer.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 32425
diff changeset
1869 p2p_data = g_hash_table_lookup(yd->peers, purple_xfer_get_remote_user(xfer));
25629
38d188685f2f changed gboolean connection_type to enum yahoo_p2p_connection_type
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25624
diff changeset
1870 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
1871 purple_xfer_cancel_remote(xfer);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1872 return;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1873 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1874 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
1875 purple_xfer_cancel_remote(xfer);
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1876 return;
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1877 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1878 }
37b207e08c69 Receive files when we are p2p server
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25623
diff changeset
1879 }
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1880
25630
63033139c590 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25629
diff changeset
1881 /* 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
1882 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
1883 {
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1884 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
1885 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
1886 PurpleXfer *xfer;
28025
908be3822215 Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27395
diff changeset
1887 YahooData *yd;
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1888 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
1889 GSList *l;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1890 PurpleAccount *account;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1891 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
1892 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
1893 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
1894
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1895 yd = gc->proto_data;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1896 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
1897 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
1898
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1899 switch (pair->key) {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1900 case 251:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1901 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
1902 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1903 case 265:
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1904 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
1905 break;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1906 case 66:
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1907 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
1908 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
1909 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
1910 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
1911 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
1912 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
1913 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
1914 break;
22018
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
22020
4163dcf643ae Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22018
diff changeset
1918 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
1919 if(!xfer) return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1920
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
1921 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
1922 {
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1923 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
1924 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
1925 }
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1926
ccbded331513 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@soc.pidgin.im>
parents: 25571
diff changeset
1927 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
1928 {
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 return;
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1931 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1932
32425
dc4de0b08405 Convert the yahoo prpl to using the new API.
andrew.victor@mxit.com
parents: 32246
diff changeset
1933 xfer_data = purple_xfer_get_protocol_data(xfer);
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
1934 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
1935 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
1936
22018
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1937 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
1938 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
1939 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
1940
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
1941 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
1942 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
1943 {
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1944 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
1945 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
1946 }
118046227581 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan <madthanu@gmail.com>
parents: 22017
diff changeset
1947 }