Wed, 15 Sep 2010 17:34:21 +0000
propagate from branch 'im.pidgin.cpw.qulogic.msnp16' (head b639ee32626228584d9b8ca1112317d51bf1de40)
to branch 'im.pidgin.soc.2010.msn-tlc' (head 35d41c8c8ed7a033278ee89640aaaa1ed0302659)
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
1 | /** |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
2 | * @file msnslp.c MSNSLP support |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
3 | * |
| 15884 | 4 | * purple |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 | * source distribution. |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
9 | * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
10 | * This program is free software; you can redistribute it and/or modify |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
11 | * it under the terms of the GNU General Public License as published by |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
12 | * the Free Software Foundation; either version 2 of the License, or |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
13 | * (at your option) any later version. |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
14 | * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
15 | * This program is distributed in the hope that it will be useful, |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
18 | * GNU General Public License for more details. |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
19 | * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
20 | * You should have received a copy of the GNU General Public License |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
21 | * 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:
19747
diff
changeset
|
22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
23 | */ |
|
30945
b875cf477e19
Remove unnecesary includes from msn.h.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30930
diff
changeset
|
24 | |
|
30961
885064b16c54
Include internal.h on each c file to avoid windows breakage as recommended by Daniel.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30945
diff
changeset
|
25 | #include "internal.h" |
|
30945
b875cf477e19
Remove unnecesary includes from msn.h.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30930
diff
changeset
|
26 | #include "debug.h" |
|
b875cf477e19
Remove unnecesary includes from msn.h.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30930
diff
changeset
|
27 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
28 | #include "slp.h" |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
29 | #include "slpcall.h" |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
30 | #include "slpmsg.h" |
|
30066
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
31 | #include "msnutils.h" |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
32 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
33 | #include "object.h" |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
34 | #include "user.h" |
|
31013
aeda13e20dc7
This header is needed to know the max size of a part.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31012
diff
changeset
|
35 | #include "sbconn.h" |
|
30066
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
36 | #include "directconn.h" |
|
30966
c9d0661c74ed
Start moving p2p specific code to its own module.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30963
diff
changeset
|
37 | #include "p2p.h" |
|
31034
d5bc0b03e482
Move msn_xfer code to it's own module aiming to simplify slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31033
diff
changeset
|
38 | #include "xfer.h" |
|
22653
bed3d8152a58
The patch to msn to allow sending custom smileys. Doesn't send all the custom smileys correctly at the moment. References #1187.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21066
diff
changeset
|
39 | |
|
30329
b88548117247
Minor comment fix.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30327
diff
changeset
|
40 | /* seconds to delay between sending buddy icon requests to the server. */ |
|
24619
5ece4c87ea96
Use purple_timeout_add_seconds() instead of purple_timeout_add() in a
Mark Doliner <markdoliner@pidgin.im>
parents:
24618
diff
changeset
|
41 | #define BUDDY_ICON_DELAY 20 |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
42 | |
|
30066
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
43 | static void request_user_display(MsnUser *user); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
44 | |
|
30580
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
45 | typedef struct { |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
46 | MsnSession *session; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
47 | const char *remote_user; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
48 | const char *sha1; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
49 | } MsnFetchUserDisplayData; |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
50 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
51 | /************************************************************************** |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
52 | * SLP Control |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
53 | **************************************************************************/ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
54 | |
|
30066
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
55 | void |
|
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
56 | msn_slp_send_ok(MsnSlpCall *slpcall, const char *branch, |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
57 | const char *type, const char *content) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
58 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
59 | MsnSlpLink *slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
60 | MsnSlpMessage *slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
61 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
62 | slplink = slpcall->slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
63 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
64 | /* 200 OK */ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
65 | slpmsg = msn_slpmsg_sip_new(slpcall, 1, |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
66 | "MSNSLP/1.0 200 OK", |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
67 | branch, type, content); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
68 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
69 | slpmsg->info = "SLP 200 OK"; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
70 | slpmsg->text_body = TRUE; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
71 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
72 | msn_slplink_queue_slpmsg(slplink, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
73 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
74 | |
|
30066
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
75 | void |
|
25742b976ce2
Initial support for direct connections. Preliminary patch from ticket #247
Gábor Szuromi <kukkerman@gmail.com>
parents:
29774
diff
changeset
|
76 | msn_slp_send_decline(MsnSlpCall *slpcall, const char *branch, |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
77 | const char *type, const char *content) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
78 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
79 | MsnSlpLink *slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
80 | MsnSlpMessage *slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
81 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
82 | slplink = slpcall->slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
83 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
84 | /* 603 Decline */ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
85 | slpmsg = msn_slpmsg_sip_new(slpcall, 1, |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
86 | "MSNSLP/1.0 603 Decline", |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
87 | branch, type, content); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
88 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
89 | slpmsg->info = "SLP 603 Decline"; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
90 | slpmsg->text_body = TRUE; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
91 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
92 | msn_slplink_queue_slpmsg(slplink, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
93 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
94 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
95 | /************************************************************************** |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
96 | * Msg Callbacks |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
97 | **************************************************************************/ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
98 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
99 | /* |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
100 | * Called on a timeout from end_user_display(). Frees a buddy icon window slow and dequeues the next |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
101 | * buddy icon request if there is one. |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
102 | */ |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
103 | static gboolean |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
104 | msn_release_buddy_icon_request_timeout(gpointer data) |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
105 | { |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
106 | MsnUserList *userlist = (MsnUserList *)data; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23008
diff
changeset
|
107 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
108 | /* Free one window slot */ |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23008
diff
changeset
|
109 | userlist->buddy_icon_window++; |
|
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23008
diff
changeset
|
110 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
111 | /* Clear the tag for our former request timer */ |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
112 | userlist->buddy_icon_request_timer = 0; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23008
diff
changeset
|
113 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
114 | msn_release_buddy_icon_request(userlist); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
23008
diff
changeset
|
115 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
116 | return FALSE; |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
117 | } |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
118 | |
|
11897
10853b830964
[gaim-migrate @ 14188]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11595
diff
changeset
|
119 | static void |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
120 | got_user_display(MsnSlpCall *slpcall, |
|
11137
cf40226ddff7
[gaim-migrate @ 13201]
Mark Doliner <markdoliner@pidgin.im>
parents:
11127
diff
changeset
|
121 | const guchar *data, gsize size) |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
122 | { |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
123 | MsnUserList *userlist; |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
124 | const char *info; |
| 15884 | 125 | PurpleAccount *account; |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
126 | |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
127 | g_return_if_fail(slpcall != NULL); |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
128 | |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
129 | info = slpcall->data_info; |
|
27691
d77b2890043e
Change all MSN_DEBUG_* messages to use the new purple_debug_is_verbose call
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26738
diff
changeset
|
130 | if (purple_debug_is_verbose()) |
|
d77b2890043e
Change all MSN_DEBUG_* messages to use the new purple_debug_is_verbose call
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26738
diff
changeset
|
131 | purple_debug_info("msn", "Got User Display: %s\n", slpcall->slplink->remote_user); |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
132 | |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
133 | userlist = slpcall->slplink->session->userlist; |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
134 | account = slpcall->slplink->session->account; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
135 | |
| 15884 | 136 | purple_buddy_icons_set_for_user(account, slpcall->slplink->remote_user, |
|
16539
75a20ae3a527
Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
137 | g_memdup(data, size), size, info); |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
138 | |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
139 | #if 0 |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
140 | /* Free one window slot */ |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
141 | userlist->buddy_icon_window++; |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
142 | |
| 15884 | 143 | purple_debug_info("msn", "got_user_display(): buddy_icon_window++ yields =%d\n", |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
144 | userlist->buddy_icon_window); |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
145 | |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
146 | msn_release_buddy_icon_request(userlist); |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
147 | #endif |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
148 | } |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
149 | |
|
11897
10853b830964
[gaim-migrate @ 14188]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11595
diff
changeset
|
150 | static void |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
151 | end_user_display(MsnSlpCall *slpcall, MsnSession *session) |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
152 | { |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
153 | MsnUserList *userlist; |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
154 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
155 | g_return_if_fail(session != NULL); |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
156 | |
|
27691
d77b2890043e
Change all MSN_DEBUG_* messages to use the new purple_debug_is_verbose call
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26738
diff
changeset
|
157 | if (purple_debug_is_verbose()) |
|
d77b2890043e
Change all MSN_DEBUG_* messages to use the new purple_debug_is_verbose call
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26738
diff
changeset
|
158 | purple_debug_info("msn", "End User Display\n"); |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10602
diff
changeset
|
159 | |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
160 | userlist = session->userlist; |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
161 | |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10226
diff
changeset
|
162 | /* If the session is being destroyed we better stop doing anything. */ |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
163 | if (session->destroying) |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10226
diff
changeset
|
164 | return; |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
165 | |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
166 | /* Delay before freeing a buddy icon window slot and requesting the next icon, if appropriate. |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
167 | * If we don't delay, we'll rapidly hit the MSN equivalent of AIM's rate limiting; the server will |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
168 | * send us an error 800 like so: |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
169 | * |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
170 | * C: NS 000: XFR 21 SB |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
171 | * S: NS 000: 800 21 |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
172 | */ |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
173 | if (userlist->buddy_icon_request_timer) { |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
174 | /* Free the window slot used by this previous request */ |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
175 | userlist->buddy_icon_window++; |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
176 | |
|
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
177 | /* Clear our pending timeout */ |
| 15884 | 178 | purple_timeout_remove(userlist->buddy_icon_request_timer); |
|
13028
fcd75318a565
[gaim-migrate @ 15381]
Evan Schoenberg <evands@pidgin.im>
parents:
12886
diff
changeset
|
179 | } |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10226
diff
changeset
|
180 | |
|
24619
5ece4c87ea96
Use purple_timeout_add_seconds() instead of purple_timeout_add() in a
Mark Doliner <markdoliner@pidgin.im>
parents:
24618
diff
changeset
|
181 | /* Wait BUDDY_ICON_DELAY s before freeing our window slot and requesting the next icon. */ |
|
5ece4c87ea96
Use purple_timeout_add_seconds() instead of purple_timeout_add() in a
Mark Doliner <markdoliner@pidgin.im>
parents:
24618
diff
changeset
|
182 | userlist->buddy_icon_request_timer = purple_timeout_add_seconds(BUDDY_ICON_DELAY, |
|
13126
afce0fe97885
[gaim-migrate @ 15487]
Evan Schoenberg <evands@pidgin.im>
parents:
13028
diff
changeset
|
183 | msn_release_buddy_icon_request_timeout, userlist); |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
184 | } |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
185 | |
|
23809
334ee2bd89d7
A patch from felipec to make (msn_)request_user_display static.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23441
diff
changeset
|
186 | static void |
|
30580
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
187 | fetched_user_display(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
188 | const gchar *url_text, gsize len, const gchar *error_message) |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
189 | { |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
190 | MsnFetchUserDisplayData *data = user_data; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
191 | MsnSession *session = data->session; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
192 | |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
193 | session->url_datas = g_slist_remove(session->url_datas, url_data); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
194 | |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
195 | if (url_text) { |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
196 | purple_buddy_icons_set_for_user(session->account, data->remote_user, |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
197 | g_memdup(url_text, len), len, |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
198 | data->sha1); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
199 | } |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
200 | |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
201 | end_user_display(NULL, session); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
202 | |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
203 | g_free(user_data); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
204 | } |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
205 | |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
206 | static void |
|
31037
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
207 | request_own_user_display(MsnUser *user) |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
208 | { |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
209 | PurpleAccount *account; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
210 | MsnSession *session; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
211 | MsnObject *my_obj = NULL; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
212 | gconstpointer data = NULL; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
213 | const char *info; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
214 | size_t len = 0; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
215 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
216 | if (purple_debug_is_verbose()) |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
217 | purple_debug_info("msn", "Requesting our own user display\n"); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
218 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
219 | session = user->userlist->session; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
220 | account = session->account; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
221 | my_obj = msn_user_get_object(user); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
222 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
223 | if (my_obj != NULL) { |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
224 | PurpleStoredImage *img = msn_object_get_image(my_obj); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
225 | data = purple_imgstore_get_data(img); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
226 | len = purple_imgstore_get_size(img); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
227 | info = msn_object_get_sha1(my_obj); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
228 | } |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
229 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
230 | purple_buddy_icons_set_for_user(account, user->passport, g_memdup(data, len), len, info); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
231 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
232 | /* Free one window slot */ |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
233 | session->userlist->buddy_icon_window++; |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
234 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
235 | if (purple_debug_is_verbose()) |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
236 | purple_debug_info("msn", "msn_request_user_display(): buddy_icon_window++ yields =%d\n", |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
237 | session->userlist->buddy_icon_window); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
238 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
239 | msn_release_buddy_icon_request(session->userlist); |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
240 | } |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
241 | |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
242 | void |
|
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
243 | msn_request_user_display(MsnUser *user) |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
244 | { |
| 15884 | 245 | PurpleAccount *account; |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
246 | MsnSession *session; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
247 | MsnSlpLink *slplink; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
248 | MsnObject *obj; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
249 | const char *info; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
250 | |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
251 | session = user->userlist->session; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
252 | account = session->account; |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
253 | |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
254 | slplink = msn_session_get_slplink(session, user->passport); |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
255 | |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
256 | obj = msn_user_get_object(user); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
257 | |
|
16090
57832613774a
Patch in Trac ticket #113 from Simom.
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
258 | info = msn_object_get_sha1(obj); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
259 | |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
260 | if (g_ascii_strcasecmp(user->passport, |
| 15884 | 261 | purple_account_get_username(account))) |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
262 | { |
|
30580
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
263 | const char *url = msn_object_get_url1(obj); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
264 | if (url) { |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
265 | MsnFetchUserDisplayData *data = g_new0(MsnFetchUserDisplayData, 1); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
266 | PurpleUtilFetchUrlData *url_data; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
267 | data->session = session; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
268 | data->remote_user = user->passport; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
269 | data->sha1 = info; |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
270 | url_data = purple_util_fetch_url_len(url, TRUE, NULL, TRUE, 200*1024, |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
271 | fetched_user_display, data); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
272 | session->url_datas = g_slist_prepend(session->url_datas, url_data); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
273 | } else { |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
274 | msn_slplink_request_object(slplink, info, got_user_display, |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
275 | end_user_display, obj); |
|
bb4da51c1259
Add support for Url/Url1 in MSN objects, which are used for buddy
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30375
diff
changeset
|
276 | } |
|
9860
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
277 | } |
|
8f54a6091294
[gaim-migrate @ 10739]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9858
diff
changeset
|
278 | else |
|
31037
457c61e53d50
Move queue logic in requesting user display out of slp code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31035
diff
changeset
|
279 | request_own_user_display(user); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
280 | } |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
281 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
282 | static void |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
283 | send_file_cb(MsnSlpCall *slpcall) |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
284 | { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
285 | MsnSlpMessage *slpmsg; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
286 | PurpleXfer *xfer; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
287 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
288 | xfer = (PurpleXfer *)slpcall->xfer; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
289 | if (purple_xfer_get_status(xfer) >= PURPLE_XFER_STATUS_STARTED) |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
290 | return; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
291 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
292 | purple_xfer_ref(xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
293 | purple_xfer_start(xfer, -1, NULL, 0); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
294 | if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_STARTED) { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
295 | purple_xfer_unref(xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
296 | return; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
297 | } |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
298 | purple_xfer_unref(xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
299 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
300 | slpmsg = msn_slpmsg_file_new(slpcall, purple_xfer_get_size(xfer)); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
301 | msn_slpmsg_set_slplink(slpmsg, slpcall->slplink); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
302 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
303 | msn_slplink_send_slpmsg(slpcall->slplink, slpmsg); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
304 | } |
|
10072
7bcd144ef597
[gaim-migrate @ 11051]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10047
diff
changeset
|
305 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
306 | static gchar * |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
307 | gen_context(PurpleXfer *xfer, const char *file_name, const char *file_path) |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
308 | { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
309 | gsize size = 0; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
310 | MsnFileContext *header; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
311 | gchar *u8 = NULL; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
312 | gchar *ret; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
313 | gunichar2 *uni = NULL; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
314 | glong currentChar = 0; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
315 | glong len = 0; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
316 | const char *preview; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
317 | gsize preview_len; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
318 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
319 | size = purple_xfer_get_size(xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
320 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
321 | purple_xfer_prepare_thumbnail(xfer, "png"); |
|
10072
7bcd144ef597
[gaim-migrate @ 11051]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10047
diff
changeset
|
322 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
323 | if (!file_name) { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
324 | gchar *basename = g_path_get_basename(file_path); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
325 | u8 = purple_utf8_try_convert(basename); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
326 | g_free(basename); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
327 | file_name = u8; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
328 | } |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
329 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
330 | uni = g_utf8_to_utf16(file_name, -1, NULL, &len, NULL); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
331 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
332 | if (u8) { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
333 | g_free(u8); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
334 | file_name = NULL; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
335 | u8 = NULL; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
336 | } |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
337 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
338 | preview = purple_xfer_get_thumbnail(xfer, &preview_len); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
339 | header = g_malloc(sizeof(MsnFileContext) + preview_len); |
|
10072
7bcd144ef597
[gaim-migrate @ 11051]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10047
diff
changeset
|
340 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
341 | header->length = GUINT32_TO_LE(sizeof(MsnFileContext) - 1); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
342 | header->version = GUINT32_TO_LE(2); /* V.3 contains additional unnecessary data */ |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
343 | header->file_size = GUINT64_TO_LE(size); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
344 | if (preview) |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
345 | header->type = GUINT32_TO_LE(0); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
346 | else |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
347 | header->type = GUINT32_TO_LE(1); |
|
10072
7bcd144ef597
[gaim-migrate @ 11051]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10047
diff
changeset
|
348 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
349 | len = MIN(len, MAX_FILE_NAME_LEN); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
350 | for (currentChar = 0; currentChar < len; currentChar++) { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
351 | header->file_name[currentChar] = GUINT16_TO_LE(uni[currentChar]); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
352 | } |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
353 | memset(&header->file_name[currentChar], 0x00, (MAX_FILE_NAME_LEN - currentChar) * 2); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
354 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
355 | memset(&header->unknown1, 0, sizeof(header->unknown1)); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
356 | header->unknown2 = GUINT32_TO_LE(0xffffffff); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
357 | if (preview) { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
358 | memcpy(&header->preview, preview, preview_len); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
359 | } |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
360 | header->preview[preview_len] = '\0'; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
361 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
362 | g_free(uni); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
363 | ret = purple_base64_encode((const guchar *)header, sizeof(MsnFileContext) + preview_len); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
364 | g_free(header); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
365 | return ret; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
366 | } |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
367 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
368 | void |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
369 | msn_request_ft(PurpleXfer *xfer) |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
370 | { |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
371 | MsnSlpCall *slpcall; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
372 | MsnSlpLink *slplink; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
373 | char *context; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
374 | const char *fn; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
375 | const char *fp; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
376 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
377 | fn = purple_xfer_get_filename(xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
378 | fp = purple_xfer_get_local_filename(xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
379 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
380 | slplink = xfer->data; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
381 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
382 | g_return_if_fail(slplink != NULL); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
383 | g_return_if_fail(fp != NULL); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
384 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
385 | slpcall = msn_slpcall_new(slplink); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
386 | msn_slpcall_init(slpcall, MSN_SLPCALL_DC); |
|
23812
5399dc0d191c
disapproval of revision '364ef11540c03fc34138ee3db995e341997833ad'
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23811
diff
changeset
|
387 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
388 | slpcall->session_init_cb = send_file_cb; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
389 | slpcall->end_cb = msn_xfer_end_cb; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
390 | slpcall->cb = msn_xfer_completed_cb; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
391 | slpcall->xfer = xfer; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
392 | purple_xfer_ref(slpcall->xfer); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
393 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
394 | slpcall->pending = TRUE; |
|
23812
5399dc0d191c
disapproval of revision '364ef11540c03fc34138ee3db995e341997833ad'
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23811
diff
changeset
|
395 | |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
396 | purple_xfer_set_cancel_send_fnc(xfer, msn_xfer_cancel); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
397 | purple_xfer_set_read_fnc(xfer, msn_xfer_read); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
398 | purple_xfer_set_write_fnc(xfer, msn_xfer_write); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
399 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
400 | xfer->data = slpcall; |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
401 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
402 | context = gen_context(xfer, fn, fp); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
403 | |
|
31046
33671e05cf24
Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31037
diff
changeset
|
404 | msn_slpcall_invite(slpcall, MSN_FT_GUID, P2P_APPID_FILE, context); |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
405 | msn_slplink_unref(slplink); |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
406 | |
|
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
407 | g_free(context); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
408 | } |
|
31033
466924b5b42c
Move file request up in the stack.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31029
diff
changeset
|
409 |