libpurple/protocols/yahoo/yahoo_filexfer.c

Sun, 21 Jun 2015 16:30:41 -0500

author
Michael McConville <mmcconville@mykolab.com>
date
Sun, 21 Jun 2015 16:30:41 -0500
changeset 37195
3032113d656e
parent 37158
96b5ab42da00
child 37207
e666f49a3e86
permissions
-rw-r--r--

Remove Yahoo! Japan

7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
1 /*
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
2 * @file yahoo_filexfer.c Yahoo Filetransfer
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7827
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7827
diff changeset
6 * source distribution.
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
7 *
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
12 *
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
17 *
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19064
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
21 */
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
22
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
23 /* TODO: it needs further refactoring */
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
24
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
25 #include "internal.h"
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
26 #include "dnsquery.h"
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
27
36543
a8c3fecee2d3 Renamed prpl.[ch] to protocol.[ch]
Ankit Vani <a@nevitus.org>
parents: 34291
diff changeset
28 #include "protocol.h"
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
29 #include "util.h"
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
30 #include "debug.h"
34219
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
31 #include "http.h"
23686
ea2c220b8535 Send file by p2p when we are server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23680
diff changeset
32 #include "network.h"
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
33 #include "notify.h"
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
34 #include "proxy.h"
34910
60502558e400 Replacements for the GObject Xfer API
Ankit Vani <a@nevitus.org>
parents: 34291
diff changeset
35 #include "xfer.h"
36670
418f1f8581de Add/remove YahooProtocol, YahooJPProtocol via the single yahoo plugin
Ankit Vani <a@nevitus.org>
parents: 36543
diff changeset
36 #include "ymsg.h"
10392
6a9728e72c11 [gaim-migrate @ 11620]
Tim Ringenbach <marv@pidgin.im>
parents: 10361
diff changeset
37 #include "yahoo_packet.h"
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
38 #include "yahoo_filexfer.h"
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
39 #include "yahoo_doodle.h"
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
40 #include "yahoo_friend.h"
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
41
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
42 struct yahoo_xfer_data {
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
43 gchar *url;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
44 gboolean is_relay;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
45 PurpleHttpConnection *hc;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
46
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
47 gchar *host;
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
48 gchar *path;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
49 PurpleConnection *gc;
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
50 gchar *xfer_peer_idstring;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
51 gchar *xfer_idstring_for_relay;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
52 int info_val_249;
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
53
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
54 /* contains all filenames, in case of multiple transfers, with the first
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
55 * one in the list being the current file's name (ymsg15) */
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
56 GSList *filename_list;
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
57 GSList *size_list; /* corresponds to filename_list, with size as **STRING** */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
58 gboolean firstoflist;
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
59 };
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
60
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
61 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
62 yahoo_xfer_data_free(struct yahoo_xfer_data *xd)
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
63 {
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
64 PurpleConnection *gc;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
65 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
66 PurpleXfer *xfer;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
67
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
68 gc = xd->gc;
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
69 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
70
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
71 /* remove entry from map */
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
72 if(xd->xfer_peer_idstring) {
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
73 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, xd->xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
74 if(xfer)
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
75 g_hash_table_remove(yd->xfer_peer_idstring_map, xd->xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
76 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
77
35274
2561402bb3fd Use g_slist_free_full and g_list_free_full in a few places.
Mark Doliner <mark@kingant.net>
parents: 35265
diff changeset
78 g_slist_free_full(xd->filename_list, g_free);
2561402bb3fd Use g_slist_free_full and g_list_free_full in a few places.
Mark Doliner <mark@kingant.net>
parents: 35265
diff changeset
79 g_slist_free_full(xd->size_list, g_free);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
80
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13144
diff changeset
81 g_free(xd->host);
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13144
diff changeset
82 g_free(xd->path);
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
83 g_free(xd->xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
84 g_free(xd->xfer_idstring_for_relay);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
85 g_free(xd);
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
86 }
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
87
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
88 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
89 yahoo_xfer_start(PurpleXfer *xfer);
14146
4413802cb7a9 [gaim-migrate @ 16705]
Mark Doliner <markdoliner@pidgin.im>
parents: 13851
diff changeset
90
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
91 static PurpleXfer *
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
92 yahoo_ft_new_xfer_struct(PurpleConnection *gc, PurpleXferType type,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
93 const char *who);
14146
4413802cb7a9 [gaim-migrate @ 16705]
Mark Doliner <markdoliner@pidgin.im>
parents: 13851
diff changeset
94
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
95 static PurpleHttpRequest *
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
96 yahoo_ft_new_req(struct yahoo_xfer_data *xd)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
97 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
98 PurpleHttpRequest *req;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
99 YahooData *yd;
14146
4413802cb7a9 [gaim-migrate @ 16705]
Mark Doliner <markdoliner@pidgin.im>
parents: 13851
diff changeset
100
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
101 g_return_val_if_fail(xd != NULL, NULL);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
102
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
103 yd = purple_connection_get_protocol_data(xd->gc);
14146
4413802cb7a9 [gaim-migrate @ 16705]
Mark Doliner <markdoliner@pidgin.im>
parents: 13851
diff changeset
104
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
105 req = purple_http_request_new(xd->url);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
106 purple_http_request_header_set(req, "User-Agent",
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
107 YAHOO_CLIENT_USERAGENT);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
108 purple_http_request_header_set(req, "Cache-Control", "no-cache");
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
109 if (xd->is_relay) {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
110 PurpleHttpCookieJar *cjar;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
111
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
112 cjar = purple_http_request_get_cookie_jar(req);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
113 purple_http_cookie_jar_set(cjar, "Y", yd->cookie_y);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
114 purple_http_cookie_jar_set(cjar, "T", yd->cookie_t);
14146
4413802cb7a9 [gaim-migrate @ 16705]
Mark Doliner <markdoliner@pidgin.im>
parents: 13851
diff changeset
115 }
4413802cb7a9 [gaim-migrate @ 16705]
Mark Doliner <markdoliner@pidgin.im>
parents: 13851
diff changeset
116
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
117 return req;
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13144
diff changeset
118 }
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
119
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
120 static gchar *
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
121 yahoo_ft_url_gen(PurpleXfer *xfer, const gchar *host)
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
122 {
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
123 struct yahoo_xfer_data *xfer_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
124 PurpleAccount *account;
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
125
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
126 g_return_val_if_fail(host != NULL, NULL);
27547
c136491361eb Convert the yahoo prpl to using the debug convenience functions instead of
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27401
diff changeset
127
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
128 xfer_data = purple_xfer_get_protocol_data(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
129 account = purple_connection_get_account(xfer_data->gc);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
130
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
131 if (!xfer_data->is_relay) {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
132 purple_debug_fatal("yahoo", "Non-relay FT aren't tested yet\n");
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
133 return NULL;
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
134 }
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
135
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
136 return g_strdup_printf("http://%s/relay?token=%s&sender=%s&recver=%s",
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
137 host, purple_url_encode(xfer_data->xfer_idstring_for_relay),
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
138 purple_normalize(account, purple_account_get_username(account)),
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
139 purple_xfer_get_remote_user(xfer));
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
140 }
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
141
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
142 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
143 yahoo_xfer_init_15(PurpleXfer *xfer)
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
144 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
145 struct yahoo_xfer_data *xfer_data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
146 PurpleConnection *gc;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
147 PurpleAccount *account;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
148 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
149 struct yahoo_packet *pkt;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
150
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
151 xfer_data = purple_xfer_get_protocol_data(xfer);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
152 gc = xfer_data->gc;
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
153 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
154 account = purple_connection_get_account(gc);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
155
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
156 if (purple_xfer_get_xfer_type(xfer) == PURPLE_XFER_TYPE_SEND) {
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
157 gchar *filename;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
158 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer));
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
159 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
160 YAHOO_STATUS_AVAILABLE,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
161 yd->session_id);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
162 yahoo_packet_hash(pkt, "sssiiiisiii",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
163 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
164 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
165 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
166 222, 1,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
167 266, 1,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
168 302, 268,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
169 300, 268,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
170 27, filename,
32668
84472c7030e1 Update Yahoo for 64-bit file transfers. I'm not really sure if this
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32594
diff changeset
171 28, (int)purple_xfer_get_size(xfer),
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
172 301, 268,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
173 303, 268);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
174 g_free(filename);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
175 } else {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
176 if(xfer_data->firstoflist == TRUE) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
177 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
178 YAHOO_STATUS_AVAILABLE, yd->session_id);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
179
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
180 yahoo_packet_hash(pkt, "sssi",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
181 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
182 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
183 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
184 222, 3);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
185 } else {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
186 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_ACC_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
187 YAHOO_STATUS_AVAILABLE, yd->session_id);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
188
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
189 yahoo_packet_hash(pkt, "sssi",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
190 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
191 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
192 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
193 271, 1);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
194 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
195 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
196 yahoo_packet_send_and_free(pkt, yd);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
197 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
198
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
199 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
200 yahoo_xfer_cancel_send(PurpleXfer *xfer)
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
201 {
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
202 struct yahoo_xfer_data *xfer_data;
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
203
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
204 xfer_data = purple_xfer_get_protocol_data(xfer);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
205
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
206 if(purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL)
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
207 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
208 PurpleConnection *gc;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
209 PurpleAccount *account;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
210 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
211 struct yahoo_packet *pkt;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
212
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
213 gc = xfer_data->gc;
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
214 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
215 account = purple_connection_get_account(gc);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
216 if(xfer_data->xfer_idstring_for_relay) /* hack to see if file trans acc/info packet has been received */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
217 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
218 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_INFO_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
219 YAHOO_STATUS_DISCONNECTED,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
220 yd->session_id);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
221 yahoo_packet_hash(pkt, "sssi",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
222 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
223 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
224 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
225 66, -1);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
226 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
227 else
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
228 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
229 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
230 YAHOO_STATUS_AVAILABLE,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
231 yd->session_id);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
232 yahoo_packet_hash(pkt, "sssi",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
233 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
234 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
235 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
236 222, 2);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
237 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
238 yahoo_packet_send_and_free(pkt, yd);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
239 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
240
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
241 if (xfer_data) {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
242 purple_http_conn_cancel(xfer_data->hc);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
243 yahoo_xfer_data_free(xfer_data);
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
244 }
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
245 purple_xfer_set_protocol_data(xfer, NULL);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
246 }
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
247
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
248 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
249 yahoo_xfer_cancel_recv(PurpleXfer *xfer)
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
250 {
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
251 struct yahoo_xfer_data *xfer_data;
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
252
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
253 xfer_data = purple_xfer_get_protocol_data(xfer);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
254
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
255 if(purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL)
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
256 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
257
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
258 PurpleConnection *gc;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
259 PurpleAccount *account;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
260 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
261 struct yahoo_packet *pkt;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
262
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
263 gc = xfer_data->gc;
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
264 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
265 account = purple_connection_get_account(gc);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
266 if(!xfer_data->xfer_idstring_for_relay) /* hack to see if file trans acc/info packet has been received */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
267 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
268 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
269 YAHOO_STATUS_AVAILABLE,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
270 yd->session_id);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
271 yahoo_packet_hash(pkt, "sssi",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
272 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
273 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
274 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
275 222, 4);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
276 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
277 else
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
278 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
279 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
280 YAHOO_STATUS_DISCONNECTED,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
281 yd->session_id);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
282 yahoo_packet_hash(pkt, "sssi",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
283 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
284 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
285 265, xfer_data->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
286 66, -1);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
287 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
288 yahoo_packet_send_and_free(pkt, yd);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
289 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
290
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
291 if (xfer_data) {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
292 purple_http_conn_cancel(xfer_data->hc);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
293 yahoo_xfer_data_free(xfer_data);
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
294 }
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
295 purple_xfer_set_protocol_data(xfer, NULL);
26374
0252e7af80f8 When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26361
diff changeset
296 }
0252e7af80f8 When acting as a p2p server, send HTTP OK after receiving file.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26361
diff changeset
297
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
298 static void yahoo_xfer_end(PurpleXfer *xfer_old)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
299 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
300 struct yahoo_xfer_data *xfer_data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
301 PurpleXfer *xfer = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
302 PurpleConnection *gc;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
303 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
304
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
305 xfer_data = purple_xfer_get_protocol_data(xfer_old);
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
306 if(xfer_data
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
307 && purple_xfer_get_xfer_type(xfer_old) == PURPLE_XFER_TYPE_RECEIVE
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
308 && xfer_data->filename_list) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
309 /* removing top of filename & size list completely */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
310 g_free( xfer_data->filename_list->data );
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
311 g_free( xfer_data->size_list->data );
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
312
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
313 xfer_data->filename_list->data = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
314 xfer_data->size_list->data = NULL;
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
315
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
316 xfer_data->filename_list = g_slist_delete_link(xfer_data->filename_list, xfer_data->filename_list);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
317 xfer_data->size_list = g_slist_delete_link(xfer_data->size_list, xfer_data->size_list);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
318
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
319 /* if there are still more files */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
320 if(xfer_data->filename_list)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
321 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
322 gchar* filename;
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
323 char *utf8_filename;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
324
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
325 filename = xfer_data->filename_list->data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
326
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
327 gc = xfer_data->gc;
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
328 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
329
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
330 /* setting up xfer_data for next file's tranfer */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
331 g_free(xfer_data->host);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
332 g_free(xfer_data->path);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
333 g_free(xfer_data->xfer_idstring_for_relay);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
334 xfer_data->host = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
335 xfer_data->host = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
336 xfer_data->xfer_idstring_for_relay = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
337 xfer_data->info_val_249 = 0;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
338 xfer_data->firstoflist = FALSE;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
339
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
340 /* Dereference xfer_data from old xfer */
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
341 purple_xfer_set_protocol_data(xfer_old, NULL);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
342
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
343 /* Build the file transfer handle. */
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
344 xfer = yahoo_ft_new_xfer_struct(gc, PURPLE_XFER_TYPE_RECEIVE, purple_xfer_get_remote_user(xfer_old));
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
345
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
346 g_return_if_fail(xfer != NULL);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
347
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
348 /* Set the info about the incoming file. */
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
349 utf8_filename = yahoo_string_decode(gc, filename, TRUE);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
350 purple_xfer_set_filename(xfer, utf8_filename);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
351 g_free(utf8_filename);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
352
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
353 purple_xfer_set_protocol_data(xfer, xfer_data);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
354
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
355 /* update map to current xfer */
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
356 g_hash_table_remove(yd->xfer_peer_idstring_map, xfer_data->xfer_peer_idstring);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
357 g_hash_table_insert(yd->xfer_peer_idstring_map, xfer_data->xfer_peer_idstring, xfer);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
358
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
359 /* Now perform the request */
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
360 purple_xfer_request(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
361
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
362 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
363 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
364 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
365 if (xfer_data)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
366 yahoo_xfer_data_free(xfer_data);
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
367 purple_xfer_set_protocol_data(xfer_old, NULL);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
368 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
369
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
370 void yahoo_process_p2pfilexfer(PurpleConnection *gc, struct yahoo_packet *pkt)
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
371 {
11914
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
372 GSList *l = pkt->hash;
11644
939411169d01 [gaim-migrate @ 13922]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11475
diff changeset
373
11914
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
374 char *me = NULL;
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
375 char *from = NULL;
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
376 char *service = NULL;
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
377 char *message = NULL;
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
378 char *command = NULL;
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
379 char *imv = NULL;
11644
939411169d01 [gaim-migrate @ 13922]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11475
diff changeset
380
11801
c19b37ac661b [gaim-migrate @ 14092]
Gary Kramlich <grim@reaperworld.com>
parents: 11644
diff changeset
381 /* Get all the necessary values from this new packet */
11914
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
382 while(l != NULL)
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
383 {
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
384 struct yahoo_pair *pair = l->data;
11644
939411169d01 [gaim-migrate @ 13922]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11475
diff changeset
385
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
386 switch(pair->key) {
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
387 case 5: /* Get who the packet is for */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
388 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
389 me = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
390 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
391 purple_debug_warning("yahoo", "yahoo_process_p2pfilexfer "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
392 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
393 }
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
394 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
395 case 4: /* Get who the packet is from */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
396 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
397 from = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
398 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
399 purple_debug_warning("yahoo", "yahoo_process_p2pfilexfer "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
400 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
401 }
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
402 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
403 case 49: /* Get the type of service */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
404 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
405 service = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
406 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
407 purple_debug_warning("yahoo", "yahoo_process_p2pfilexfer "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
408 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
409 }
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
410 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
411 case 14: /* Get the 'message' of the packet */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
412 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
413 message = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
414 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
415 purple_debug_warning("yahoo", "yahoo_process_p2pfilexfer "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
416 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
417 }
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
418 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
419 case 13: /* Get the command associated with this packet */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
420 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
421 command = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
422 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
423 purple_debug_warning("yahoo", "yahoo_process_p2pfilexfer "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
424 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
425 }
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
426 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
427 case 63: /* IMVironment name and version */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
428 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
429 imv = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
430 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
431 purple_debug_warning("yahoo", "yahoo_process_p2pfilexfer "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
432 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
433 }
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
434 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
435 case 64: /* Not sure, but it does vary with initialization of Doodle */
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
436 break;
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
437 }
11644
939411169d01 [gaim-migrate @ 13922]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11475
diff changeset
438
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
439 l = l->next;
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
440 }
11644
939411169d01 [gaim-migrate @ 13922]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11475
diff changeset
441
11801
c19b37ac661b [gaim-migrate @ 14092]
Gary Kramlich <grim@reaperworld.com>
parents: 11644
diff changeset
442 /* If this packet is an IMVIRONMENT, handle it accordingly */
13459
c20f00df92e5 [gaim-migrate @ 15833]
Daniel Atallah <datallah@pidgin.im>
parents: 13277
diff changeset
443 if(service != NULL && imv != NULL && !strcmp(service, "IMVIRONMENT"))
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
444 {
11801
c19b37ac661b [gaim-migrate @ 14092]
Gary Kramlich <grim@reaperworld.com>
parents: 11644
diff changeset
445 /* Check for a Doodle packet and handle it accordingly */
19064
1680699bdbf4 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 <datallah@pidgin.im>
parents: 18273
diff changeset
446 if(strstr(imv, "doodle;") != NULL)
20150
760aa4bea7c6 applied changes from 80e3a515775c28b61c4c155c4a524374ef3360ff
Richard Laager <rlaager@pidgin.im>
parents: 20044
diff changeset
447 yahoo_doodle_process(gc, me, from, command, message, imv);
11644
939411169d01 [gaim-migrate @ 13922]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11475
diff changeset
448
11801
c19b37ac661b [gaim-migrate @ 14092]
Gary Kramlich <grim@reaperworld.com>
parents: 11644
diff changeset
449 /* If an IMVIRONMENT packet comes without a specific imviroment name */
11914
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
450 if(!strcmp(imv, ";0"))
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
451 {
11914
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
452 /* It is unfortunately time to close all IMVironments with the remote client */
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
453 yahoo_doodle_command_got_shutdown(gc, from);
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
454 }
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
455 }
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
456 }
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11159
diff changeset
457
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
458 PurpleXfer *yahoo_new_xfer(PurpleConnection *gc, const char *who)
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
459 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
460 PurpleXfer *xfer;
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
461 struct yahoo_xfer_data *xfer_data;
19064
1680699bdbf4 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 <datallah@pidgin.im>
parents: 18273
diff changeset
462
12143
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
463 g_return_val_if_fail(who != NULL, NULL);
19064
1680699bdbf4 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 <datallah@pidgin.im>
parents: 18273
diff changeset
464
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
465 xfer_data = g_new0(struct yahoo_xfer_data, 1);
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
466 xfer_data->gc = gc;
19064
1680699bdbf4 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 <datallah@pidgin.im>
parents: 18273
diff changeset
467
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
468 /* Build the file transfer handle. */
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
469 xfer = yahoo_ft_new_xfer_struct(gc, PURPLE_XFER_TYPE_SEND, who);
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
470 if (xfer == NULL)
15345
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 14899
diff changeset
471 {
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
472 g_free(xfer_data);
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
473 g_return_val_if_reached(NULL);
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
474 }
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
475
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
476 purple_xfer_set_protocol_data(xfer, xfer_data);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
477
12143
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
478 return xfer;
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
479 }
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
480
22323
ef5a1f7861b4 Kill this warning when using -Wstrict-prototypes:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22206
diff changeset
481 static gchar* yahoo_xfer_new_xfer_id(void)
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
482 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
483 gchar *ans;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
484 int i,j;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
485 ans = g_strnfill(24, ' ');
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
486 ans[23] = '$';
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
487 ans[22] = '$';
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
488 for(i = 0; i < 22; i++)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
489 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
490 j = g_random_int_range (0,61);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
491 if(j < 26)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
492 ans[i] = j + 'a';
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
493 else if(j < 52)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
494 ans[i] = j - 26 + 'A';
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
495 else
22323
ef5a1f7861b4 Kill this warning when using -Wstrict-prototypes:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22206
diff changeset
496 ans[i] = j - 52 + '0';
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
497 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
498 return ans;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
499 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
500
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
501 static void yahoo_xfer_dns_connected_15(GSList *hosts, gpointer data, const char *error_message)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
502 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
503 PurpleXfer *xfer;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
504 struct yahoo_xfer_data *xd;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
505 struct sockaddr_in *addr;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
506 struct yahoo_packet *pkt;
30470
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
507 unsigned long actaddr;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
508 unsigned char a,b,c,d;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
509 PurpleConnection *gc;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
510 PurpleAccount *account;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
511 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
512 gchar *filename;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
513
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
514 if (!(xfer = data))
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
515 return;
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
516 if (!(xd = purple_xfer_get_protocol_data(xfer)))
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
517 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
518 gc = xd->gc;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
519 account = purple_connection_get_account(gc);
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
520 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
521
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
522 if(!hosts)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
523 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
524 purple_debug_error("yahoo", "Unable to find an IP address for relay.msg.yahoo.com\n");
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
525 purple_xfer_cancel_remote(xfer);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
526 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
527 }
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
528
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
529 /* Discard the length... */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
530 hosts = g_slist_remove(hosts, hosts->data);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
531 if(!hosts)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
532 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
533 purple_debug_error("yahoo", "Unable to find an IP address for relay.msg.yahoo.com\n");
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
534 purple_xfer_cancel_remote(xfer);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
535 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
536 }
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
537
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
538 /* TODO:actually, u must try with addr no.1 , if its not working addr no.2 ..... */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
539 addr = hosts->data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
540 actaddr = addr->sin_addr.s_addr;
30470
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
541 d = actaddr & 0xff;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
542 actaddr >>= 8;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
543 c = actaddr & 0xff;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
544 actaddr >>= 8;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
545 b = actaddr & 0xff;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
546 actaddr >>= 8;
0670a9aedcd2 Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29638
diff changeset
547 a = actaddr & 0xff;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
548
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
549 xd->host = g_strdup_printf("%u.%u.%u.%u", d, c, b, a);
26783
33c6f7d0fe9d Free the DNS query data before purple_url_parse() to avoid leaking on failure.
Paul Aurich <darkrain42@pidgin.im>
parents: 26770
diff changeset
550
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
551 /* Free the address... */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
552 g_free(hosts->data);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
553 hosts = g_slist_remove(hosts, hosts->data);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
554 addr = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
555 while (hosts != NULL)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
556 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
557 /* Discard the length... */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
558 hosts = g_slist_remove(hosts, hosts->data);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
559 /* Free the address... */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
560 g_free(hosts->data);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
561 hosts = g_slist_remove(hosts, hosts->data);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
562 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
563
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
564 pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_INFO_15, YAHOO_STATUS_AVAILABLE, yd->session_id);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
565 filename = g_path_get_basename(purple_xfer_get_local_filename(xfer));
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
566
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
567 yahoo_packet_hash(pkt, "ssssis",
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
568 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
569 5, purple_xfer_get_remote_user(xfer),
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
570 265, xd->xfer_peer_idstring,
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
571 27, filename,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
572 249, 3,
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
573 250, xd->host);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
574
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
575 g_free(filename);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
576 yahoo_packet_send_and_free(pkt, yd);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
577 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
578
28786
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
579 gboolean yahoo_can_receive_file(PurpleConnection *gc, const char *who)
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
580 {
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
581 if (!who || yahoo_get_federation_from_name(who) != YAHOO_FEDERATION_NONE)
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
582 return FALSE;
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
583 return TRUE;
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
584 }
a0366821d1e4 Cannot send a file to a federated user on yahoo.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28588
diff changeset
585
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
586 void yahoo_send_file(PurpleConnection *gc, const char *who, const char *file)
12143
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
587 {
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
588 struct yahoo_xfer_data *xfer_data;
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
589 YahooData *yd = purple_connection_get_protocol_data(gc);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
590 PurpleXfer *xfer = yahoo_new_xfer(gc, who);
22401
5fe1761a4a15 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22323
diff changeset
591
12143
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
592 g_return_if_fail(xfer != NULL);
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 11914
diff changeset
593
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
594 #if 0
26351
cb7bb2f504d6 When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26344
diff changeset
595 /* if we don't have a p2p connection, try establishing it now */
cb7bb2f504d6 When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26344
diff changeset
596 if( !g_hash_table_lookup(yd->peers, who) )
cb7bb2f504d6 When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26344
diff changeset
597 yahoo_send_p2p_pkt(gc, who, 0);
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
598 #endif
26351
cb7bb2f504d6 When sending a file, if there isn't a p2p connection, try establishing it.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 26344
diff changeset
599
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
600 xfer_data = purple_xfer_get_protocol_data(xfer);
26343
b7be84823af9 Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23695
diff changeset
601 xfer_data->xfer_peer_idstring = yahoo_xfer_new_xfer_id();
b7be84823af9 Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23695
diff changeset
602 g_hash_table_insert(yd->xfer_peer_idstring_map, xfer_data->xfer_peer_idstring, xfer);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
603
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
604 /* Now perform the request */
11914
81ac838f3824 [gaim-migrate @ 14205]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11897
diff changeset
605 if (file)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
606 purple_xfer_request_accepted(xfer, file);
9466
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9306
diff changeset
607 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
608 purple_xfer_request(xfer);
7651
43663aa7ef68 [gaim-migrate @ 8295]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
609 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
610
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
611 void yahoo_process_filetrans_15(PurpleConnection *gc, struct yahoo_packet *pkt)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
612 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
613 char *from = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
614 char *imv = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
615 long val_222 = 0L;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
616 PurpleXfer *xfer;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
617 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
618 struct yahoo_xfer_data *xfer_data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
619 char *service = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
620 char *filename = NULL;
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
621 char *xfer_peer_idstring = NULL;
28076
796f5a14f70b Fix a bunch of memory leaks reported by Josh Mueller. Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 28074
diff changeset
622 char *utf8_filename;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
623 GSList *l;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
624 GSList *filename_list = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
625 GSList *size_list = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
626 int nooffiles = 0;
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
627
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
628 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
629
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
630 for (l = pkt->hash; l; l = l->next) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
631 struct yahoo_pair *pair = l->data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
632
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
633 switch (pair->key) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
634 case 4:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
635 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
636 from = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
637 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
638 purple_debug_warning("yahoo", "yahoo_process_filetrans_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
639 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
640 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
641 break;
35983
029ab6fae0e6 Backport more warning fixes for prpls from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35259
diff changeset
642 case 5: /* to */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
643 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
644 case 265:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
645 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
646 xfer_peer_idstring = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
647 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
648 purple_debug_warning("yahoo", "yahoo_process_filetrans_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
649 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
650 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
651 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
652 case 27:
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
653 filename_list = g_slist_prepend(filename_list, g_strdup(pair->value));
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
654 nooffiles++;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
655 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
656 case 28:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
657 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
658 size_list = g_slist_prepend(size_list, g_strdup(pair->value));
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
659 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
660 purple_debug_warning("yahoo", "yahoo_process_filetrans_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
661 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
662 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
663 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
664 case 222:
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
665 val_222 = atol(pair->value);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
666 /* 1=send, 2=cancel, 3=accept, 4=reject */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
667 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
668
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
669 /* 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. */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
670 case 49:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
671 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
672 service = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
673 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
674 purple_debug_warning("yahoo", "yahoo_process_filetrans_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
675 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
676 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
677 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
678 case 63:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
679 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
680 imv = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
681 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
682 purple_debug_warning("yahoo", "yahoo_process_filetrans_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
683 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
684 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
685 break;
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
686 /* end check */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
687
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
688 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
689 }
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
690 if(!xfer_peer_idstring)
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
691 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
692
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
693 if(val_222 == 2 || val_222 == 4)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
694 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
695 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map,
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
696 xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
697 if(!xfer) return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
698 purple_xfer_cancel_remote(xfer);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
699 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
700 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
701 if(val_222 == 3)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
702 {
31680
d3902c687705 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <datallah@pidgin.im>
parents: 30751
diff changeset
703 PurpleAccount *account;
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
704 struct yahoo_xfer_data *xd;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
705
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
706 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map,
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
707 xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
708 if(!xfer)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
709 return;
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
710
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
711 xd = purple_xfer_get_protocol_data(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
712
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
713 /*
22401
5fe1761a4a15 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22323
diff changeset
714 * In the file trans info packet that we must reply with, we are
5fe1761a4a15 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22323
diff changeset
715 * supposed to mention the ip address...
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
716 * purple connect does not give me a way of finding the ip address...
22401
5fe1761a4a15 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22323
diff changeset
717 * so, purple dnsquery is used... but retries, trying with next ip
5fe1761a4a15 Simplified version of the newest patch on #4533 to not try Yahoo protocol
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22323
diff changeset
718 * address etc. is not implemented..TODO
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
719 */
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
720
23686
ea2c220b8535 Send file by p2p when we are server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23680
diff changeset
721 /* To send through p2p */
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
722 if( g_hash_table_lookup(yd->peers, from) ) {
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
723 /* send p2p file transfer information */
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
724 purple_debug_error("yahoo", "p2p file transfers are not supported yet\n");
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
725 /*xd->is_relay = FALSE;*/
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
726 }
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
727 xd->is_relay = TRUE;
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
728
31680
d3902c687705 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <datallah@pidgin.im>
parents: 30751
diff changeset
729 account = purple_connection_get_account(gc);
37195
3032113d656e Remove Yahoo! Japan
Michael McConville <mmcconville@mykolab.com>
parents: 37158
diff changeset
730 purple_dnsquery_a(account, YAHOO_XFER_RELAY_HOST,
3032113d656e Remove Yahoo! Japan
Michael McConville <mmcconville@mykolab.com>
parents: 37158
diff changeset
731 YAHOO_XFER_RELAY_PORT,
3032113d656e Remove Yahoo! Japan
Michael McConville <mmcconville@mykolab.com>
parents: 37158
diff changeset
732 yahoo_xfer_dns_connected_15, xfer);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
733 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
734 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
735
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
736 /* 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. */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
737 /*
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
738 * The remote user has changed their IMVironment. We
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
739 * record it for later use.
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
740 */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
741 if (from && imv && service && (strcmp("IMVIRONMENT", service) == 0)) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
742 g_hash_table_replace(yd->imvironments, g_strdup(from), g_strdup(imv));
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
743 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
744 }
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
745
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
746 if (pkt->service == YAHOO_SERVICE_P2PFILEXFER) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
747 if (service && (strcmp("FILEXFER", service) != 0)) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
748 purple_debug_misc("yahoo", "unhandled service 0x%02x\n", pkt->service);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
749 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
750 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
751 }
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
752 /* end processing */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
753
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
754 if(!filename_list)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
755 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
756 /* have to change list into order in which client at other end sends */
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
757 filename_list = g_slist_reverse(filename_list);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
758 size_list = g_slist_reverse(size_list);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
759 filename = filename_list->data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
760
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
761 if(!from) return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
762 xfer_data = g_new0(struct yahoo_xfer_data, 1);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
763 xfer_data->firstoflist = TRUE;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
764 xfer_data->gc = gc;
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
765 xfer_data->xfer_peer_idstring = g_strdup(xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
766 xfer_data->filename_list = filename_list;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
767 xfer_data->size_list = size_list;
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
768
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
769 /* Build the file transfer handle. */
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
770 xfer = yahoo_ft_new_xfer_struct(gc, PURPLE_XFER_TYPE_RECEIVE, from);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
771
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
772 /* Set the info about the incoming file. */
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
773 utf8_filename = yahoo_string_decode(gc, filename, TRUE);
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
774 purple_xfer_set_filename(xfer, utf8_filename);
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
775 g_free(utf8_filename);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
776
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
777 purple_xfer_set_protocol_data(xfer, xfer_data);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
778
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
779 g_hash_table_insert(yd->xfer_peer_idstring_map,
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
780 xfer_data->xfer_peer_idstring,
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
781 xfer);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
782
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
783 if(nooffiles > 1) {
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
784 gchar* message;
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
785 message = g_strdup_printf(_("%s is trying to send you a group of %d files.\n"), purple_xfer_get_remote_user(xfer), nooffiles);
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
786 purple_xfer_conversation_write(xfer, message, FALSE);
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
787 g_free(message);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
788 }
28074
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
789 /* Now perform the request */
0f75cd31966a yahoo: Fix some "leaks" (in reality these shouldn't happen). Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27959
diff changeset
790 purple_xfer_request(xfer);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
791 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
792
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
793 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
794 yahoo_process_filetrans_15_sent(PurpleHttpConnection *hc,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
795 PurpleHttpResponse *response, gpointer _xfer)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
796 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
797 PurpleXfer *xfer = _xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
798 struct yahoo_xfer_data *xd;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
799
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
800 xd = purple_xfer_get_protocol_data(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
801
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
802 xd->hc = NULL;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
803
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
804 if (purple_xfer_is_cancelled(xfer))
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
805 return;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
806
34287
6cd0c77b1f6a HTTP: successful is spelled with one l
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34286
diff changeset
807 if (!purple_http_response_is_successful(response) ||
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
808 purple_xfer_get_bytes_remaining(xfer) > 0)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
809 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
810 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_REMOTE);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
811 purple_xfer_end(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
812 } else {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
813 purple_xfer_set_completed(xfer, TRUE);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
814 purple_xfer_end(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
815 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
816 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
817
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
818 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
819 yahoo_process_filetrans_15_downloaded(PurpleHttpConnection *hc,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
820 PurpleHttpResponse *response, gpointer _xfer)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
821 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
822 PurpleXfer *xfer = _xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
823 struct yahoo_xfer_data *xd;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
824
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
825 xd = purple_xfer_get_protocol_data(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
826
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
827 xd->hc = NULL;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
828
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
829 if (purple_xfer_is_cancelled(xfer))
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
830 return;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
831
34287
6cd0c77b1f6a HTTP: successful is spelled with one l
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34286
diff changeset
832 if (!purple_http_response_is_successful(response) ||
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
833 purple_xfer_get_bytes_remaining(xfer) > 0)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
834 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
835 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_REMOTE);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
836 purple_xfer_end(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
837 } else {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
838 purple_xfer_set_completed(xfer, TRUE);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
839 purple_xfer_end(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
840 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
841 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
842
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
843 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
844 yahoo_process_filetrans_15_reader(PurpleHttpConnection *hc,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
845 gchar *buffer, size_t offset, size_t length, gpointer _xfer,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
846 PurpleHttpContentReaderCb cb)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
847 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
848 PurpleXfer *xfer = _xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
849 gssize stored;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
850
35029
f9f672dcaadf Fixed warnings
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
851 if ((goffset)offset != purple_xfer_get_bytes_sent(xfer)) {
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
852 purple_debug_warning("yahoo",
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
853 "offset != purple_xfer_get_bytes_sent(xfer)\n");
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
854 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
855
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
856 stored = purple_xfer_read_file(xfer, (guchar*)buffer, length);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
857
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
858 cb(hc, (stored >= 0), (purple_xfer_get_bytes_remaining(xfer) == 0),
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
859 stored);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
860 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
861
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
862 static gboolean
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
863 yahoo_process_filetrans_15_writer(PurpleHttpConnection *http_conn,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
864 PurpleHttpResponse *response, const gchar *buffer, size_t offset,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
865 size_t length, gpointer _xfer)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
866 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
867 PurpleXfer *xfer = _xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
868
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
869 return purple_xfer_write_file(xfer, (const guchar*)buffer, length);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
870 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
871
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
872 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
873 yahoo_process_filetrans_15_watcher(PurpleHttpConnection *hc,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
874 gboolean reading_state, int processed, int total, gpointer _xfer)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
875 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
876 PurpleXfer *xfer = _xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
877
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
878 if (reading_state !=
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
879 (purple_xfer_get_xfer_type(xfer) == PURPLE_XFER_TYPE_RECEIVE))
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
880 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
881 return;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
882 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
883
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
884 purple_xfer_set_size(xfer, total);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
885 purple_xfer_update_progress(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
886 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
887
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
888 static void yahoo_xfer_start(PurpleXfer *xfer)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
889 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
890 PurpleHttpRequest *req;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
891 struct yahoo_xfer_data *xd;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
892
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
893 xd = purple_xfer_get_protocol_data(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
894
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
895 req = yahoo_ft_new_req(xd);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
896 purple_http_request_set_timeout(req, -1);
34926
c5b444d1447d Changed prefix of PurpleXferType enums to PURPLE_XFER_TYPE_*
Ankit Vani <a@nevitus.org>
parents: 34910
diff changeset
897 if (purple_xfer_get_xfer_type(xfer) == PURPLE_XFER_TYPE_RECEIVE) {
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
898 purple_http_request_set_max_len(req, -1);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
899 purple_http_request_set_response_writer(req,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
900 yahoo_process_filetrans_15_writer, xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
901 xd->hc = purple_http_request(xd->gc, req,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
902 yahoo_process_filetrans_15_downloaded, xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
903 } else {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
904 purple_http_request_set_method(req, "POST");
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
905 /* YHttpServer quirk: it sets content-length, but doesn't sends
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
906 * any data. */
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
907 purple_http_request_set_max_len(req, 0);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
908 purple_http_request_set_contents_reader(req,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
909 yahoo_process_filetrans_15_reader,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
910 purple_xfer_get_size(xfer), xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
911 xd->hc = purple_http_request(xd->gc, req,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
912 yahoo_process_filetrans_15_sent, xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
913 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
914
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
915 purple_http_conn_set_progress_watcher(xd->hc,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
916 yahoo_process_filetrans_15_watcher, xfer, -1);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
917 purple_http_request_unref(req);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
918 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
919
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
920 static void
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
921 yahoo_process_filetrans_info_15_got(PurpleHttpConnection *hc,
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
922 PurpleHttpResponse *response, gpointer _xfer)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
923 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
924 PurpleXfer *xfer = _xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
925 struct yahoo_xfer_data *xd;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
926 YahooData *yd;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
927
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
928 xd = purple_xfer_get_protocol_data(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
929 yd = purple_connection_get_protocol_data(xd->gc);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
930
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
931 xd->hc = NULL;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
932
34287
6cd0c77b1f6a HTTP: successful is spelled with one l
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34286
diff changeset
933 if (!purple_http_response_is_successful(response)) {
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
934 purple_notify_error(yd->gc, NULL, _("File Transfer Failed"),
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34291
diff changeset
935 _("Unable to get file header."),
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34291
diff changeset
936 purple_request_cpar_from_connection(yd->gc));
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
937 purple_xfer_cancel_remote(xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
938 return;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
939 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
940
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
941 purple_xfer_start(xfer, -1, NULL, 0);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
942 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
943
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
944 void yahoo_process_filetrans_info_15(PurpleConnection *gc, struct yahoo_packet *pkt)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
945 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
946 char *url = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
947 long val_249 = 0;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
948 long val_66 = 0;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
949 PurpleXfer *xfer;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
950 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
951 struct yahoo_xfer_data *xfer_data;
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
952 char *xfer_peer_idstring = NULL;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
953 char *xfer_idstring_for_relay = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
954 GSList *l;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
955 struct yahoo_packet *pkt_to_send;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
956
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
957 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
958
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
959 for (l = pkt->hash; l; l = l->next) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
960 struct yahoo_pair *pair = l->data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
961
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
962 switch (pair->key) {
35983
029ab6fae0e6 Backport more warning fixes for prpls from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35259
diff changeset
963 case 4: /* from */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
964 break;
35983
029ab6fae0e6 Backport more warning fixes for prpls from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35259
diff changeset
965 case 5: /* to */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
966 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
967 case 265:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
968 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
969 xfer_peer_idstring = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
970 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
971 purple_debug_warning("yahoo", "yahoo_process_filetrans_info_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
972 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
973 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
974 break;
35983
029ab6fae0e6 Backport more warning fixes for prpls from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35259
diff changeset
975 case 27: /* filename */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
976 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
977 case 66:
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
978 val_66 = strtol(pair->value, NULL, 10);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
979 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
980 case 249:
23675
6c5ffe34cb35 Yahoo P2P File Transfer RECEIVE only support added.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 22966
diff changeset
981 val_249 = strtol(pair->value, NULL, 10);
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
982 /* 249 has value 1 or 2 when doing p2p transfer and value 3 when relaying through yahoo server */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
983 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
984 case 250:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
985 if (g_utf8_validate(pair->value, -1, NULL)) {
35265
77664079d0f0 Merge with a fair number of conflicts. Nothing too crazy.
Mark Doliner <mark@kingant.net>
parents: 35029 35259
diff changeset
986 url = pair->value; /* TODO: rename to host? what about non-relay? */
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
987 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
988 purple_debug_warning("yahoo", "yahoo_process_filetrans_info_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
989 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
990 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
991 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
992 case 251:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
993 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
994 xfer_idstring_for_relay = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
995 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
996 purple_debug_warning("yahoo", "yahoo_process_filetrans_info_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
997 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
998 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
999 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1000 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1001 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1002
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
1003 if(!xfer_peer_idstring)
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1004 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1005
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
1006 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1007
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1008 if(!xfer) return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1009
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1010 if(val_66==-1)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1011 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1012 purple_xfer_cancel_remote(xfer);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1013 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1014 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1015
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
1016 xfer_data = purple_xfer_get_protocol_data(xfer);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1017
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1018 xfer_data->info_val_249 = val_249;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1019 xfer_data->xfer_idstring_for_relay = g_strdup(xfer_idstring_for_relay);
31680
d3902c687705 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <datallah@pidgin.im>
parents: 30751
diff changeset
1020 if(val_249 == 1 || val_249 == 3) {
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1021 PurpleHttpRequest *req;
31680
d3902c687705 Use the new account-contextual DNS API everywhere. Refs #11110
Daniel Atallah <datallah@pidgin.im>
parents: 30751
diff changeset
1022 PurpleAccount *account;
34219
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
1023
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1024 xfer_data->is_relay = (val_249 == 3);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1025
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1026 if (!xfer_data->is_relay) {
34291
6855c0363a86 I was pretty sure, this was a debug message, not a translate-able string
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34287
diff changeset
1027 purple_debug_error("yahoo", "Non-relay FT aren't tested yet.\n");
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1028 purple_notify_error(gc, NULL, _("File Transfer Failed"),
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34291
diff changeset
1029 _("Unsupported method"),
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34291
diff changeset
1030 purple_request_cpar_from_connection(gc));
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1031 purple_xfer_cancel_remote(xfer);
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1032 }
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
1033
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1034 account = purple_connection_get_account(xfer_data->gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1035
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1036 xfer_data->url = yahoo_ft_url_gen(xfer, url);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1037
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1038 pkt_to_send = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_ACC_15,
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1039 YAHOO_STATUS_AVAILABLE, yd->session_id);
27401
5e5dfa76ce64 Fix File transfer issue with Pidgin 2.5.7, ticket #9478
Sulabh Mahajan <sulabh@pidgin.im>
parents: 27343
diff changeset
1040 yahoo_packet_hash(pkt_to_send, "ssssis",
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1041 1, purple_normalize(account, purple_account_get_username(account)),
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
1042 5, purple_xfer_get_remote_user(xfer),
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1043 265, xfer_data->xfer_peer_idstring,
32270
028a4b3c0402 Steps toward hiding PurpleXfer.
Daniel Atallah <datallah@pidgin.im>
parents: 32247
diff changeset
1044 27, purple_xfer_get_filename(xfer),
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1045 249, xfer_data->info_val_249,
27401
5e5dfa76ce64 Fix File transfer issue with Pidgin 2.5.7, ticket #9478
Sulabh Mahajan <sulabh@pidgin.im>
parents: 27343
diff changeset
1046 251, xfer_data->xfer_idstring_for_relay);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1047
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1048 yahoo_packet_send_and_free(pkt_to_send, yd);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1049
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1050 req = yahoo_ft_new_req(xfer_data);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1051 purple_http_request_set_method(req, "HEAD");
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1052 xfer_data->hc = purple_http_request(gc, req, yahoo_process_filetrans_info_15_got, xfer);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1053 purple_http_request_unref(req);
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1054 }
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1055 else if (val_249 == 2)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1056 purple_debug_error("yahoo", "p2p file transfers are not supported yet\n");
23688
cdc6bf28417e Receive files when we are p2p server
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23687
diff changeset
1057 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1058
23694
95222c637ab6 minor changes in comments style and alphabetic ordering of header files.
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23693
diff changeset
1059 /* TODO: Check filename etc. No probs till some hacker comes in the way */
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1060 void yahoo_process_filetrans_acc_15(PurpleConnection *gc, struct yahoo_packet *pkt)
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1061 {
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
1062 gchar *xfer_peer_idstring = NULL;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1063 gchar *xfer_idstring_for_relay = NULL;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1064 PurpleXfer *xfer;
27959
f842ae57da4e Move from "struct yahoo_data" to "YahooData" to be consistent with other structs
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 27555
diff changeset
1065 YahooData *yd;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1066 struct yahoo_xfer_data *xfer_data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1067 GSList *l;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1068 long val_66 = 0;
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1069 gchar *url = NULL;
26343
b7be84823af9 Remove check of version for file transfer, use only version 15 file transfer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23695
diff changeset
1070 int val_249 = 0;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1071
32280
704f84f692f6 Convert yahoo prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data()
Andrew Victor <andrew.victor@mxit.com>
parents: 32270
diff changeset
1072 yd = purple_connection_get_protocol_data(gc);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1073 for (l = pkt->hash; l; l = l->next) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1074 struct yahoo_pair *pair = l->data;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1075
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1076 switch (pair->key) {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1077 case 251:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1078 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1079 xfer_idstring_for_relay = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1080 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1081 purple_debug_warning("yahoo", "yahoo_process_filetrans_acc_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1082 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1083 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1084 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1085 case 265:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1086 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1087 xfer_peer_idstring = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1088 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1089 purple_debug_warning("yahoo", "yahoo_process_filetrans_acc_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1090 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1091 }
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1092 break;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1093 case 66:
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1094 val_66 = atol(pair->value);
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1095 break;
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1096 case 249:
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1097 val_249 = atol(pair->value);
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1098 break;
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1099 case 250:
35259
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1100 if (g_utf8_validate(pair->value, -1, NULL)) {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1101 /* we get a p2p url here when sending file, connected as client */
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1102 url = pair->value;
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1103 } else {
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1104 purple_debug_warning("yahoo", "yahoo_process_filetrans_acc_15 "
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1105 "got non-UTF-8 string for key %d\n", pair->key);
b0345c25f886 Validate incoming Yahoo strings as UTF-8 before using them.
Mark Doliner <mark@kingant.net>
parents: 32005
diff changeset
1106 }
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1107 break;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1108 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1109 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1110
22204
78dc320dad31 Some readability changes. Refs #4533.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22202
diff changeset
1111 xfer = g_hash_table_lookup(yd->xfer_peer_idstring_map, xfer_peer_idstring);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1112 if(!xfer) return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1113
23680
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1114 if(val_66 == -1 || ( (!(xfer_idstring_for_relay)) && (val_249 != 2) ))
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1115 {
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1116 purple_xfer_cancel_remote(xfer);
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1117 return;
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1118 }
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1119
619bbd7ae401 Support for P2P file transfer (SEND), when we are client to the peer
Sulabh Mahajan <sulabh@pidgin.im>
parents: 23675
diff changeset
1120 if( (val_249 == 2) && (!(url)) )
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1121 {
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1122 purple_xfer_cancel_remote(xfer);
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1123 return;
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1124 }
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1125
32247
3de044282178 Convert the yahoo prpl to using the new API.
Andrew Victor <andrew.victor@mxit.com>
parents: 32005
diff changeset
1126 xfer_data = purple_xfer_get_protocol_data(xfer);
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1127 if (url)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1128 xfer_data->host = g_strdup(url);
27335
06a805d4e690 Strip trailing whitespace and comment #endif marcos that close #ifdef macros
Mark Doliner <markdoliner@pidgin.im>
parents: 27051
diff changeset
1129
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1130 xfer_data->xfer_idstring_for_relay = g_strdup(xfer_idstring_for_relay);
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1131
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1132 xfer_data->url = yahoo_ft_url_gen(xfer, xfer_data->host);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1133 purple_xfer_start(xfer, -1, NULL, 0);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1134 }
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1135
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1136 static PurpleXfer *
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1137 yahoo_ft_new_xfer_struct(PurpleConnection *gc, PurpleXferType type, const char *who)
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1138 {
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1139 PurpleXfer *xfer;
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1140
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1141 g_return_val_if_fail(gc != NULL, NULL);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1142 g_return_val_if_fail(who != NULL, NULL);
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1143
34286
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1144 xfer = purple_xfer_new(purple_connection_get_account(gc), type, who);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1145
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1146 g_return_val_if_fail(xfer != NULL, NULL);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1147
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1148 purple_xfer_set_init_fnc(xfer, yahoo_xfer_init_15);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1149 purple_xfer_set_start_fnc(xfer, yahoo_xfer_start);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1150 purple_xfer_set_end_fnc(xfer, yahoo_xfer_end);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1151 purple_xfer_set_cancel_send_fnc(xfer, yahoo_xfer_cancel_send);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1152 purple_xfer_set_cancel_recv_fnc(xfer, yahoo_xfer_cancel_recv);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1153 purple_xfer_set_request_denied_fnc(xfer, yahoo_xfer_cancel_recv);
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1154
8d0979967d05 HTTP: removing extra yahoo HTTP implementations - file transfer (and small improvements to libpurple http and ft code)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34219
diff changeset
1155 return xfer;
22202
e42ab2e3eba1 This patch from Thanumalayan S. implements Yahoo protocol version 15 file
Thanumalayan Sankaranarayanan <madthanu@gmail.com>
parents: 22201
diff changeset
1156 }

mercurial