libpurple/ft.c

Sun, 25 Apr 2010 20:38:17 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Sun, 25 Apr 2010 20:38:17 +0000
branch
cpw.malu.ft_thumbnails
changeset 30124
e84a06d70326
parent 30123
fe01edb2dfa2
child 30126
f09ecb81212c
permissions
-rw-r--r--

Minor cleanup.

* g_free is NULL-safe.
* No need for an extra * on the gpointer.
* Adium doesn't like / in their <img> tags.
* purple_xfer_set_thumbnail should free previous data.

4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1 /**
7820
06fc9f66d2cb [gaim-migrate @ 8472]
Mark Doliner <markdoliner@pidgin.im>
parents: 7805
diff changeset
2 * @file ft.c File Transfer API
20330
650a7af9c238 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents: 19859
diff changeset
3 */
650a7af9c238 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents: 19859
diff changeset
4
650a7af9c238 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents: 19859
diff changeset
5 /* purple
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
6 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
7 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7820
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7820
diff changeset
9 * source distribution.
4538
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
10 *
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * (at your option) any later version.
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 * GNU General Public License for more details.
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 *
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
22 * 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: 19733
diff changeset
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
19733
ec657d978c5a disapproval of revision 'f08436883bb16f29affdc63e9fd86ff278ed368f'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19732
diff changeset
24 *
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 */
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
26 #include "internal.h"
17852
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
27 #include "dbus-maybe.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
28 #include "ft.h"
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8208
diff changeset
29 #include "network.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
30 #include "notify.h"
6241
34d166a31152 [gaim-migrate @ 6735]
Christian Hammond <chipx86@chipx86.com>
parents: 6240
diff changeset
31 #include "prefs.h"
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
32 #include "proxy.h"
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
33 #include "request.h"
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
34 #include "util.h"
22194
3e48f2d3d083 Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@pidgin.im>
parents: 21985
diff changeset
35 #include "debug.h"
5494
410d120ef10d [gaim-migrate @ 5890]
Herman Bloggs <herman@bluedigits.com>
parents: 5436
diff changeset
36
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
37 #define FT_INITIAL_BUFFER_SIZE 4096
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
38 #define FT_MAX_BUFFER_SIZE 65535
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
39
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
40 static PurpleXferUiOps *xfer_ui_ops = NULL;
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
41 static GList *xfers;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
43 /*
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
44 * A hack to store more data since we can't extend the size of PurpleXfer
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
45 * easily.
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
46 */
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
47 static GHashTable *xfers_data = NULL;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
48
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
49 typedef struct _PurpleXferPrivData {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
50 /*
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
51 * Used to moderate the file transfer when either the read/write ui_ops are
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
52 * set or fd is not set. In those cases, the UI/prpl call the respective
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
53 * function, which is somewhat akin to a fd watch being triggered.
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
54 */
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
55 enum {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
56 PURPLE_XFER_READY_NONE = 0x0,
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
57 PURPLE_XFER_READY_UI = 0x1,
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
58 PURPLE_XFER_READY_PRPL = 0x2,
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
59 } ready;
29968
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
60
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
61 /* TODO: Should really use a PurpleCircBuffer for this. */
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
62 GByteArray *buffer;
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
63
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
64 gpointer thumbnail_data; /**< thumbnail image */
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
65 gsize thumbnail_size;
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
66 gchar *thumbnail_mimetype;
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
67 } PurpleXferPrivData;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
68
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
69 static int purple_xfer_choose_file(PurpleXfer *xfer);
14967
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
70
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
71 static void
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
72 purple_xfer_priv_data_destroy(gpointer data)
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
73 {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
74 PurpleXferPrivData *priv = data;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
75
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
76 if (priv->buffer)
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
77 g_byte_array_free(priv->buffer, TRUE);
29686
f9dee36112d0 propagate from branch 'im.pidgin.pidgin' (head 3180b88b4c1b8e73c22589457b99d2c1b6096bf4)
Paul Aurich <darkrain42@pidgin.im>
parents: 29232 29685
diff changeset
78
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
79 g_free(priv->thumbnail_data);
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
80
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
81 g_free(priv->thumbnail_mimetype);
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
82
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
83 g_free(priv);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
84 }
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
85
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
86 static const gchar *
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
87 purple_xfer_status_type_to_string(PurpleXferStatusType type)
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
88 {
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
89 static const struct {
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
90 PurpleXferStatusType type;
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
91 const char *name;
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
92 } type_names[] = {
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
93 { PURPLE_XFER_STATUS_UNKNOWN, "unknown" },
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
94 { PURPLE_XFER_STATUS_NOT_STARTED, "not started" },
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
95 { PURPLE_XFER_STATUS_ACCEPTED, "accepted" },
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
96 { PURPLE_XFER_STATUS_STARTED, "started" },
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
97 { PURPLE_XFER_STATUS_DONE, "done" },
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
98 { PURPLE_XFER_STATUS_CANCEL_LOCAL, "cancelled locally" },
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
99 { PURPLE_XFER_STATUS_CANCEL_REMOTE, "cancelled remotely" }
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
100 };
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
101 int i;
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
102
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
103 for (i = 0; i < G_N_ELEMENTS(type_names); ++i)
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
104 if (type_names[i].type == type)
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
105 return type_names[i].name;
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
106
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
107 return "invalid state";
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
108 }
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
109
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
110 GList *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
111 purple_xfers_get_all()
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
112 {
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
113 return xfers;
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
114 }
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
115
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
116 PurpleXfer *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
117 purple_xfer_new(PurpleAccount *account, PurpleXferType type, const char *who)
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
118 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
119 PurpleXfer *xfer;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
120 PurpleXferUiOps *ui_ops;
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
121 PurpleXferPrivData *priv;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
122
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
123 g_return_val_if_fail(type != PURPLE_XFER_UNKNOWN, NULL);
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
124 g_return_val_if_fail(account != NULL, NULL);
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
125 g_return_val_if_fail(who != NULL, NULL);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
126
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
127 xfer = g_new0(PurpleXfer, 1);
17852
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
128 PURPLE_DBUS_REGISTER_POINTER(xfer, PurpleXfer);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
130 xfer->ref = 1;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
131 xfer->type = type;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
132 xfer->account = account;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
133 xfer->who = g_strdup(who);
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
134 xfer->ui_ops = ui_ops = purple_xfers_get_ui_ops();
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
135 xfer->message = NULL;
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
136 xfer->current_buffer_size = FT_INITIAL_BUFFER_SIZE;
20061
c1e53ac90b75 grab revision ae2654a1c8a8119292950ba10857627abf2915f8 Initialize file-descriptors to -1.
Luke Schierer <lschiere@pidgin.im>
parents: 19859
diff changeset
137 xfer->fd = -1;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
138
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
139 priv = g_new0(PurpleXferPrivData, 1);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
140 priv->ready = PURPLE_XFER_READY_NONE;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
141
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
142 if (ui_ops && ui_ops->data_not_sent) {
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
143 /* If the ui will handle unsent data no need for buffer */
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
144 priv->buffer = NULL;
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
145 } else {
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
146 priv->buffer = g_byte_array_sized_new(FT_INITIAL_BUFFER_SIZE);
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
147 }
29686
f9dee36112d0 propagate from branch 'im.pidgin.pidgin' (head 3180b88b4c1b8e73c22589457b99d2c1b6096bf4)
Paul Aurich <darkrain42@pidgin.im>
parents: 29232 29685
diff changeset
148
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
149 g_hash_table_insert(xfers_data, xfer, priv);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
150
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
151 ui_ops = purple_xfer_get_ui_ops(xfer);
5169
091d71968b59 [gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents: 5164
diff changeset
152
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
153 if (ui_ops != NULL && ui_ops->new_xfer != NULL)
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
154 ui_ops->new_xfer(xfer);
5169
091d71968b59 [gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents: 5164
diff changeset
155
15702
111fdd9108cc Patch from Richard 'wabz' Nelson to add file-transfer ui. Amazing stuff\!
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15435
diff changeset
156 xfers = g_list_prepend(xfers, xfer);
29157
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
157
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
158 if (purple_debug_is_verbose())
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
159 purple_debug_info("xfer", "new %p [%d]\n", xfer, xfer->ref);
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
160
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
161 return xfer;
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
162 }
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
163
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
164 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
165 purple_xfer_destroy(PurpleXfer *xfer)
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
166 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
167 PurpleXferUiOps *ui_ops;
4247
a77b46afa096 [gaim-migrate @ 4497]
Christian Hammond <chipx86@chipx86.com>
parents: 4245
diff changeset
168
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
169 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
170
29157
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
171 if (purple_debug_is_verbose())
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
172 purple_debug_info("xfer", "destroyed %p [%d]\n", xfer, xfer->ref);
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
173
9512
d51da219ffb4 [gaim-migrate @ 10339]
Mark Doliner <markdoliner@pidgin.im>
parents: 9511
diff changeset
174 /* Close the file browser, if it's open */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
175 purple_request_close_with_handle(xfer);
9512
d51da219ffb4 [gaim-migrate @ 10339]
Mark Doliner <markdoliner@pidgin.im>
parents: 9511
diff changeset
176
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
177 if (purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_STARTED)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
178 purple_xfer_cancel_local(xfer);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
179
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
180 ui_ops = purple_xfer_get_ui_ops(xfer);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
181
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
182 if (ui_ops != NULL && ui_ops->destroy != NULL)
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
183 ui_ops->destroy(xfer);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
184
9789
9f056394f7f0 [gaim-migrate @ 10657]
Mark Doliner <markdoliner@pidgin.im>
parents: 9788
diff changeset
185 g_free(xfer->who);
9f056394f7f0 [gaim-migrate @ 10657]
Mark Doliner <markdoliner@pidgin.im>
parents: 9788
diff changeset
186 g_free(xfer->filename);
9f056394f7f0 [gaim-migrate @ 10657]
Mark Doliner <markdoliner@pidgin.im>
parents: 9788
diff changeset
187 g_free(xfer->remote_ip);
9f056394f7f0 [gaim-migrate @ 10657]
Mark Doliner <markdoliner@pidgin.im>
parents: 9788
diff changeset
188 g_free(xfer->local_filename);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
189
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
190 g_hash_table_remove(xfers_data, xfer);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
191
17852
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
192 PURPLE_DBUS_UNREGISTER_POINTER(xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
193 xfers = g_list_remove(xfers, xfer);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
194 g_free(xfer);
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
195 }
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
196
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
197 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
198 purple_xfer_ref(PurpleXfer *xfer)
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
199 {
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
200 g_return_if_fail(xfer != NULL);
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
201
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
202 xfer->ref++;
29157
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
203
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
204 if (purple_debug_is_verbose())
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
205 purple_debug_info("xfer", "ref'd %p [%d]\n", xfer, xfer->ref);
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
206 }
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
207
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
208 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
209 purple_xfer_unref(PurpleXfer *xfer)
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
210 {
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
211 g_return_if_fail(xfer != NULL);
12250
5b14301dd1ec [gaim-migrate @ 14552]
Richard Laager <rlaager@pidgin.im>
parents: 12151
diff changeset
212 g_return_if_fail(xfer->ref > 0);
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
213
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
214 xfer->ref--;
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
215
29157
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
216 if (purple_debug_is_verbose())
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
217 purple_debug_info("xfer", "unref'd %p [%d]\n", xfer, xfer->ref);
e3a6a5cae73b Add some verbose ref-count debugging for PurpleXfer's.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29156
diff changeset
218
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
219 if (xfer->ref == 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
220 purple_xfer_destroy(xfer);
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
221 }
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
222
9788
ca43717a431b [gaim-migrate @ 10656]
Dave West <kat@users.sourceforge.net>
parents: 9785
diff changeset
223 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
224 purple_xfer_set_status(PurpleXfer *xfer, PurpleXferStatusType status)
9788
ca43717a431b [gaim-migrate @ 10656]
Dave West <kat@users.sourceforge.net>
parents: 9785
diff changeset
225 {
ca43717a431b [gaim-migrate @ 10656]
Dave West <kat@users.sourceforge.net>
parents: 9785
diff changeset
226 g_return_if_fail(xfer != NULL);
ca43717a431b [gaim-migrate @ 10656]
Dave West <kat@users.sourceforge.net>
parents: 9785
diff changeset
227
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
228 if (purple_debug_is_verbose())
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
229 purple_debug_info("xfer", "Changing status of xfer %p from %s to %s\n",
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
230 xfer, purple_xfer_status_type_to_string(xfer->status),
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
231 purple_xfer_status_type_to_string(status));
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
232
27993
857add008895 ft: Don't emit a changed-status signal for something that isn't a change.
Paul Aurich <darkrain42@pidgin.im>
parents: 27944
diff changeset
233 if (xfer->status == status)
857add008895 ft: Don't emit a changed-status signal for something that isn't a change.
Paul Aurich <darkrain42@pidgin.im>
parents: 27944
diff changeset
234 return;
857add008895 ft: Don't emit a changed-status signal for something that isn't a change.
Paul Aurich <darkrain42@pidgin.im>
parents: 27944
diff changeset
235
27942
ace850ade78d Set xfer->status before emitting signals in purple_xfer_set_status.
Paul Aurich <darkrain42@pidgin.im>
parents: 27655
diff changeset
236 xfer->status = status;
ace850ade78d Set xfer->status before emitting signals in purple_xfer_set_status.
Paul Aurich <darkrain42@pidgin.im>
parents: 27655
diff changeset
237
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
238 if(xfer->type == PURPLE_XFER_SEND) {
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
239 switch(status) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
240 case PURPLE_XFER_STATUS_ACCEPTED:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
241 purple_signal_emit(purple_xfers_get_handle(), "file-send-accept", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
242 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
243 case PURPLE_XFER_STATUS_STARTED:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
244 purple_signal_emit(purple_xfers_get_handle(), "file-send-start", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
245 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
246 case PURPLE_XFER_STATUS_DONE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
247 purple_signal_emit(purple_xfers_get_handle(), "file-send-complete", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
248 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
249 case PURPLE_XFER_STATUS_CANCEL_LOCAL:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
250 case PURPLE_XFER_STATUS_CANCEL_REMOTE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
251 purple_signal_emit(purple_xfers_get_handle(), "file-send-cancel", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
252 break;
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
253 default:
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
254 break;
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
255 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
256 } else if(xfer->type == PURPLE_XFER_RECEIVE) {
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
257 switch(status) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
258 case PURPLE_XFER_STATUS_ACCEPTED:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
259 purple_signal_emit(purple_xfers_get_handle(), "file-recv-accept", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
260 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
261 case PURPLE_XFER_STATUS_STARTED:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
262 purple_signal_emit(purple_xfers_get_handle(), "file-recv-start", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
263 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
264 case PURPLE_XFER_STATUS_DONE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
265 purple_signal_emit(purple_xfers_get_handle(), "file-recv-complete", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
266 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
267 case PURPLE_XFER_STATUS_CANCEL_LOCAL:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
268 case PURPLE_XFER_STATUS_CANCEL_REMOTE:
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
269 purple_signal_emit(purple_xfers_get_handle(), "file-recv-cancel", xfer);
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
270 break;
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
271 default:
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
272 break;
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
273 }
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
274 }
9788
ca43717a431b [gaim-migrate @ 10656]
Dave West <kat@users.sourceforge.net>
parents: 9785
diff changeset
275 }
ca43717a431b [gaim-migrate @ 10656]
Dave West <kat@users.sourceforge.net>
parents: 9785
diff changeset
276
28722
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
277 static void
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
278 purple_xfer_conversation_write_internal(PurpleXfer *xfer,
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
279 const char *message, gboolean is_error, gboolean print_thumbnail)
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
280 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
281 PurpleConversation *conv = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
282 PurpleMessageFlags flags = PURPLE_MESSAGE_SYSTEM;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10654
diff changeset
283 char *escaped;
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
284 gconstpointer thumbnail_data = purple_xfer_get_thumbnail_data(xfer);
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
285
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
286 g_return_if_fail(xfer != NULL);
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
287 g_return_if_fail(message != NULL);
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
288
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
289 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, xfer->who,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
290 purple_xfer_get_account(xfer));
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
291
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
292 if (conv == NULL)
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
293 return;
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
294
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10654
diff changeset
295 escaped = g_markup_escape_text(message, -1);
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
296
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
297 if (is_error)
29019
9cb4fa62242d ft: Properly set a bitmask field (so it includes PURPLE_MESSAGE_SYSTEM like
Florian Quèze <florian@instantbird.org>
parents: 28659
diff changeset
298 flags |= PURPLE_MESSAGE_ERROR;
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
299
28722
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
300 if (print_thumbnail && thumbnail_data) {
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
301 gchar *message_with_img;
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
302 gsize size = purple_xfer_get_thumbnail_size(xfer);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
303 gpointer data = g_memdup(thumbnail_data, size);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
304 int id = purple_imgstore_add_with_id(data, size, NULL);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
305
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
306 message_with_img =
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
307 g_strdup_printf("<img id='%d'> %s", id, escaped);
28722
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
308 purple_conversation_write(conv, NULL, message_with_img, flags,
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
309 time(NULL));
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
310 purple_imgstore_unref_by_id(id);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
311 g_free(message_with_img);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
312 } else {
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
313 purple_conversation_write(conv, NULL, escaped, flags, time(NULL));
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
314 }
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10654
diff changeset
315 g_free(escaped);
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
316 }
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
317
28722
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
318 void
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
319 purple_xfer_conversation_write(PurpleXfer *xfer, gchar *message,
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
320 gboolean is_error)
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
321 {
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
322 purple_xfer_conversation_write_internal(xfer, message, is_error, FALSE);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
323 }
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
324
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
325 /* maybe this one should be exported publically? */
28722
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
326 static void
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
327 purple_xfer_conversation_write_with_thumbnail(PurpleXfer *xfer,
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
328 const gchar *message)
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
329 {
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
330 purple_xfer_conversation_write_internal(xfer, message, FALSE, TRUE);
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
331 }
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
332
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
333
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
334 static void purple_xfer_show_file_error(PurpleXfer *xfer, const char *filename)
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
335 {
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
336 int err = errno;
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
337 gchar *msg = NULL, *utf8;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
338 PurpleXferType xfer_type = purple_xfer_get_type(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
339 PurpleAccount *account = purple_xfer_get_account(xfer);
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
340
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
341 utf8 = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);
9796
dd7499147bed [gaim-migrate @ 10664]
Dave West <kat@users.sourceforge.net>
parents: 9795
diff changeset
342 switch(xfer_type) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
343 case PURPLE_XFER_SEND:
9796
dd7499147bed [gaim-migrate @ 10664]
Dave West <kat@users.sourceforge.net>
parents: 9795
diff changeset
344 msg = g_strdup_printf(_("Error reading %s: \n%s.\n"),
21389
e1dd8142bb87 replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents: 20147
diff changeset
345 utf8, g_strerror(err));
9795
80d4d3be52d7 [gaim-migrate @ 10663]
Luke Schierer <lschiere@pidgin.im>
parents: 9789
diff changeset
346 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
347 case PURPLE_XFER_RECEIVE:
9796
dd7499147bed [gaim-migrate @ 10664]
Dave West <kat@users.sourceforge.net>
parents: 9795
diff changeset
348 msg = g_strdup_printf(_("Error writing %s: \n%s.\n"),
21389
e1dd8142bb87 replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents: 20147
diff changeset
349 utf8, g_strerror(err));
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
350 break;
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
351 default:
9796
dd7499147bed [gaim-migrate @ 10664]
Dave West <kat@users.sourceforge.net>
parents: 9795
diff changeset
352 msg = g_strdup_printf(_("Error accessing %s: \n%s.\n"),
21389
e1dd8142bb87 replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents: 20147
diff changeset
353 utf8, g_strerror(err));
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
354 break;
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
355 }
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
356 g_free(utf8);
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
357
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
358 purple_xfer_conversation_write(xfer, msg, TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
359 purple_xfer_error(xfer_type, account, xfer->who, msg);
9796
dd7499147bed [gaim-migrate @ 10664]
Dave West <kat@users.sourceforge.net>
parents: 9795
diff changeset
360 g_free(msg);
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
361 }
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
362
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
363 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
364 purple_xfer_choose_file_ok_cb(void *user_data, const char *filename)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
365 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
366 PurpleXfer *xfer;
29155
365ee5da3b06 There's no need to call purple_xfer_get_type() repeatedly.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29019
diff changeset
367 PurpleXferType type;
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
368 struct stat st;
14967
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
369 gchar *dir;
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
370
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
371 xfer = (PurpleXfer *)user_data;
29155
365ee5da3b06 There's no need to call purple_xfer_get_type() repeatedly.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29019
diff changeset
372 type = purple_xfer_get_type(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
373
10589
4e10236e06d4 [gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents: 10504
diff changeset
374 if (g_stat(filename, &st) != 0) {
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
375 /* File not found. */
29155
365ee5da3b06 There's no need to call purple_xfer_get_type() repeatedly.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29019
diff changeset
376 if (type == PURPLE_XFER_RECEIVE) {
15161
7a392764f0b8 [gaim-migrate @ 17885]
Daniel Atallah <datallah@pidgin.im>
parents: 14967
diff changeset
377 #ifndef _WIN32
7a392764f0b8 [gaim-migrate @ 17885]
Daniel Atallah <datallah@pidgin.im>
parents: 14967
diff changeset
378 int mode = W_OK;
7a392764f0b8 [gaim-migrate @ 17885]
Daniel Atallah <datallah@pidgin.im>
parents: 14967
diff changeset
379 #else
7a392764f0b8 [gaim-migrate @ 17885]
Daniel Atallah <datallah@pidgin.im>
parents: 14967
diff changeset
380 int mode = F_OK;
7a392764f0b8 [gaim-migrate @ 17885]
Daniel Atallah <datallah@pidgin.im>
parents: 14967
diff changeset
381 #endif
14967
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
382 dir = g_path_get_dirname(filename);
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
383
15161
7a392764f0b8 [gaim-migrate @ 17885]
Daniel Atallah <datallah@pidgin.im>
parents: 14967
diff changeset
384 if (g_access(dir, mode) == 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
385 purple_xfer_request_accepted(xfer, filename);
14967
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
386 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
387 purple_xfer_ref(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
388 purple_notify_message(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
389 NULL, PURPLE_NOTIFY_MSG_ERROR, NULL,
14967
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
390 _("Directory is not writable."), NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
391 (PurpleNotifyCloseCallback)purple_xfer_choose_file, xfer);
14967
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
392 }
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
393
6a418583bf2d [gaim-migrate @ 17677]
Ka-Hing Cheung <khc@pidgin.im>
parents: 14899
diff changeset
394 g_free(dir);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
395 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
396 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
397 purple_xfer_show_file_error(xfer, filename);
29159
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
398 purple_xfer_cancel_local(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
399 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
400 }
29155
365ee5da3b06 There's no need to call purple_xfer_get_type() repeatedly.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29019
diff changeset
401 else if ((type == PURPLE_XFER_SEND) && (st.st_size == 0)) {
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
402
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
403 purple_notify_error(NULL, NULL,
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
404 _("Cannot send a file of 0 bytes."), NULL);
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
405
29159
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
406 purple_xfer_cancel_local(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
407 }
29155
365ee5da3b06 There's no need to call purple_xfer_get_type() repeatedly.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29019
diff changeset
408 else if ((type == PURPLE_XFER_SEND) && S_ISDIR(st.st_mode)) {
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
409 /*
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
410 * XXX - Sending a directory should be valid for some protocols.
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
411 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
412 purple_notify_error(NULL, NULL,
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
413 _("Cannot send a directory."), NULL);
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
414
29159
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
415 purple_xfer_cancel_local(xfer);
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
416 }
29155
365ee5da3b06 There's no need to call purple_xfer_get_type() repeatedly.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29019
diff changeset
417 else if ((type == PURPLE_XFER_RECEIVE) && S_ISDIR(st.st_mode)) {
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
418 char *msg, *utf8;
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
419 utf8 = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
420 msg = g_strdup_printf(
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
421 _("%s is not a regular file. Cowardly refusing to overwrite it.\n"), utf8);
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
422 g_free(utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
423 purple_notify_error(NULL, NULL, msg, NULL);
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
424 g_free(msg);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
425 purple_xfer_request_denied(xfer);
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
426 }
29156
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
427 else if (type == PURPLE_XFER_SEND) {
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
428 #ifndef _WIN32
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
429 int mode = R_OK;
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
430 #else
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
431 int mode = F_OK;
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
432 #endif
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
433
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
434 if (g_access(filename, mode) == 0) {
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
435 purple_xfer_request_accepted(xfer, filename);
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
436 } else {
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
437 purple_xfer_ref(xfer);
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
438 purple_notify_message(
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
439 NULL, PURPLE_NOTIFY_MSG_ERROR, NULL,
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
440 _("File is not readable."), NULL,
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
441 (PurpleNotifyCloseCallback)purple_xfer_choose_file, xfer);
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
442 }
816cd92683eb Check file permissions before sending a file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29155
diff changeset
443 }
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
444 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
445 purple_xfer_request_accepted(xfer, filename);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
446 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
447
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
448 purple_xfer_unref(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
449 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
450
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
451 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
452 purple_xfer_choose_file_cancel_cb(void *user_data, const char *filename)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
453 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
454 PurpleXfer *xfer = (PurpleXfer *)user_data;
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
455
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
456 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_LOCAL);
29159
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
457 if (purple_xfer_get_type(xfer) == PURPLE_XFER_SEND)
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
458 purple_xfer_cancel_local(xfer);
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
459 else
742ae16831fa Call purple_xfer_cancel_local instead of purple_xfer_request_denied when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29158
diff changeset
460 purple_xfer_request_denied(xfer);
29158
5c4323a2f2b0 The PurpleXfer should be unref'd if the file selection dialog was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29157
diff changeset
461 purple_xfer_unref(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
462 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
463
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
464 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
465 purple_xfer_choose_file(PurpleXfer *xfer)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
466 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
467 purple_request_file(xfer, NULL, purple_xfer_get_filename(xfer),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
468 (purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
469 G_CALLBACK(purple_xfer_choose_file_ok_cb),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
470 G_CALLBACK(purple_xfer_choose_file_cancel_cb),
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
471 purple_xfer_get_account(xfer), xfer->who, NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
472 xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
473
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
474 return 0;
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
475 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
476
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
477 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
478 cancel_recv_cb(PurpleXfer *xfer)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
479 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
480 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_LOCAL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
481 purple_xfer_request_denied(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
482 purple_xfer_unref(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
483
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
484 return 0;
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
485 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
486
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
487 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
488 purple_xfer_ask_recv(PurpleXfer *xfer)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
489 {
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10654
diff changeset
490 char *buf, *size_buf;
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
491 size_t size;
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
492
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
493 /* If we have already accepted the request, ask the destination file
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
494 name directly */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
495 if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_ACCEPTED) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
496 PurpleBuddy *buddy = purple_find_buddy(xfer->account, xfer->who);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
497
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
498 if (purple_xfer_get_filename(xfer) != NULL)
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
499 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
500 size = purple_xfer_get_size(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
501 size_buf = purple_str_size_to_units(size);
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
502 buf = g_strdup_printf(_("%s wants to send you %s (%s)"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
503 buddy ? purple_buddy_get_alias(buddy) : xfer->who,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
504 purple_xfer_get_filename(xfer), size_buf);
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
505 g_free(size_buf);
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
506 }
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
507 else
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
508 {
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
509 buf = g_strdup_printf(_("%s wants to send you a file"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
510 buddy ? purple_buddy_get_alias(buddy) : xfer->who);
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
511 }
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
512
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
513 if (xfer->message != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
514 serv_got_im(purple_account_get_connection(xfer->account),
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
515 xfer->who, xfer->message, 0, time(NULL));
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
516
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
517 if (purple_xfer_get_thumbnail_data(xfer)) {
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
518 purple_request_accept_cancel_with_icon(xfer, NULL, buf, NULL,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
519 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
520 purple_xfer_get_thumbnail_data(xfer),
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
521 purple_xfer_get_thumbnail_size(xfer), xfer,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
522 G_CALLBACK(purple_xfer_choose_file),
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
523 G_CALLBACK(cancel_recv_cb));
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
524 } else {
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
525 purple_request_accept_cancel(xfer, NULL, buf, NULL,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
526 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
527 xfer, G_CALLBACK(purple_xfer_choose_file),
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
528 G_CALLBACK(cancel_recv_cb));
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
529 }
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 27419
diff changeset
530
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
531 g_free(buf);
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
532 } else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
533 purple_xfer_choose_file(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
534 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
535
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
536 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
537 ask_accept_ok(PurpleXfer *xfer)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
538 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
539 purple_xfer_request_accepted(xfer, NULL);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
540
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
541 return 0;
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
542 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
543
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
544 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
545 ask_accept_cancel(PurpleXfer *xfer)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
546 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
547 purple_xfer_request_denied(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
548 purple_xfer_unref(xfer);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
549
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
550 return 0;
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
551 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
552
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
553 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
554 purple_xfer_ask_accept(PurpleXfer *xfer)
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
555 {
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
556 char *buf, *buf2 = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
557 PurpleBuddy *buddy = purple_find_buddy(xfer->account, xfer->who);
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
558
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
559 buf = g_strdup_printf(_("Accept file transfer request from %s?"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
560 buddy ? purple_buddy_get_alias(buddy) : xfer->who);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
561 if (purple_xfer_get_remote_ip(xfer) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
562 purple_xfer_get_remote_port(xfer))
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
563 buf2 = g_strdup_printf(_("A file is available for download from:\n"
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
564 "Remote host: %s\nRemote port: %d"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
565 purple_xfer_get_remote_ip(xfer),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
566 purple_xfer_get_remote_port(xfer));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
567 purple_request_accept_cancel(xfer, NULL, buf, buf2,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
568 PURPLE_DEFAULT_ACTION_NONE,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
569 xfer->account, xfer->who, NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
570 xfer,
9976
5fceb5de48b8 [gaim-migrate @ 10887]
Dave West <kat@users.sourceforge.net>
parents: 9941
diff changeset
571 G_CALLBACK(ask_accept_ok),
5fceb5de48b8 [gaim-migrate @ 10887]
Dave West <kat@users.sourceforge.net>
parents: 9941
diff changeset
572 G_CALLBACK(ask_accept_cancel));
9511
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
573 g_free(buf);
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
574 g_free(buf2);
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
575 }
d68f99136f26 [gaim-migrate @ 10338]
Mark Doliner <markdoliner@pidgin.im>
parents: 8585
diff changeset
576
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
577 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
578 purple_xfer_request(PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
579 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
580 g_return_if_fail(xfer != NULL);
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
581 g_return_if_fail(xfer->ops.init != NULL);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
582
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
583 purple_xfer_ref(xfer);
4247
a77b46afa096 [gaim-migrate @ 4497]
Christian Hammond <chipx86@chipx86.com>
parents: 4245
diff changeset
584
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
585 if (purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE)
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
586 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
587 purple_signal_emit(purple_xfers_get_handle(), "file-recv-request", xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
588 if (purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL)
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
589 {
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
590 /* The file-transfer was cancelled by a plugin */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
591 purple_xfer_cancel_local(xfer);
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
592 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
593 else if (purple_xfer_get_filename(xfer) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
594 purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_ACCEPTED)
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
595 {
11084
b6acee973833 [gaim-migrate @ 13103]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 10919
diff changeset
596 gchar* message = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
597 PurpleBuddy *buddy = purple_find_buddy(xfer->account, xfer->who);
28720
4b63cf19f159 Make it work again, after some new xfer UI ops where added... :)
Marcus Lundblad <malu@pidgin.im>
parents: 28682
diff changeset
598
11084
b6acee973833 [gaim-migrate @ 13103]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 10919
diff changeset
599 message = g_strdup_printf(_("%s is offering to send file %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
600 buddy ? purple_buddy_get_alias(buddy) : xfer->who, purple_xfer_get_filename(xfer));
28722
d53c7b4cf1d2 Print the thumbnail along with the offer message in the conversation
Marcus Lundblad <malu@pidgin.im>
parents: 28720
diff changeset
601 purple_xfer_conversation_write_with_thumbnail(xfer, message);
11084
b6acee973833 [gaim-migrate @ 13103]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 10919
diff changeset
602 g_free(message);
28720
4b63cf19f159 Make it work again, after some new xfer UI ops where added... :)
Marcus Lundblad <malu@pidgin.im>
parents: 28682
diff changeset
603
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
604 /* Ask for a filename to save to if it's not already given by a plugin */
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
605 if (xfer->local_filename == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
606 purple_xfer_ask_recv(xfer);
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
607 }
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
608 else
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
609 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
610 purple_xfer_ask_accept(xfer);
11084
b6acee973833 [gaim-migrate @ 13103]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 10919
diff changeset
611 }
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
612 }
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
613 else
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
614 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
615 purple_xfer_choose_file(xfer);
13220
4eca54b95034 [gaim-migrate @ 15583]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13109
diff changeset
616 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
617 }
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
618
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
619 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
620 purple_xfer_request_accepted(PurpleXfer *xfer, const char *filename)
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
621 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
622 PurpleXferType type;
9785
14fe4689ff01 [gaim-migrate @ 10653]
Tim Ringenbach <marv@pidgin.im>
parents: 9781
diff changeset
623 struct stat st;
26726
b81bcec8f359 Updates for GTK+ 3.0. Remove some deprecated functions (someone should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26373
diff changeset
624 char *msg, *utf8, *base;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
625 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
626 PurpleBuddy *buddy;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
627
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
628 if (xfer == NULL)
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
629 return;
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
630
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
631 type = purple_xfer_get_type(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
632 account = purple_xfer_get_account(xfer);
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
633
29822
7c6c2df6f9a2 whitespace trimming
Paul Aurich <darkrain42@pidgin.im>
parents: 29821
diff changeset
634 purple_debug_misc("xfer", "request accepted for %p\n", xfer);
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
635
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
636 if (!filename && type == PURPLE_XFER_RECEIVE) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
637 xfer->status = PURPLE_XFER_STATUS_ACCEPTED;
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
638 xfer->ops.init(xfer);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
639 return;
4150
fd30caf1a296 [gaim-migrate @ 4369]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
640 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
641
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
642 buddy = purple_find_buddy(account, xfer->who);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
643
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
644 if (type == PURPLE_XFER_SEND) {
13595
191c2d12a00c [gaim-migrate @ 15980]
Mark Doliner <markdoliner@pidgin.im>
parents: 13220
diff changeset
645 /* Sending a file */
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
646 /* Check the filename. */
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
647 PurpleXferUiOps *ui_ops;
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
648 ui_ops = purple_xfer_get_ui_ops(xfer);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
649
11934
97486eeddc1a [gaim-migrate @ 14225]
Richard Gobeille
parents: 11338
diff changeset
650 #ifdef _WIN32
21985
bf0e936998e4 Move some curly braces around so static analysis tools can properly detect
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21682
diff changeset
651 if (g_strrstr(filename, "../") || g_strrstr(filename, "..\\"))
11934
97486eeddc1a [gaim-migrate @ 14225]
Richard Gobeille
parents: 11338
diff changeset
652 #else
21985
bf0e936998e4 Move some curly braces around so static analysis tools can properly detect
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21682
diff changeset
653 if (g_strrstr(filename, "../"))
11934
97486eeddc1a [gaim-migrate @ 14225]
Richard Gobeille
parents: 11338
diff changeset
654 #endif
21985
bf0e936998e4 Move some curly braces around so static analysis tools can properly detect
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21682
diff changeset
655 {
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
656 utf8 = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
657
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
658 msg = g_strdup_printf(_("%s is not a valid filename.\n"), utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
659 purple_xfer_error(type, account, xfer->who, msg);
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
660 g_free(utf8);
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
661 g_free(msg);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
662
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
663 purple_xfer_unref(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
664 return;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
665 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
666
28159
567c6a03a6ea Fix building on win32, which has #define write wpurple_write (and similar for read).
Paul Aurich <darkrain42@pidgin.im>
parents: 28156
diff changeset
667 if (ui_ops == NULL || (ui_ops->ui_read == NULL && ui_ops->ui_write == NULL)) {
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
668 if (g_stat(filename, &st) == -1) {
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
669 purple_xfer_show_file_error(xfer, filename);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
670 purple_xfer_unref(xfer);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
671 return;
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
672 }
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
673
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
674 purple_xfer_set_local_filename(xfer, filename);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
675 purple_xfer_set_size(xfer, st.st_size);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
676 } else {
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
677 utf8 = g_strdup(filename);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
678 purple_xfer_set_local_filename(xfer, filename);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
679 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
680
26726
b81bcec8f359 Updates for GTK+ 3.0. Remove some deprecated functions (someone should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26373
diff changeset
681 base = g_path_get_basename(filename);
b81bcec8f359 Updates for GTK+ 3.0. Remove some deprecated functions (someone should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26373
diff changeset
682 utf8 = g_filename_to_utf8(base, -1, NULL, NULL, NULL);
b81bcec8f359 Updates for GTK+ 3.0. Remove some deprecated functions (someone should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26373
diff changeset
683 g_free(base);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
684 purple_xfer_set_filename(xfer, utf8);
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
685
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
686 msg = g_strdup_printf(_("Offering to send %s to %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
687 utf8, buddy ? purple_buddy_get_alias(buddy) : xfer->who);
10919
22fba24cd16e [gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10774
diff changeset
688 g_free(utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
689 purple_xfer_conversation_write(xfer, msg, FALSE);
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
690 g_free(msg);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
691 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
692 else {
13595
191c2d12a00c [gaim-migrate @ 15980]
Mark Doliner <markdoliner@pidgin.im>
parents: 13220
diff changeset
693 /* Receiving a file */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
694 xfer->status = PURPLE_XFER_STATUS_ACCEPTED;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
695 purple_xfer_set_local_filename(xfer, filename);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
696
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
697 msg = g_strdup_printf(_("Starting transfer of %s from %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
698 xfer->filename, buddy ? purple_buddy_get_alias(buddy) : xfer->who);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
699 purple_xfer_conversation_write(xfer, msg, FALSE);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
700 g_free(msg);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
701 }
4150
fd30caf1a296 [gaim-migrate @ 4369]
Rob Flynn <gaim@robflynn.com>
parents: 3730
diff changeset
702
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
703 purple_xfer_add(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
704 xfer->ops.init(xfer);
10259
87f90d97e4fc [gaim-migrate @ 11402]
Tim Ringenbach <marv@pidgin.im>
parents: 10246
diff changeset
705
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
706 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
707
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
708 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
709 purple_xfer_request_denied(PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
710 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
711 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
712
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
713 purple_debug_misc("xfer", "xfer %p denied\n", xfer);
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
714
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
715 if (xfer->ops.request_denied != NULL)
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
716 xfer->ops.request_denied(xfer);
5164
dda3bf92f195 [gaim-migrate @ 5528]
Mark Doliner <markdoliner@pidgin.im>
parents: 5146
diff changeset
717
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
718 purple_xfer_unref(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
719 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
720
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
721 PurpleXferType
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
722 purple_xfer_get_type(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
723 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
724 g_return_val_if_fail(xfer != NULL, PURPLE_XFER_UNKNOWN);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
725
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
726 return xfer->type;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
727 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
728
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
729 PurpleAccount *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
730 purple_xfer_get_account(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
731 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
732 g_return_val_if_fail(xfer != NULL, NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
733
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
734 return xfer->account;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
735 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
736
17852
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
737 const char *
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
738 purple_xfer_get_remote_user(const PurpleXfer *xfer)
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
739 {
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
740 g_return_val_if_fail(xfer != NULL, NULL);
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
741 return xfer->who;
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
742 }
174c0d122a79 Add new function purple_xfer_get_remote_user.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17293
diff changeset
743
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
744 PurpleXferStatusType
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
745 purple_xfer_get_status(const PurpleXfer *xfer)
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
746 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
747 g_return_val_if_fail(xfer != NULL, PURPLE_XFER_STATUS_UNKNOWN);
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
748
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
749 return xfer->status;
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
750 }
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
751
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
752 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
753 purple_xfer_is_canceled(const PurpleXfer *xfer)
7738
ebb766ef2146 [gaim-migrate @ 8383]
Tim Ringenbach <marv@pidgin.im>
parents: 7272
diff changeset
754 {
ebb766ef2146 [gaim-migrate @ 8383]
Tim Ringenbach <marv@pidgin.im>
parents: 7272
diff changeset
755 g_return_val_if_fail(xfer != NULL, TRUE);
ebb766ef2146 [gaim-migrate @ 8383]
Tim Ringenbach <marv@pidgin.im>
parents: 7272
diff changeset
756
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
757 if ((purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
758 (purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_REMOTE))
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
759 return TRUE;
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
760 else
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
761 return FALSE;
7738
ebb766ef2146 [gaim-migrate @ 8383]
Tim Ringenbach <marv@pidgin.im>
parents: 7272
diff changeset
762 }
ebb766ef2146 [gaim-migrate @ 8383]
Tim Ringenbach <marv@pidgin.im>
parents: 7272
diff changeset
763
4539
44671e1ce14e [gaim-migrate @ 4818]
Christian Hammond <chipx86@chipx86.com>
parents: 4538
diff changeset
764 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
765 purple_xfer_is_completed(const PurpleXfer *xfer)
4539
44671e1ce14e [gaim-migrate @ 4818]
Christian Hammond <chipx86@chipx86.com>
parents: 4538
diff changeset
766 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
767 g_return_val_if_fail(xfer != NULL, TRUE);
4539
44671e1ce14e [gaim-migrate @ 4818]
Christian Hammond <chipx86@chipx86.com>
parents: 4538
diff changeset
768
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
769 return (purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_DONE);
4539
44671e1ce14e [gaim-migrate @ 4818]
Christian Hammond <chipx86@chipx86.com>
parents: 4538
diff changeset
770 }
44671e1ce14e [gaim-migrate @ 4818]
Christian Hammond <chipx86@chipx86.com>
parents: 4538
diff changeset
771
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
772 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
773 purple_xfer_get_filename(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
774 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
775 g_return_val_if_fail(xfer != NULL, NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
776
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
777 return xfer->filename;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
778 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
779
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
780 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
781 purple_xfer_get_local_filename(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
782 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
783 g_return_val_if_fail(xfer != NULL, NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
784
4605
67526771e679 [gaim-migrate @ 4892]
Mark Doliner <markdoliner@pidgin.im>
parents: 4595
diff changeset
785 return xfer->local_filename;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
786 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
787
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
788 size_t
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
789 purple_xfer_get_bytes_sent(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
790 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
791 g_return_val_if_fail(xfer != NULL, 0);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
792
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
793 return xfer->bytes_sent;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
794 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
795
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
796 size_t
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
797 purple_xfer_get_bytes_remaining(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
798 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
799 g_return_val_if_fail(xfer != NULL, 0);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
800
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
801 return xfer->bytes_remaining;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
802 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
803
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
804 size_t
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
805 purple_xfer_get_size(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
806 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
807 g_return_val_if_fail(xfer != NULL, 0);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
808
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
809 return xfer->size;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
810 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
811
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
812 double
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
813 purple_xfer_get_progress(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
814 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
815 g_return_val_if_fail(xfer != NULL, 0.0);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
816
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
817 if (purple_xfer_get_size(xfer) == 0)
4517
998c580f7f56 [gaim-migrate @ 4795]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
818 return 0.0;
998c580f7f56 [gaim-migrate @ 4795]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
819
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
820 return ((double)purple_xfer_get_bytes_sent(xfer) /
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
821 (double)purple_xfer_get_size(xfer));
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
822 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
823
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
824 unsigned int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
825 purple_xfer_get_local_port(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
826 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
827 g_return_val_if_fail(xfer != NULL, -1);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
828
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
829 return xfer->local_port;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
830 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
831
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
832 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
833 purple_xfer_get_remote_ip(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
834 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
835 g_return_val_if_fail(xfer != NULL, NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
836
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
837 return xfer->remote_ip;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
838 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
839
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
840 unsigned int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
841 purple_xfer_get_remote_port(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
842 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
843 g_return_val_if_fail(xfer != NULL, -1);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
844
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
845 return xfer->remote_port;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
846 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
847
22338
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
848 time_t
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
849 purple_xfer_get_start_time(const PurpleXfer *xfer)
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
850 {
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
851 g_return_val_if_fail(xfer != NULL, 0);
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
852
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
853 return xfer->start_time;
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
854 }
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
855
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
856 time_t
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
857 purple_xfer_get_end_time(const PurpleXfer *xfer)
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
858 {
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
859 g_return_val_if_fail(xfer != NULL, 0);
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
860
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
861 return xfer->end_time;
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
862 }
d6a489105624 Add accessor and update finch to not touch the internals of PurpleXfer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22194
diff changeset
863
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
864 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
865 purple_xfer_set_completed(PurpleXfer *xfer, gboolean completed)
4538
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
866 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
867 PurpleXferUiOps *ui_ops;
4656
b676f986e7e3 [gaim-migrate @ 4967]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
868
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
869 g_return_if_fail(xfer != NULL);
4538
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
870
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
871 if (completed == TRUE) {
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
872 char *msg = NULL;
27655
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
873 PurpleConversation *conv;
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
874
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
875 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_DONE);
4656
b676f986e7e3 [gaim-migrate @ 4967]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
876
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
877 if (purple_xfer_get_filename(xfer) != NULL)
27655
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
878 {
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
879 char *filename = g_markup_escape_text(purple_xfer_get_filename(xfer), -1);
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
880 if (purple_xfer_get_local_filename(xfer)
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
881 && purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE)
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
882 {
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
883 char *local = g_markup_escape_text(purple_xfer_get_local_filename(xfer), -1);
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
884 msg = g_strdup_printf(_("Transfer of file <A HREF=\"file://%s\">%s</A> complete"),
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
885 local, filename);
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
886 g_free(local);
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
887 }
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
888 else
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
889 msg = g_strdup_printf(_("Transfer of file %s complete"),
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
890 filename);
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
891 g_free(filename);
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
892 }
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
893 else
25359
ea172b7ea601 The remainder of a patch from fqueze to fix some incorrect *printf() function
Daniel Atallah <datallah@pidgin.im>
parents: 24672
diff changeset
894 msg = g_strdup(_("File transfer complete"));
27655
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
895
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
896 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, xfer->who,
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
897 purple_xfer_get_account(xfer));
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
898
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
899 if (conv != NULL)
162b561fad5e Link-ify the filename when writing the "Transfer is complete" message to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
900 purple_conversation_write(conv, NULL, msg, PURPLE_MESSAGE_SYSTEM, time(NULL));
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
901 g_free(msg);
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
902 }
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
903
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
904 ui_ops = purple_xfer_get_ui_ops(xfer);
4656
b676f986e7e3 [gaim-migrate @ 4967]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
905
b676f986e7e3 [gaim-migrate @ 4967]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
906 if (ui_ops != NULL && ui_ops->update_progress != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
907 ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer));
4538
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
908 }
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
909
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
910 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
911 purple_xfer_set_message(PurpleXfer *xfer, const char *message)
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
912 {
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
913 g_return_if_fail(xfer != NULL);
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
914
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
915 g_free(xfer->message);
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13838
diff changeset
916 xfer->message = g_strdup(message);
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
917 }
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
918
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9932
diff changeset
919 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
920 purple_xfer_set_filename(PurpleXfer *xfer, const char *filename)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
921 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
922 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
923
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13838
diff changeset
924 g_free(xfer->filename);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13838
diff changeset
925 xfer->filename = g_strdup(filename);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
926 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
927
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
928 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
929 purple_xfer_set_local_filename(PurpleXfer *xfer, const char *filename)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
930 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
931 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
932
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13838
diff changeset
933 g_free(xfer->local_filename);
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13838
diff changeset
934 xfer->local_filename = g_strdup(filename);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
935 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
936
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
937 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
938 purple_xfer_set_size(PurpleXfer *xfer, size_t size)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
939 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
940 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
941
15322
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
942 xfer->size = size;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
943 xfer->bytes_remaining = xfer->size - purple_xfer_get_bytes_sent(xfer);
15322
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
944 }
4538
929fb97f4e7f [gaim-migrate @ 4817]
Nathan Walp <nwalp@pidgin.im>
parents: 4528
diff changeset
945
15322
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
946 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
947 purple_xfer_set_bytes_sent(PurpleXfer *xfer, size_t bytes_sent)
15322
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
948 {
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
949 g_return_if_fail(xfer != NULL);
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
950
cd268e368bc1 [gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents: 15280
diff changeset
951 xfer->bytes_sent = bytes_sent;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
952 xfer->bytes_remaining = purple_xfer_get_size(xfer) - bytes_sent;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
953 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
954
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
955 PurpleXferUiOps *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
956 purple_xfer_get_ui_ops(const PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
957 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
958 g_return_val_if_fail(xfer != NULL, NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
959
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
960 return xfer->ui_ops;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
961 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
962
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
963 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
964 purple_xfer_set_init_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *))
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
965 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
966 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
967
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
968 xfer->ops.init = fnc;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
969 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
970
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
971 void purple_xfer_set_request_denied_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *))
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
972 {
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
973 g_return_if_fail(xfer != NULL);
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
974
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
975 xfer->ops.request_denied = fnc;
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
976 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
977
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
978 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
979 purple_xfer_set_read_fnc(PurpleXfer *xfer, gssize (*fnc)(guchar **, PurpleXfer *))
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
980 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
981 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
982
5495
c4527631aea4 [gaim-migrate @ 5891]
Herman Bloggs <herman@bluedigits.com>
parents: 5494
diff changeset
983 xfer->ops.read = fnc;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
984 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
985
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
986 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
987 purple_xfer_set_write_fnc(PurpleXfer *xfer,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
988 gssize (*fnc)(const guchar *, size_t, PurpleXfer *))
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
989 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
990 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
991
5495
c4527631aea4 [gaim-migrate @ 5891]
Herman Bloggs <herman@bluedigits.com>
parents: 5494
diff changeset
992 xfer->ops.write = fnc;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
993 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
994
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
995 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
996 purple_xfer_set_ack_fnc(PurpleXfer *xfer,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
997 void (*fnc)(PurpleXfer *, const guchar *, size_t))
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
998 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
999 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1000
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1001 xfer->ops.ack = fnc;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1002 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1003
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1004 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1005 purple_xfer_set_start_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *))
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1006 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1007 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1008
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1009 xfer->ops.start = fnc;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1010 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1011
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1012 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1013 purple_xfer_set_end_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *))
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1014 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1015 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1016
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1017 xfer->ops.end = fnc;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1018 }
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1019
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1020 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1021 purple_xfer_set_cancel_send_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *))
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1022 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1023 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1024
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1025 xfer->ops.cancel_send = fnc;
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1026 }
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1027
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1028 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1029 purple_xfer_set_cancel_recv_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *))
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1030 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1031 g_return_if_fail(xfer != NULL);
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1032
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1033 xfer->ops.cancel_recv = fnc;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1034 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1035
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1036 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1037 purple_xfer_increase_buffer_size(PurpleXfer *xfer)
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1038 {
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1039 xfer->current_buffer_size = MIN(xfer->current_buffer_size * 1.5,
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1040 FT_MAX_BUFFER_SIZE);
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1041 }
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1042
12151
8002bb57756b [gaim-migrate @ 14452]
Richard Laager <rlaager@pidgin.im>
parents: 11934
diff changeset
1043 gssize
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1044 purple_xfer_read(PurpleXfer *xfer, guchar **buffer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1045 {
12151
8002bb57756b [gaim-migrate @ 14452]
Richard Laager <rlaager@pidgin.im>
parents: 11934
diff changeset
1046 gssize s, r;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1047
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1048 g_return_val_if_fail(xfer != NULL, 0);
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1049 g_return_val_if_fail(buffer != NULL, 0);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1050
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1051 if (purple_xfer_get_size(xfer) == 0)
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1052 s = xfer->current_buffer_size;
4517
998c580f7f56 [gaim-migrate @ 4795]
Christian Hammond <chipx86@chipx86.com>
parents: 4514
diff changeset
1053 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1054 s = MIN(purple_xfer_get_bytes_remaining(xfer), xfer->current_buffer_size);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1055
26373
105e5b66e8da fix a bug in libpurple that prevented receiving file transfers to be marked completed (in case the protocol uses an xfer->ops.read function)
Sulabh Mahajan <sulabh@pidgin.im>
parents: 25359
diff changeset
1056 if (xfer->ops.read != NULL) {
5495
c4527631aea4 [gaim-migrate @ 5891]
Herman Bloggs <herman@bluedigits.com>
parents: 5494
diff changeset
1057 r = (xfer->ops.read)(buffer, xfer);
26373
105e5b66e8da fix a bug in libpurple that prevented receiving file transfers to be marked completed (in case the protocol uses an xfer->ops.read function)
Sulabh Mahajan <sulabh@pidgin.im>
parents: 25359
diff changeset
1058 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1059 else {
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1060 *buffer = g_malloc0(s);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1061
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1062 r = read(xfer->fd, *buffer, s);
13011
b41d13bd682d [gaim-migrate @ 15364]
Daniel Atallah <datallah@pidgin.im>
parents: 12250
diff changeset
1063 if (r < 0 && errno == EAGAIN)
b41d13bd682d [gaim-migrate @ 15364]
Daniel Atallah <datallah@pidgin.im>
parents: 12250
diff changeset
1064 r = 0;
b41d13bd682d [gaim-migrate @ 15364]
Daniel Atallah <datallah@pidgin.im>
parents: 12250
diff changeset
1065 else if (r < 0)
b41d13bd682d [gaim-migrate @ 15364]
Daniel Atallah <datallah@pidgin.im>
parents: 12250
diff changeset
1066 r = -1;
13788
019bc2080927 [gaim-migrate @ 16198]
Daniel Atallah <datallah@pidgin.im>
parents: 13729
diff changeset
1067 else if (r == 0)
019bc2080927 [gaim-migrate @ 16198]
Daniel Atallah <datallah@pidgin.im>
parents: 13729
diff changeset
1068 r = -1;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1069 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1070
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1071 if (r == xfer->current_buffer_size)
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1072 /*
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1073 * We managed to read the entire buffer. This means our this
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1074 * network is fast and our buffer is too small, so make it
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1075 * bigger.
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1076 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1077 purple_xfer_increase_buffer_size(xfer);
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1078
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1079 return r;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1080 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1081
12151
8002bb57756b [gaim-migrate @ 14452]
Richard Laager <rlaager@pidgin.im>
parents: 11934
diff changeset
1082 gssize
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1083 purple_xfer_write(PurpleXfer *xfer, const guchar *buffer, gsize size)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1084 {
12151
8002bb57756b [gaim-migrate @ 14452]
Richard Laager <rlaager@pidgin.im>
parents: 11934
diff changeset
1085 gssize r, s;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1086
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1087 g_return_val_if_fail(xfer != NULL, 0);
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1088 g_return_val_if_fail(buffer != NULL, 0);
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1089 g_return_val_if_fail(size != 0, 0);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1090
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1091 s = MIN(purple_xfer_get_bytes_remaining(xfer), size);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1092
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8208
diff changeset
1093 if (xfer->ops.write != NULL) {
5495
c4527631aea4 [gaim-migrate @ 5891]
Herman Bloggs <herman@bluedigits.com>
parents: 5494
diff changeset
1094 r = (xfer->ops.write)(buffer, s, xfer);
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8208
diff changeset
1095 } else {
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1096 r = write(xfer->fd, buffer, s);
13011
b41d13bd682d [gaim-migrate @ 15364]
Daniel Atallah <datallah@pidgin.im>
parents: 12250
diff changeset
1097 if (r < 0 && errno == EAGAIN)
b41d13bd682d [gaim-migrate @ 15364]
Daniel Atallah <datallah@pidgin.im>
parents: 12250
diff changeset
1098 r = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1099 if ((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1100 purple_xfer_set_completed(xfer, TRUE);
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8208
diff changeset
1101 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1102
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1103 return r;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1104 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1105
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1106 static void
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1107 do_transfer(PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1108 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1109 PurpleXferUiOps *ui_ops;
11159
76ef02141bcb [gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents: 11084
diff changeset
1110 guchar *buffer = NULL;
12151
8002bb57756b [gaim-migrate @ 14452]
Richard Laager <rlaager@pidgin.im>
parents: 11934
diff changeset
1111 gssize r = 0;
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1112
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1113 ui_ops = purple_xfer_get_ui_ops(xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1114
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1115 if (xfer->type == PURPLE_XFER_RECEIVE) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1116 r = purple_xfer_read(xfer, &buffer);
8316
7de7b31679a2 [gaim-migrate @ 9040]
Nathan Walp <nwalp@pidgin.im>
parents: 8262
diff changeset
1117 if (r > 0) {
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1118 size_t wc;
28159
567c6a03a6ea Fix building on win32, which has #define write wpurple_write (and similar for read).
Paul Aurich <darkrain42@pidgin.im>
parents: 28156
diff changeset
1119 if (ui_ops && ui_ops->ui_write)
567c6a03a6ea Fix building on win32, which has #define write wpurple_write (and similar for read).
Paul Aurich <darkrain42@pidgin.im>
parents: 28156
diff changeset
1120 wc = ui_ops->ui_write(xfer, buffer, r);
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1121 else
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1122 wc = fwrite(buffer, 1, r, xfer->dest_fp);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1123
22194
3e48f2d3d083 Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@pidgin.im>
parents: 21985
diff changeset
1124 if (wc != r) {
3e48f2d3d083 Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@pidgin.im>
parents: 21985
diff changeset
1125 purple_debug_error("filetransfer", "Unable to write whole buffer.\n");
27944
e71e3e3134b3 ft: fwrite failing is a local error. Pointed out by kenshin.
Paul Aurich <darkrain42@pidgin.im>
parents: 27942
diff changeset
1126 purple_xfer_cancel_local(xfer);
28076
796f5a14f70b Fix a bunch of memory leaks reported by Josh Mueller. Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27993
diff changeset
1127 g_free(buffer);
22194
3e48f2d3d083 Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@pidgin.im>
parents: 21985
diff changeset
1128 return;
3e48f2d3d083 Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@pidgin.im>
parents: 21985
diff changeset
1129 }
28180
782b27dceaf7 ft: Set completion (for receiving) *after* writing the file.
Paul Aurich <darkrain42@pidgin.im>
parents: 28159
diff changeset
1130
782b27dceaf7 ft: Set completion (for receiving) *after* writing the file.
Paul Aurich <darkrain42@pidgin.im>
parents: 28159
diff changeset
1131 if ((purple_xfer_get_size(xfer) > 0) &&
782b27dceaf7 ft: Set completion (for receiving) *after* writing the file.
Paul Aurich <darkrain42@pidgin.im>
parents: 28159
diff changeset
1132 ((purple_xfer_get_bytes_sent(xfer)+r) >= purple_xfer_get_size(xfer)))
782b27dceaf7 ft: Set completion (for receiving) *after* writing the file.
Paul Aurich <darkrain42@pidgin.im>
parents: 28159
diff changeset
1133 purple_xfer_set_completed(xfer, TRUE);
17293
2b7fbca58d92 Fix file transfers aborting and mistakenly being marked as cancelled when they are actually complete. Fixes #814
Daniel Atallah <datallah@pidgin.im>
parents: 17089
diff changeset
1134 } else if(r < 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1135 purple_xfer_cancel_remote(xfer);
28076
796f5a14f70b Fix a bunch of memory leaks reported by Josh Mueller. Refs #9822.
Paul Aurich <darkrain42@pidgin.im>
parents: 27993
diff changeset
1136 g_free(buffer);
8316
7de7b31679a2 [gaim-migrate @ 9040]
Nathan Walp <nwalp@pidgin.im>
parents: 8262
diff changeset
1137 return;
13109
c5801934af5c [gaim-migrate @ 15470]
Daniel Atallah <datallah@pidgin.im>
parents: 13108
diff changeset
1138 }
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1139 } else if (xfer->type == PURPLE_XFER_SEND) {
29781
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1140 size_t result = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1141 size_t s = MIN(purple_xfer_get_bytes_remaining(xfer), xfer->current_buffer_size);
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1142 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
29821
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1143 gboolean read = TRUE;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1144
8351
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1145 /* this is so the prpl can keep the connection open
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1146 if it needs to for some odd reason. */
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1147 if (s == 0) {
9798
9da203982089 [gaim-migrate @ 10666]
Joe Shaw <joe@joeshaw.org>
parents: 9796
diff changeset
1148 if (xfer->watcher) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1149 purple_input_remove(xfer->watcher);
8351
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1150 xfer->watcher = 0;
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1151 }
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1152 return;
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1153 }
216d9836e839 [gaim-migrate @ 9075]
Tim Ringenbach <marv@pidgin.im>
parents: 8316
diff changeset
1154
29821
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1155 if (priv->buffer) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1156 if (priv->buffer->len < s) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1157 s -= priv->buffer->len;
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1158 read = TRUE;
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1159 } else {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1160 read = FALSE;
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1161 }
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1162 }
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1163
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1164 if (read) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1165 if (ui_ops && ui_ops->ui_read) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1166 gssize tmp = ui_ops->ui_read(xfer, &buffer, s);
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1167 if (tmp == 0) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1168 /*
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1169 * The UI claimed it was ready, but didn't have any data for
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1170 * us... It will call purple_xfer_ui_ready when ready, which
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1171 * sets back up this watcher.
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1172 */
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1173 if (xfer->watcher != 0) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1174 purple_input_remove(xfer->watcher);
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1175 xfer->watcher = 0;
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1176 }
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1177
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1178 /* Need to indicate the prpl is still ready... */
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1179 priv->ready |= PURPLE_XFER_READY_PRPL;
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1180
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1181 g_return_if_reached();
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1182 } else if (tmp < 0) {
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1183 purple_debug_error("filetransfer", "Unable to read whole buffer.\n");
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1184 purple_xfer_cancel_local(xfer);
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1185 return;
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1186 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1187
29821
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1188 result = tmp;
8c85f494737a ft: Apply QuLogic's fix from d6b03d30f4 to the UI side too.
Paul Aurich <darkrain42@pidgin.im>
parents: 29820
diff changeset
1189 } else {
29781
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1190 buffer = g_malloc(s);
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1191 result = fread(buffer, 1, s, xfer->dest_fp);
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1192 if (result != s) {
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1193 purple_debug_error("filetransfer", "Unable to read whole buffer.\n");
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1194 purple_xfer_cancel_local(xfer);
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1195 g_free(buffer);
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1196 return;
5ef6c9b585f8 ft: Don't try to read from the source file if the byte array already holds
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1197 }
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1198 }
22194
3e48f2d3d083 Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@pidgin.im>
parents: 21985
diff changeset
1199 }
29822
7c6c2df6f9a2 whitespace trimming
Paul Aurich <darkrain42@pidgin.im>
parents: 29821
diff changeset
1200
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1201 if (priv->buffer) {
29968
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1202 g_byte_array_append(priv->buffer, buffer, result);
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1203 g_free(buffer);
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1204 buffer = priv->buffer->data;
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1205 result = priv->buffer->len;
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1206 }
29822
7c6c2df6f9a2 whitespace trimming
Paul Aurich <darkrain42@pidgin.im>
parents: 29821
diff changeset
1207
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1208 r = purple_xfer_write(xfer, buffer, result);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1209
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8208
diff changeset
1210 if (r == -1) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1211 purple_xfer_cancel_remote(xfer);
29968
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1212 if (!priv->buffer)
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1213 /* We don't free buffer if priv->buffer is set, because in
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1214 that case buffer doesn't belong to us. */
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1215 g_free(buffer);
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8208
diff changeset
1216 return;
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1217 } else if (r == result) {
15280
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1218 /*
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1219 * We managed to write the entire buffer. This means our
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1220 * network is fast and our buffer is too small, so make it
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1221 * bigger.
9df6112da532 [gaim-migrate @ 18008]
Mark Doliner <markdoliner@pidgin.im>
parents: 15161
diff changeset
1222 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1223 purple_xfer_increase_buffer_size(xfer);
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1224 } else {
29822
7c6c2df6f9a2 whitespace trimming
Paul Aurich <darkrain42@pidgin.im>
parents: 29821
diff changeset
1225 if (ui_ops && ui_ops->data_not_sent)
7c6c2df6f9a2 whitespace trimming
Paul Aurich <darkrain42@pidgin.im>
parents: 29821
diff changeset
1226 ui_ops->data_not_sent(xfer, buffer + r, result - r);
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1227 }
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1228
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1229 if (priv->buffer) {
29822
7c6c2df6f9a2 whitespace trimming
Paul Aurich <darkrain42@pidgin.im>
parents: 29821
diff changeset
1230 /*
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1231 * Remove what we wrote
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1232 * If we wrote the whole buffer the byte array will be empty
29968
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1233 * Otherwise we'll keep what wasn't sent for next time.
29533
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1234 */
ca223fea0a1e Kill off the use of fseek for non-seekable streams in file transfers.
Raouf M. Bencheraiet <foufou33@gmail.com>
parents: 28659
diff changeset
1235 buffer = NULL;
29968
1bab736e15da Does anyone know the purpose of the ui_write, ui_read and data_not_sent
Mark Doliner <markdoliner@pidgin.im>
parents: 29822
diff changeset
1236 g_byte_array_remove_range(priv->buffer, 0, r);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1237 }
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1238 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1239
13108
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1240 if (r > 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1241 if (purple_xfer_get_size(xfer) > 0)
13108
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1242 xfer->bytes_remaining -= r;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1243
13108
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1244 xfer->bytes_sent += r;
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1245
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1246 if (xfer->ops.ack != NULL)
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1247 xfer->ops.ack(xfer, buffer, r);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1248
13108
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1249 g_free(buffer);
4594
a96954344300 [gaim-migrate @ 4879]
Mark Doliner <markdoliner@pidgin.im>
parents: 4582
diff changeset
1250
13108
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1251 if (ui_ops != NULL && ui_ops->update_progress != NULL)
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1252 ui_ops->update_progress(xfer,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1253 purple_xfer_get_progress(xfer));
13108
9a5cd09fd9cb [gaim-migrate @ 15469]
Daniel Atallah <datallah@pidgin.im>
parents: 13011
diff changeset
1254 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1255
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1256 if (purple_xfer_is_completed(xfer))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1257 purple_xfer_end(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1258 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1259
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1260 static void
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1261 transfer_cb(gpointer data, gint source, PurpleInputCondition condition)
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1262 {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1263 PurpleXfer *xfer = data;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1264
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1265 if (xfer->dest_fp == NULL) {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1266 /* The UI is moderating its side manually */
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1267 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1268 if (0 == (priv->ready & PURPLE_XFER_READY_UI)) {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1269 priv->ready |= PURPLE_XFER_READY_PRPL;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1270
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1271 purple_input_remove(xfer->watcher);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1272 xfer->watcher = 0;
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1273
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1274 purple_debug_misc("xfer", "prpl is ready on ft %p, waiting for UI\n", xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1275 return;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1276 }
29232
a94f1f9cdcd2 ft: Fix ui_ops->ui_read being called too often (when it's not ready).
Paul Aurich <darkrain42@pidgin.im>
parents: 29168
diff changeset
1277
a94f1f9cdcd2 ft: Fix ui_ops->ui_read being called too often (when it's not ready).
Paul Aurich <darkrain42@pidgin.im>
parents: 29168
diff changeset
1278 priv->ready = PURPLE_XFER_READY_NONE;
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1279 }
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1280
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1281 do_transfer(xfer);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1282 }
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1283
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1284 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1285 begin_transfer(PurpleXfer *xfer, PurpleInputCondition cond)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1286 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1287 PurpleXferType type = purple_xfer_get_type(xfer);
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1288 PurpleXferUiOps *ui_ops = purple_xfer_get_ui_ops(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1289
28159
567c6a03a6ea Fix building on win32, which has #define write wpurple_write (and similar for read).
Paul Aurich <darkrain42@pidgin.im>
parents: 28156
diff changeset
1290 if (ui_ops == NULL || (ui_ops->ui_read == NULL && ui_ops->ui_write == NULL)) {
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1291 xfer->dest_fp = g_fopen(purple_xfer_get_local_filename(xfer),
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1292 type == PURPLE_XFER_RECEIVE ? "wb" : "rb");
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1293
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1294 if (xfer->dest_fp == NULL) {
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1295 purple_xfer_show_file_error(xfer, purple_xfer_get_local_filename(xfer));
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1296 purple_xfer_cancel_local(xfer);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1297 return;
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1298 }
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1299
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1300 fseek(xfer->dest_fp, xfer->bytes_sent, SEEK_SET);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1301 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1302
28152
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1303 if (xfer->fd != -1)
17089
b27c8579750b Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16490
diff changeset
1304 xfer->watcher = purple_input_add(xfer->fd, cond, transfer_cb, xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1305
13599
b6369e541654 [gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents: 13595
diff changeset
1306 xfer->start_time = time(NULL);
b6369e541654 [gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents: 13595
diff changeset
1307
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1308 if (xfer->ops.start != NULL)
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1309 xfer->ops.start(xfer);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1310 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1311
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1312 static void
14183
bdde840e984c [gaim-migrate @ 16755]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1313 connect_cb(gpointer data, gint source, const gchar *error_message)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1314 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1315 PurpleXfer *xfer = (PurpleXfer *)data;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1316
21676
dabfb5216949 Fix #3983 by canceling the file transfer when connecting to the remote host fails.
Daniel Atallah <datallah@pidgin.im>
parents: 21630
diff changeset
1317 if (source < 0) {
dabfb5216949 Fix #3983 by canceling the file transfer when connecting to the remote host fails.
Daniel Atallah <datallah@pidgin.im>
parents: 21630
diff changeset
1318 purple_xfer_cancel_local(xfer);
dabfb5216949 Fix #3983 by canceling the file transfer when connecting to the remote host fails.
Daniel Atallah <datallah@pidgin.im>
parents: 21630
diff changeset
1319 return;
dabfb5216949 Fix #3983 by canceling the file transfer when connecting to the remote host fails.
Daniel Atallah <datallah@pidgin.im>
parents: 21630
diff changeset
1320 }
dabfb5216949 Fix #3983 by canceling the file transfer when connecting to the remote host fails.
Daniel Atallah <datallah@pidgin.im>
parents: 21630
diff changeset
1321
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1322 xfer->fd = source;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1323
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1324 begin_transfer(xfer, PURPLE_INPUT_READ);
3609
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1325 }
6ca2fef0003e [gaim-migrate @ 3722]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1326
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1327 void
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1328 purple_xfer_ui_ready(PurpleXfer *xfer)
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1329 {
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1330 PurpleInputCondition cond;
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1331 PurpleXferType type;
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1332 PurpleXferPrivData *priv;
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1333
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1334 g_return_if_fail(xfer != NULL);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1335
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1336 priv = g_hash_table_lookup(xfers_data, xfer);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1337 priv->ready |= PURPLE_XFER_READY_UI;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1338
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1339 if (0 == (priv->ready & PURPLE_XFER_READY_PRPL)) {
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1340 purple_debug_misc("xfer", "UI is ready on ft %p, waiting for prpl\n", xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1341 return;
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1342 }
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1343
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1344 purple_debug_misc("xfer", "UI (and prpl) ready on ft %p, so proceeding\n", xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1345
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1346 type = purple_xfer_get_type(xfer);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1347 if (type == PURPLE_XFER_SEND)
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1348 cond = PURPLE_INPUT_WRITE;
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1349 else /* if (type == PURPLE_XFER_RECEIVE) */
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1350 cond = PURPLE_INPUT_READ;
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1351
28153
d90df2a6bcd5 ft: Fix an issue with re-setting xfer->watcher when there is no fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28152
diff changeset
1352 if (xfer->watcher == 0 && xfer->fd != -1)
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1353 xfer->watcher = purple_input_add(xfer->fd, cond, transfer_cb, xfer);
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1354
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1355 priv->ready = PURPLE_XFER_READY_NONE;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1356
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1357 do_transfer(xfer);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1358 }
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1359
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1360 void
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1361 purple_xfer_prpl_ready(PurpleXfer *xfer)
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1362 {
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1363 PurpleXferPrivData *priv;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1364
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1365 g_return_if_fail(xfer != NULL);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1366
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1367 priv = g_hash_table_lookup(xfers_data, xfer);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1368 priv->ready |= PURPLE_XFER_READY_PRPL;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1369
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1370 /* I don't think fwrite/fread are ever *not* ready */
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1371 if (xfer->dest_fp == NULL && 0 == (priv->ready & PURPLE_XFER_READY_UI)) {
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1372 purple_debug_misc("xfer", "prpl is ready on ft %p, waiting for UI\n", xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1373 return;
29168
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1374 }
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1375
585ce277cad3 ft: Add some useful debug logging.
Paul Aurich <darkrain42@pidgin.im>
parents: 29159
diff changeset
1376 purple_debug_misc("xfer", "Prpl (and UI) ready on ft %p, so proceeding\n", xfer);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1377
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1378 priv->ready = PURPLE_XFER_READY_NONE;
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1379
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1380 do_transfer(xfer);
28150
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1381 }
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1382
1213ec1efcf8 ft: Allow the UI to overloadthe use of fread/fwrite. Closes #9844.
Jan Kaluza <hanzz.k@gmail.com>
parents: 28076
diff changeset
1383 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1384 purple_xfer_start(PurpleXfer *xfer, int fd, const char *ip,
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1385 unsigned int port)
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1386 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1387 PurpleInputCondition cond;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1388 PurpleXferType type;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1389
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1390 g_return_if_fail(xfer != NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1391 g_return_if_fail(purple_xfer_get_type(xfer) != PURPLE_XFER_UNKNOWN);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1392
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1393 type = purple_xfer_get_type(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1394
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1395 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_STARTED);
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
1396
28152
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1397 /*
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1398 * FIXME 3.0.0 -- there's too much broken code depending on fd == 0
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1399 * meaning "don't use a real fd"
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1400 */
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1401 if (fd == 0)
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1402 fd = -1;
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1403
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1404 if (type == PURPLE_XFER_RECEIVE) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1405 cond = PURPLE_INPUT_READ;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1406
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1407 if (ip != NULL) {
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1408 xfer->remote_ip = g_strdup(ip);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1409 xfer->remote_port = port;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1410
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1411 /* Establish a file descriptor. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1412 purple_proxy_connect(NULL, xfer->account, xfer->remote_ip,
14170
f611621bc8a0 [gaim-migrate @ 16742]
Mark Doliner <markdoliner@pidgin.im>
parents: 14151
diff changeset
1413 xfer->remote_port, connect_cb, xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1414
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1415 return;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1416 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1417 else {
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1418 xfer->fd = fd;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1419 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1420 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1421 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1422 cond = PURPLE_INPUT_WRITE;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1423
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1424 xfer->fd = fd;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1425 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1426
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1427 begin_transfer(xfer, cond);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1428 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1429
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1430 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1431 purple_xfer_end(PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1432 {
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1433 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1434
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1435 /* See if we are actually trying to cancel this. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1436 if (!purple_xfer_is_completed(xfer)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1437 purple_xfer_cancel_local(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1438 return;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1439 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1440
13599
b6369e541654 [gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents: 13595
diff changeset
1441 xfer->end_time = time(NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1442 if (xfer->ops.end != NULL)
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1443 xfer->ops.end(xfer);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1444
4521
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1445 if (xfer->watcher != 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1446 purple_input_remove(xfer->watcher);
4521
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1447 xfer->watcher = 0;
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1448 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1449
28152
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1450 if (xfer->fd != -1)
4521
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1451 close(xfer->fd);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1452
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1453 if (xfer->dest_fp != NULL) {
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1454 fclose(xfer->dest_fp);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1455 xfer->dest_fp = NULL;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1456 }
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
1457
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1458 purple_xfer_unref(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1459 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1460
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1461 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1462 purple_xfer_add(PurpleXfer *xfer)
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1463 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1464 PurpleXferUiOps *ui_ops;
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1465
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1466 g_return_if_fail(xfer != NULL);
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1467
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1468 ui_ops = purple_xfer_get_ui_ops(xfer);
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1469
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1470 if (ui_ops != NULL && ui_ops->add_xfer != NULL)
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1471 ui_ops->add_xfer(xfer);
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1472 }
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1473
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1474 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1475 purple_xfer_cancel_local(PurpleXfer *xfer)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1476 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1477 PurpleXferUiOps *ui_ops;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10654
diff changeset
1478 char *msg = NULL;
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1479
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1480 g_return_if_fail(xfer != NULL);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1481
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1482 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_LOCAL);
13599
b6369e541654 [gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents: 13595
diff changeset
1483 xfer->end_time = time(NULL);
7738
ebb766ef2146 [gaim-migrate @ 8383]
Tim Ringenbach <marv@pidgin.im>
parents: 7272
diff changeset
1484
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1485 if (purple_xfer_get_filename(xfer) != NULL)
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1486 {
27797
10f6bc89044b Normalize on 'cancelled'
Paul Aurich <darkrain42@pidgin.im>
parents: 27655
diff changeset
1487 msg = g_strdup_printf(_("You cancelled the transfer of %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1488 purple_xfer_get_filename(xfer));
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1489 }
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1490 else
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1491 {
25359
ea172b7ea601 The remainder of a patch from fqueze to fix some incorrect *printf() function
Daniel Atallah <datallah@pidgin.im>
parents: 24672
diff changeset
1492 msg = g_strdup(_("File transfer cancelled"));
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1493 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1494 purple_xfer_conversation_write(xfer, msg, FALSE);
9932
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
1495 g_free(msg);
5e7cc9975595 [gaim-migrate @ 10824]
Dave West <kat@users.sourceforge.net>
parents: 9805
diff changeset
1496
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1497 if (purple_xfer_get_type(xfer) == PURPLE_XFER_SEND)
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1498 {
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1499 if (xfer->ops.cancel_send != NULL)
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1500 xfer->ops.cancel_send(xfer);
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1501 }
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1502 else
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1503 {
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1504 if (xfer->ops.cancel_recv != NULL)
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1505 xfer->ops.cancel_recv(xfer);
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1506 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1507
4521
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1508 if (xfer->watcher != 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1509 purple_input_remove(xfer->watcher);
4521
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1510 xfer->watcher = 0;
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1511 }
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1512
28152
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1513 if (xfer->fd != -1)
4521
c67f31cc18f4 [gaim-migrate @ 4799]
Christian Hammond <chipx86@chipx86.com>
parents: 4518
diff changeset
1514 close(xfer->fd);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1515
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1516 if (xfer->dest_fp != NULL) {
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1517 fclose(xfer->dest_fp);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1518 xfer->dest_fp = NULL;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1519 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1520
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1521 ui_ops = purple_xfer_get_ui_ops(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1522
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1523 if (ui_ops != NULL && ui_ops->cancel_local != NULL)
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1524 ui_ops->cancel_local(xfer);
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1525
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1526 xfer->bytes_remaining = 0;
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
1527
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1528 purple_xfer_unref(xfer);
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1529 }
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1530
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1531 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1532 purple_xfer_cancel_remote(PurpleXfer *xfer)
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1533 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1534 PurpleXferUiOps *ui_ops;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10654
diff changeset
1535 gchar *msg;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1536 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1537 PurpleBuddy *buddy;
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1538
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1539 g_return_if_fail(xfer != NULL);
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1540
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1541 purple_request_close_with_handle(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1542 purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_REMOTE);
13599
b6369e541654 [gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents: 13595
diff changeset
1543 xfer->end_time = time(NULL);
9771
42bd06e5b1b3 [gaim-migrate @ 10639]
Dave West <kat@users.sourceforge.net>
parents: 9523
diff changeset
1544
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1545 account = purple_xfer_get_account(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1546 buddy = purple_find_buddy(account, xfer->who);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
1547
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1548 if (purple_xfer_get_filename(xfer) != NULL)
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1549 {
27797
10f6bc89044b Normalize on 'cancelled'
Paul Aurich <darkrain42@pidgin.im>
parents: 27655
diff changeset
1550 msg = g_strdup_printf(_("%s cancelled the transfer of %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1551 buddy ? purple_buddy_get_alias(buddy) : xfer->who, purple_xfer_get_filename(xfer));
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1552 }
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1553 else
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1554 {
27797
10f6bc89044b Normalize on 'cancelled'
Paul Aurich <darkrain42@pidgin.im>
parents: 27655
diff changeset
1555 msg = g_strdup_printf(_("%s cancelled the file transfer"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1556 buddy ? purple_buddy_get_alias(buddy) : xfer->who);
10470
1a070302fa8c [gaim-migrate @ 11752]
Evan Schoenberg <evands@pidgin.im>
parents: 10259
diff changeset
1557 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1558 purple_xfer_conversation_write(xfer, msg, TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1559 purple_xfer_error(purple_xfer_get_type(xfer), account, xfer->who, msg);
9771
42bd06e5b1b3 [gaim-migrate @ 10639]
Dave West <kat@users.sourceforge.net>
parents: 9523
diff changeset
1560 g_free(msg);
42bd06e5b1b3 [gaim-migrate @ 10639]
Dave West <kat@users.sourceforge.net>
parents: 9523
diff changeset
1561
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1562 if (purple_xfer_get_type(xfer) == PURPLE_XFER_SEND)
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1563 {
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1564 if (xfer->ops.cancel_send != NULL)
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1565 xfer->ops.cancel_send(xfer);
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1566 }
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1567 else
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1568 {
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1569 if (xfer->ops.cancel_recv != NULL)
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1570 xfer->ops.cancel_recv(xfer);
7272
f8335b8f1f1c [gaim-migrate @ 7849]
Christian Hammond <chipx86@chipx86.com>
parents: 7035
diff changeset
1571 }
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1572
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1573 if (xfer->watcher != 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1574 purple_input_remove(xfer->watcher);
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1575 xfer->watcher = 0;
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1576 }
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1577
28152
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28150
diff changeset
1578 if (xfer->fd != -1)
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1579 close(xfer->fd);
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1580
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1581 if (xfer->dest_fp != NULL) {
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1582 fclose(xfer->dest_fp);
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1583 xfer->dest_fp = NULL;
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1584 }
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1585
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1586 ui_ops = purple_xfer_get_ui_ops(xfer);
4675
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1587
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1588 if (ui_ops != NULL && ui_ops->cancel_remote != NULL)
8e0a7b537ca2 [gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents: 4656
diff changeset
1589 ui_ops->cancel_remote(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1590
4528
5efe7af8195d [gaim-migrate @ 4806]
Christian Hammond <chipx86@chipx86.com>
parents: 4521
diff changeset
1591 xfer->bytes_remaining = 0;
7805
6045c467441e [gaim-migrate @ 8452]
Tim Ringenbach <marv@pidgin.im>
parents: 7738
diff changeset
1592
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1593 purple_xfer_unref(xfer);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1594 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1595
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1596 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1597 purple_xfer_error(PurpleXferType type, PurpleAccount *account, const char *who, const char *msg)
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1598 {
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1599 char *title;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1600
6240
0390b27fe09d [gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1601 g_return_if_fail(msg != NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1602 g_return_if_fail(type != PURPLE_XFER_UNKNOWN);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1603
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
1604 if (account) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1605 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1606 buddy = purple_find_buddy(account, who);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
1607 if (buddy)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1608 who = purple_buddy_get_alias(buddy);
10654
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
1609 }
b2dd3be1b087 [gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents: 10589
diff changeset
1610
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1611 if (type == PURPLE_XFER_SEND)
11231
1c5968418ca4 [gaim-migrate @ 13371]
Richard Laager <rlaager@pidgin.im>
parents: 11159
diff changeset
1612 title = g_strdup_printf(_("File transfer to %s failed."), who);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1613 else
11231
1c5968418ca4 [gaim-migrate @ 13371]
Richard Laager <rlaager@pidgin.im>
parents: 11159
diff changeset
1614 title = g_strdup_printf(_("File transfer from %s failed."), who);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1615
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1616 purple_notify_error(NULL, NULL, title, msg);
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1617
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1618 g_free(title);
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1619 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1620
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1621 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1622 purple_xfer_update_progress(PurpleXfer *xfer)
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1623 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1624 PurpleXferUiOps *ui_ops;
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1625
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1626 g_return_if_fail(xfer != NULL);
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1627
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1628 ui_ops = purple_xfer_get_ui_ops(xfer);
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1629 if (ui_ops != NULL && ui_ops->update_progress != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1630 ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer));
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1631 }
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1632
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1633 const void *
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1634 purple_xfer_get_thumbnail_data(const PurpleXfer *xfer)
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1635 {
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1636 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1637
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1638 return priv->thumbnail_data;
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1639 }
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1640
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1641 gsize
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1642 purple_xfer_get_thumbnail_size(const PurpleXfer *xfer)
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1643 {
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1644 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1645
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1646 return priv->thumbnail_size;
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1647 }
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1648
30113
f60cbf3b3ca9 Allow PRPLs to specify the image formats acceptable for thumbnails (in
Marcus Lundblad <malu@pidgin.im>
parents: 29846
diff changeset
1649 const gchar *
f60cbf3b3ca9 Allow PRPLs to specify the image formats acceptable for thumbnails (in
Marcus Lundblad <malu@pidgin.im>
parents: 29846
diff changeset
1650 purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer)
f60cbf3b3ca9 Allow PRPLs to specify the image formats acceptable for thumbnails (in
Marcus Lundblad <malu@pidgin.im>
parents: 29846
diff changeset
1651 {
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1652 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1653
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1654 return priv->thumbnail_mimetype;
30113
f60cbf3b3ca9 Allow PRPLs to specify the image formats acceptable for thumbnails (in
Marcus Lundblad <malu@pidgin.im>
parents: 29846
diff changeset
1655 }
f60cbf3b3ca9 Allow PRPLs to specify the image formats acceptable for thumbnails (in
Marcus Lundblad <malu@pidgin.im>
parents: 29846
diff changeset
1656
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1657 void
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1658 purple_xfer_set_thumbnail(PurpleXfer *xfer, gconstpointer thumbnail,
30113
f60cbf3b3ca9 Allow PRPLs to specify the image formats acceptable for thumbnails (in
Marcus Lundblad <malu@pidgin.im>
parents: 29846
diff changeset
1659 gsize size, const gchar *mimetype)
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1660 {
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1661 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1662
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1663 g_free(priv->thumbnail_data);
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1664 g_free(priv->thumbnail_mimetype);
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1665
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1666 if (thumbnail && size > 0) {
30115
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1667 priv->thumbnail_data = g_memdup(thumbnail, size);
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1668 priv->thumbnail_size = size;
619d2b5758c0 Hide the thumbnail-related stuff from the PurpleXfer struct to
Marcus Lundblad <malu@pidgin.im>
parents: 30114
diff changeset
1669 priv->thumbnail_mimetype = g_strdup(mimetype);
30124
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1670 } else {
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1671 priv->thumbnail_data = NULL;
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1672 priv->thumbnail_size = 0;
e84a06d70326 Minor cleanup.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30123
diff changeset
1673 priv->thumbnail_mimetype = NULL;
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1674 }
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1675 }
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1676
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1677 void
30114
8472e53fbbfc Set desired image formats for thumbnails as a parameter to
Marcus Lundblad <malu@pidgin.im>
parents: 30113
diff changeset
1678 purple_xfer_prepare_thumbnail(PurpleXfer *xfer, const gchar *formats)
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1679 {
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1680 if (xfer->ui_ops->add_thumbnail) {
30114
8472e53fbbfc Set desired image formats for thumbnails as a parameter to
Marcus Lundblad <malu@pidgin.im>
parents: 30113
diff changeset
1681 xfer->ui_ops->add_thumbnail(xfer, formats);
27419
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1682 }
5cdc131e86a2 Added a skeleton for functions to set and get a thumbnail image associated
Marcus Lundblad <malu@pidgin.im>
parents: 26726
diff changeset
1683 }
8585
23db71a2d432 [gaim-migrate @ 9335]
Pekka Riikonen <priikone@silcnet.org>
parents: 8351
diff changeset
1684
6263
6fec763a314c [gaim-migrate @ 6760]
Christian Hammond <chipx86@chipx86.com>
parents: 6242
diff changeset
1685 /**************************************************************************
6fec763a314c [gaim-migrate @ 6760]
Christian Hammond <chipx86@chipx86.com>
parents: 6242
diff changeset
1686 * File Transfer Subsystem API
6fec763a314c [gaim-migrate @ 6760]
Christian Hammond <chipx86@chipx86.com>
parents: 6242
diff changeset
1687 **************************************************************************/
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1688 void *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1689 purple_xfers_get_handle(void) {
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1690 static int handle = 0;
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1691
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1692 return &handle;
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1693 }
6241
34d166a31152 [gaim-migrate @ 6735]
Christian Hammond <chipx86@chipx86.com>
parents: 6240
diff changeset
1694
34d166a31152 [gaim-migrate @ 6735]
Christian Hammond <chipx86@chipx86.com>
parents: 6240
diff changeset
1695 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1696 purple_xfers_init(void) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1697 void *handle = purple_xfers_get_handle();
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1698
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1699 xfers_data = g_hash_table_new_full(g_direct_hash, g_direct_equal,
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1700 NULL, purple_xfer_priv_data_destroy);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1701
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1702 /* register signals */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1703 purple_signal_register(handle, "file-recv-accept",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1704 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1705 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1706 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1707 purple_signal_register(handle, "file-send-accept",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1708 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1709 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1710 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1711 purple_signal_register(handle, "file-recv-start",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1712 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1713 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1714 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1715 purple_signal_register(handle, "file-send-start",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1716 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1717 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1718 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1719 purple_signal_register(handle, "file-send-cancel",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1720 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1721 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1722 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1723 purple_signal_register(handle, "file-recv-cancel",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1724 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1725 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1726 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1727 purple_signal_register(handle, "file-send-complete",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1728 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1729 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1730 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1731 purple_signal_register(handle, "file-recv-complete",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1732 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1733 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1734 PURPLE_SUBTYPE_XFER));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1735 purple_signal_register(handle, "file-recv-request",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1736 purple_marshal_VOID__POINTER, NULL, 1,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1737 purple_value_new(PURPLE_TYPE_SUBTYPE,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1738 PURPLE_SUBTYPE_XFER));
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1739 }
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1740
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1741 void
21143
239b2f43bef5 Make purple_xfers_uninit, purple_network_uninit, and purple_plugins_uninit
Etan Reisner <deryni@pidgin.im>
parents: 20661
diff changeset
1742 purple_xfers_uninit(void)
239b2f43bef5 Make purple_xfers_uninit, purple_network_uninit, and purple_plugins_uninit
Etan Reisner <deryni@pidgin.im>
parents: 20661
diff changeset
1743 {
239b2f43bef5 Make purple_xfers_uninit, purple_network_uninit, and purple_plugins_uninit
Etan Reisner <deryni@pidgin.im>
parents: 20661
diff changeset
1744 void *handle = purple_xfers_get_handle();
239b2f43bef5 Make purple_xfers_uninit, purple_network_uninit, and purple_plugins_uninit
Etan Reisner <deryni@pidgin.im>
parents: 20661
diff changeset
1745
239b2f43bef5 Make purple_xfers_uninit, purple_network_uninit, and purple_plugins_uninit
Etan Reisner <deryni@pidgin.im>
parents: 20661
diff changeset
1746 purple_signals_disconnect_by_handle(handle);
239b2f43bef5 Make purple_xfers_uninit, purple_network_uninit, and purple_plugins_uninit
Etan Reisner <deryni@pidgin.im>
parents: 20661
diff changeset
1747 purple_signals_unregister_by_instance(handle);
28156
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1748
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1749 g_hash_table_destroy(xfers_data);
0a75e2463576 ft: Add infrastructure to allow a prpl to moderate when to send packets.
Paul Aurich <darkrain42@pidgin.im>
parents: 28153
diff changeset
1750 xfers_data = NULL;
11281
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1751 }
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1752
a5cda37a16be [gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11231
diff changeset
1753 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1754 purple_xfers_set_ui_ops(PurpleXferUiOps *ops) {
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1755 xfer_ui_ops = ops;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1756 }
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1757
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1758 PurpleXferUiOps *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15702
diff changeset
1759 purple_xfers_get_ui_ops(void) {
4514
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1760 return xfer_ui_ops;
40e3588a280f [gaim-migrate @ 4792]
Christian Hammond <chipx86@chipx86.com>
parents: 4249
diff changeset
1761 }

mercurial