Sun, 10 Dec 2006 14:45:27 +0000
[gaim-migrate @ 17947]
If a message is being received in a group chat at a moment just after it has been left, gaim_conv_chat_incoming_msg() is still triggerred but find_oscar_chat_by_conn() returns NULL. We no longer crash in this situation.
| 2086 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 4 | * Some code copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 6302 | 5 | * Some code copyright (C) 1999-2001, Eric Warmenhoven |
| 6 | * Some code copyright (C) 2001-2003, Sean Egan | |
|
11155
12904075510f
[gaim-migrate @ 13237]
Mark Doliner <markdoliner@pidgin.im>
parents:
11153
diff
changeset
|
7 | * Some code copyright (C) 2001-2005, Mark Doliner <thekingant@users.sourceforge.net> |
|
11049
6c6adfe954f4
[gaim-migrate @ 12983]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11033
diff
changeset
|
8 | * Some code copyright (C) 2005, Jonathan Clark <ardentlygnarly@users.sourceforge.net> |
| 6302 | 9 | * |
| 10 | * Most libfaim code copyright (C) 1998-2001 Adam Fritzler <afritz@auk.cx> | |
|
8151
195a587b6c32
[gaim-migrate @ 8863]
Mark Doliner <markdoliner@pidgin.im>
parents:
8150
diff
changeset
|
11 | * Some libfaim code copyright (C) 2001-2004 Mark Doliner <thekingant@users.sourceforge.net> |
| 2086 | 12 | * |
| 13 | * This program is free software; you can redistribute it and/or modify | |
| 14 | * it under the terms of the GNU General Public License as published by | |
| 15 | * the Free Software Foundation; either version 2 of the License, or | |
| 16 | * (at your option) any later version. | |
| 17 | * | |
| 18 | * This program is distributed in the hope that it will be useful, | |
| 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 10485 | 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 2086 | 21 | * GNU General Public License for more details. |
| 22 | * | |
| 23 | * You should have received a copy of the GNU General Public License | |
| 24 | * along with this program; if not, write to the Free Software | |
| 25 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 26 | * | |
| 27 | */ | |
| 15030 | 28 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
29 | #include "internal.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
30 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
31 | #include "account.h" |
|
5638
53e752c88ea1
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5631
diff
changeset
|
32 | #include "accountopt.h" |
|
6846
f814f02dca87
[gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents:
6787
diff
changeset
|
33 | #include "buddyicon.h" |
|
11404
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
34 | #include "cipher.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
35 | #include "conversation.h" |
|
7083
bdf557b0eea4
[gaim-migrate @ 7648]
Christian Hammond <chipx86@chipx86.com>
parents:
7082
diff
changeset
|
36 | #include "core.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
37 | #include "debug.h" |
|
6982
12f08de92674
[gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents:
6907
diff
changeset
|
38 | #include "imgstore.h" |
| 8231 | 39 | #include "network.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
40 | #include "notify.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
41 | #include "privacy.h" |
| 2086 | 42 | #include "prpl.h" |
|
4889
9c81754db28e
[gaim-migrate @ 5219]
Mark Doliner <markdoliner@pidgin.im>
parents:
4870
diff
changeset
|
43 | #include "proxy.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
44 | #include "request.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
45 | #include "util.h" |
| 9943 | 46 | #include "version.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
47 | |
| 15030 | 48 | #include "oscarcommon.h" |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
49 | #include "oscar.h" |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
50 | #include "peer.h" |
| 2086 | 51 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
52 | #define OSCAR_STATUS_ID_INVISIBLE "invisible" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
53 | #define OSCAR_STATUS_ID_OFFLINE "offline" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
54 | #define OSCAR_STATUS_ID_AVAILABLE "available" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
55 | #define OSCAR_STATUS_ID_AWAY "away" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
56 | #define OSCAR_STATUS_ID_DND "dnd" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
57 | #define OSCAR_STATUS_ID_NA "na" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
58 | #define OSCAR_STATUS_ID_OCCUPIED "occupied" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
59 | #define OSCAR_STATUS_ID_FREE4CHAT "free4chat" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
60 | #define OSCAR_STATUS_ID_CUSTOM "custom" |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
61 | |
| 2086 | 62 | #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3" |
| 63 | ||
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
64 | #define OSCAR_CONNECT_STEPS 6 |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
65 | |
|
14619
e3577fb5e0f1
[gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents:
14614
diff
changeset
|
66 | static OscarCapability gaim_caps = OSCAR_CAPABILITY_CHAT | OSCAR_CAPABILITY_BUDDYICON | OSCAR_CAPABILITY_DIRECTIM | OSCAR_CAPABILITY_SENDFILE | OSCAR_CAPABILITY_UNICODE | OSCAR_CAPABILITY_INTEROPERATE | OSCAR_CAPABILITY_ICHAT; |
|
3458
6140a920776b
[gaim-migrate @ 3506]
Mark Doliner <markdoliner@pidgin.im>
parents:
3456
diff
changeset
|
67 | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
68 | static guint8 features_aim[] = {0x01, 0x01, 0x01, 0x02}; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
69 | static guint8 features_icq[] = {0x01, 0x06}; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
70 | static guint8 features_icq_offline[] = {0x01}; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
71 | static guint8 ck[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; |
| 2086 | 72 | |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
73 | struct create_room { |
|
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
74 | char *name; |
|
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
75 | int exchange; |
|
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
76 | }; |
|
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
77 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
78 | struct oscar_ask_directim_data |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
79 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
80 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
81 | char *who; |
| 2086 | 82 | }; |
| 83 | ||
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
84 | /* |
|
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
85 | * Various PRPL-specific buddy info that we want to keep track of |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
11643
diff
changeset
|
86 | * Some other info is maintained by locate.c, and I'd like to move |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
87 | * the rest of this to libfaim, mostly im.c |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
11643
diff
changeset
|
88 | * |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
89 | * TODO: More of this should use the status API. |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
90 | */ |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
91 | struct buddyinfo { |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
92 | gboolean typingnot; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
93 | guint32 ipaddr; |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
94 | |
|
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
95 | unsigned long ico_me_len; |
|
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
96 | unsigned long ico_me_csum; |
|
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
97 | time_t ico_me_time; |
|
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
98 | gboolean ico_informed; |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
99 | |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
100 | unsigned long ico_len; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
101 | unsigned long ico_csum; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
102 | time_t ico_time; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
103 | gboolean ico_need; |
| 7406 | 104 | gboolean ico_sent; |
| 2086 | 105 | }; |
| 106 | ||
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
107 | struct name_data { |
| 5575 | 108 | GaimConnection *gc; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
109 | gchar *name; |
| 3453 | 110 | gchar *nick; |
| 3141 | 111 | }; |
| 112 | ||
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
113 | static char *msgerrreason[] = { |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
114 | N_("Invalid error"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
115 | N_("Invalid SNAC"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
116 | N_("Rate to host"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
117 | N_("Rate to client"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
118 | N_("Not logged in"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
119 | N_("Service unavailable"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
120 | N_("Service not defined"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
121 | N_("Obsolete SNAC"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
122 | N_("Not supported by host"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
123 | N_("Not supported by client"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
124 | N_("Refused by client"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
125 | N_("Reply too big"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
126 | N_("Responses lost"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
127 | N_("Request denied"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
128 | N_("Busted SNAC payload"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
129 | N_("Insufficient rights"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
130 | N_("In local permit/deny"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
131 | N_("Too evil (sender)"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
132 | N_("Too evil (receiver)"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
133 | N_("User temporarily unavailable"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
134 | N_("No match"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
135 | N_("List overflow"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
136 | N_("Request ambiguous"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
137 | N_("Queue full"), |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
138 | N_("Not while on AOL") |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
139 | }; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
140 | static int msgerrreasonlen = 25; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
141 | |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
142 | /* All the libfaim->gaim callback functions */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
143 | static int gaim_parse_auth_resp (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
144 | static int gaim_parse_login (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
145 | static int gaim_parse_auth_securid_request(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
146 | static int gaim_handle_redirect (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
147 | static int gaim_info_change (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
148 | static int gaim_account_confirm (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
149 | static int gaim_parse_oncoming (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
150 | static int gaim_parse_offgoing (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
151 | static int gaim_parse_incoming_im(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
152 | static int gaim_parse_misses (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
153 | static int gaim_parse_clientauto (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
154 | static int gaim_parse_userinfo (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
155 | static int gaim_got_infoblock (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
156 | static int gaim_parse_motd (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
157 | static int gaim_chatnav_info (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
158 | static int gaim_conv_chat_join (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
159 | static int gaim_conv_chat_leave (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
160 | static int gaim_conv_chat_info_update (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
161 | static int gaim_conv_chat_incoming_msg(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
162 | static int gaim_email_parseupdate(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
163 | static int gaim_icon_error (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
164 | static int gaim_icon_parseicon (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
165 | static int oscar_icon_req (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
166 | static int gaim_parse_msgack (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
167 | static int gaim_parse_ratechange (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
168 | static int gaim_parse_evilnotify (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
169 | static int gaim_parse_searcherror(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
170 | static int gaim_parse_searchreply(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
171 | static int gaim_bosrights (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
172 | static int gaim_connerr (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
173 | static int gaim_parse_msgerr (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
174 | static int gaim_parse_mtn (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
175 | static int gaim_parse_locaterights(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
176 | static int gaim_parse_buddyrights(OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
177 | static int gaim_parse_locerr (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
178 | static int gaim_icbm_param_info (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
179 | static int gaim_parse_genericerr (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
180 | static int gaim_memrequest (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
181 | static int gaim_selfinfo (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
182 | static int gaim_offlinemsg (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
183 | static int gaim_offlinemsgdone (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
184 | static int gaim_icqalias (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
185 | static int gaim_icqinfo (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
186 | static int gaim_popup (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
187 | static int gaim_ssi_parseerr (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
188 | static int gaim_ssi_parserights (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
189 | static int gaim_ssi_parselist (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
190 | static int gaim_ssi_parseack (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
191 | static int gaim_ssi_parseadd (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
192 | static int gaim_ssi_authgiven (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
193 | static int gaim_ssi_authrequest (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
194 | static int gaim_ssi_authreply (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
195 | static int gaim_ssi_gotadded (OscarData *, FlapConnection *, FlapFrame *, ...); |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
196 | |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
197 | static gboolean gaim_icon_timerfunc(gpointer data); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
198 | |
|
12816
5f93e09fa9a6
[gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents:
12730
diff
changeset
|
199 | static void recent_buddies_cb(const char *name, GaimPrefType type, gconstpointer value, gpointer data); |
| 15030 | 200 | void oscar_set_info(GaimConnection *gc, const char *info); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
201 | static void oscar_set_info_and_status(GaimAccount *account, gboolean setinfo, const char *rawinfo, gboolean setstatus, GaimStatus *status); |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
202 | static void oscar_set_extendedstatus(GaimConnection *gc); |
|
12663
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
203 | static gboolean gaim_ssi_rerequestdata(gpointer data); |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
204 | |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
205 | static void oscar_free_name_data(struct name_data *data) { |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
206 | g_free(data->name); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
207 | g_free(data->nick); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
208 | g_free(data); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
209 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
210 | |
|
15122
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
211 | #ifdef _WIN32 |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
212 | const char *oscar_get_locale_charset(void) { |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
213 | static const char *charset = NULL; |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
214 | if (charset == NULL) |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
215 | g_get_charset(&charset); |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
216 | return charset; |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
217 | } |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
218 | #endif |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
219 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
220 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
221 | * Determine how we can send this message. Per the warnings elsewhere |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
222 | * in this file, these little checks determine the simplest encoding |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
223 | * we can use for a given message send using it. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
224 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
225 | static guint32 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
226 | oscar_charset_check(const char *utf8) |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
227 | { |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
228 | int i = 0; |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
229 | int charset = AIM_CHARSET_ASCII; |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
230 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
231 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
232 | * Can we get away with using our custom encoding? |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
233 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
234 | while (utf8[i]) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
235 | { |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
236 | if ((unsigned char)utf8[i] > 0x7f) { |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
237 | /* not ASCII! */ |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
238 | charset = AIM_CHARSET_CUSTOM; |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
239 | break; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
240 | } |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
241 | i++; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
242 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
243 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
244 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
245 | * Must we send this message as UNICODE (in the UCS-2BE encoding)? |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
246 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
247 | while (utf8[i]) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
248 | { |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
249 | /* ISO-8859-1 is 0x00-0xbf in the first byte |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
250 | * followed by 0xc0-0xc3 in the second */ |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
251 | if ((unsigned char)utf8[i] < 0x80) { |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
252 | i++; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
253 | continue; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
254 | } else if (((unsigned char)utf8[i] & 0xfc) == 0xc0 && |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
255 | ((unsigned char)utf8[i + 1] & 0xc0) == 0x80) { |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
256 | i += 2; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
257 | continue; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
258 | } |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
259 | charset = AIM_CHARSET_UNICODE; |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
260 | break; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
261 | } |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
262 | |
|
9807
ff713acc7204
[gaim-migrate @ 10675]
Mark Doliner <markdoliner@pidgin.im>
parents:
9806
diff
changeset
|
263 | return charset; |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
264 | } |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
265 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
266 | /** |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
267 | * Take a string of the form charset="bleh" where bleh is |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
268 | * one of us-ascii, utf-8, iso-8859-1, or unicode-2-0, and |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
269 | * return a newly allocated string containing bleh. |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
270 | */ |
|
15193
faaef2307bf0
[gaim-migrate @ 17917]
Evan Schoenberg <evands@pidgin.im>
parents:
15147
diff
changeset
|
271 | gchar * |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
272 | oscar_encoding_extract(const char *encoding) |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
273 | { |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
274 | gchar *ret = NULL; |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
275 | char *begin, *end; |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
276 | |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
277 | g_return_val_if_fail(encoding != NULL, NULL); |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
278 | |
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8733
diff
changeset
|
279 | /* Make sure encoding begins with charset= */ |
| 10540 | 280 | if (strncmp(encoding, "text/aolrtf; charset=", 21) && |
| 281 | strncmp(encoding, "text/x-aolrtf; charset=", 23)) | |
| 282 | { | |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
283 | return NULL; |
| 10540 | 284 | } |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
285 | |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
286 | begin = strchr(encoding, '"'); |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
287 | end = strrchr(encoding, '"'); |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
288 | |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
289 | if ((begin == NULL) || (end == NULL) || (begin >= end)) |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
290 | return NULL; |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
291 | |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
292 | ret = g_strndup(begin+1, (end-1) - begin); |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
293 | |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
294 | return ret; |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
295 | } |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
296 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
297 | gchar * |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
298 | oscar_encoding_to_utf8(const char *encoding, const char *text, int textlen) |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
299 | { |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
300 | gchar *utf8 = NULL; |
|
9595
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
301 | |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
302 | if ((encoding == NULL) || encoding[0] == '\0') { |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
303 | gaim_debug_info("oscar", "Empty encoding, assuming UTF-8\n"); |
|
10396
1fcd3715444b
[gaim-migrate @ 11626]
Mark Doliner <markdoliner@pidgin.im>
parents:
10376
diff
changeset
|
304 | } else if (!strcasecmp(encoding, "iso-8859-1")) { |
| 10376 | 305 | utf8 = g_convert(text, textlen, "UTF-8", "iso-8859-1", NULL, NULL, NULL); |
|
10396
1fcd3715444b
[gaim-migrate @ 11626]
Mark Doliner <markdoliner@pidgin.im>
parents:
10376
diff
changeset
|
306 | } else if (!strcasecmp(encoding, "ISO-8859-1-Windows-3.1-Latin-1")) { |
| 10375 | 307 | utf8 = g_convert(text, textlen, "UTF-8", "Windows-1252", NULL, NULL, NULL); |
|
10396
1fcd3715444b
[gaim-migrate @ 11626]
Mark Doliner <markdoliner@pidgin.im>
parents:
10376
diff
changeset
|
308 | } else if (!strcasecmp(encoding, "unicode-2-0")) { |
|
9595
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
309 | utf8 = g_convert(text, textlen, "UTF-8", "UCS-2BE", NULL, NULL, NULL); |
|
10396
1fcd3715444b
[gaim-migrate @ 11626]
Mark Doliner <markdoliner@pidgin.im>
parents:
10376
diff
changeset
|
310 | } else if (strcasecmp(encoding, "us-ascii") && strcmp(encoding, "utf-8")) { |
|
9595
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
311 | gaim_debug_warning("oscar", "Unrecognized character encoding \"%s\", " |
|
10096
2dba52b4a949
[gaim-migrate @ 11118]
Mark Doliner <markdoliner@pidgin.im>
parents:
10087
diff
changeset
|
312 | "attempting to convert to UTF-8 anyway\n", encoding); |
|
9595
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
313 | utf8 = g_convert(text, textlen, "UTF-8", encoding, NULL, NULL, NULL); |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
314 | } |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
315 | |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
316 | /* |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
317 | * If utf8 is still NULL then either the encoding is us-ascii/utf-8 or |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
318 | * we have been unable to convert the text to utf-8 from the encoding |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
319 | * that was specified. So we check if the text is valid utf-8 then |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
320 | * just copy it. |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
321 | */ |
|
3860d7d423ca
[gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents:
9586
diff
changeset
|
322 | if (utf8 == NULL) { |
| 9638 | 323 | if (textlen != 0 && *text != '\0' |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
324 | && !g_utf8_validate(text, textlen, NULL)) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
325 | utf8 = g_strdup(_("(There was an error receiving this message. The buddy you are speaking with is probably using a different encoding than expected. If you know what encoding he is using, you can specify it in the advanced account options for your AIM/ICQ account.)")); |
| 9476 | 326 | else |
| 9481 | 327 | utf8 = g_strndup(text, textlen); |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
328 | } |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
329 | |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
330 | return utf8; |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
331 | } |
|
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
332 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
333 | static gchar * |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
334 | oscar_utf8_try_convert(GaimAccount *account, const gchar *msg) |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
335 | { |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
336 | const char *charset = NULL; |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
337 | char *ret = NULL; |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
338 | |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
339 | if(aim_sn_is_icq(gaim_account_get_username(account))) |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
340 | charset = gaim_account_get_string(account, "encoding", NULL); |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
341 | |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
342 | if(charset && *charset) |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
343 | ret = g_convert(msg, -1, "UTF-8", charset, NULL, NULL, NULL); |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
344 | |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
345 | if(!ret) |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
346 | ret = gaim_utf8_try_convert(msg); |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
347 | |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
348 | return ret; |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
349 | } |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
350 | |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
351 | static gchar * |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
352 | gaim_plugin_oscar_convert_to_utf8(const gchar *data, gsize datalen, const char *charsetstr, gboolean fallback) |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
353 | { |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
354 | gchar *ret = NULL; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
355 | GError *err = NULL; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
356 | |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
357 | if ((charsetstr == NULL) || (*charsetstr == '\0')) |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
358 | return NULL; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
359 | |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
360 | if (strcasecmp("UTF-8", charsetstr)) { |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
361 | if (fallback) |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
362 | ret = g_convert_with_fallback(data, datalen, "UTF-8", charsetstr, "?", NULL, NULL, &err); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
363 | else |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
364 | ret = g_convert(data, datalen, "UTF-8", charsetstr, NULL, NULL, &err); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
365 | if (err != NULL) { |
|
13719
59b6403b4cc2
[gaim-migrate @ 16126]
Richard Laager <rlaager@pidgin.im>
parents:
13717
diff
changeset
|
366 | gaim_debug_warning("oscar", "Conversion from %s failed: %s.\n", |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
367 | charsetstr, err->message); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
368 | g_error_free(err); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
369 | } |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
370 | } else { |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
371 | if (g_utf8_validate(data, datalen, NULL)) |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
372 | ret = g_strndup(data, datalen); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
373 | else |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
374 | gaim_debug_warning("oscar", "String is not valid UTF-8.\n"); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
375 | } |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
376 | |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
377 | return ret; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
378 | } |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
379 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
380 | /** |
|
11081
c0b5f17f4442
[gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents:
11049
diff
changeset
|
381 | * This attemps to decode an incoming IM into a UTF8 string. |
|
c0b5f17f4442
[gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents:
11049
diff
changeset
|
382 | * |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
383 | * We try decoding using two different character sets. The charset |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
384 | * specified in the IM determines the order in which we attempt to |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
385 | * decode. We do this because there are lots of broken ICQ clients |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
386 | * that don't correctly send non-ASCII messages. And if Gaim isn't |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
387 | * able to deal with that crap, then people complain like banshees. |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
388 | * charsetstr1 is always set to what the correct encoding should be. |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
389 | */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
390 | gchar * |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
391 | gaim_plugin_oscar_decode_im_part(GaimAccount *account, const char *sourcesn, guint16 charset, guint16 charsubset, const gchar *data, gsize datalen) |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
392 | { |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
393 | gchar *ret = NULL; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
394 | const gchar *charsetstr1, *charsetstr2; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
395 | |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
396 | gaim_debug_info("oscar", "Parsing IM part, charset=0x%04hx, charsubset=0x%04hx, datalen=%hd\n", charset, charsubset, datalen); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
397 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
398 | if ((datalen == 0) || (data == NULL)) |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
399 | return NULL; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
400 | |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
401 | if (charset == AIM_CHARSET_UNICODE) { |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
402 | charsetstr1 = "UCS-2BE"; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
403 | charsetstr2 = "UTF-8"; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
404 | } else if (charset == AIM_CHARSET_CUSTOM) { |
|
11369
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
405 | if ((sourcesn != NULL) && isdigit(sourcesn[0])) |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
406 | charsetstr1 = gaim_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
407 | else |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
408 | charsetstr1 = "ISO-8859-1"; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
409 | charsetstr2 = "UTF-8"; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
410 | } else if (charset == AIM_CHARSET_ASCII) { |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
411 | /* Should just be "ASCII" */ |
|
9914
93b0188fc369
[gaim-migrate @ 10806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9908
diff
changeset
|
412 | charsetstr1 = "ASCII"; |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
413 | charsetstr2 = gaim_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
414 | } else if (charset == 0x000d) { |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
415 | /* Mobile AIM client on a Nokia 3100 and an LG VX6000 */ |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
416 | charsetstr1 = "ISO-8859-1"; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
417 | charsetstr2 = gaim_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
418 | } else { |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
419 | /* Unknown, hope for valid UTF-8... */ |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
420 | charsetstr1 = "UTF-8"; |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
421 | charsetstr2 = gaim_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
422 | } |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
423 | |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
424 | ret = gaim_plugin_oscar_convert_to_utf8(data, datalen, charsetstr1, FALSE); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
425 | if (ret == NULL) |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
426 | ret = gaim_plugin_oscar_convert_to_utf8(data, datalen, charsetstr2, TRUE); |
|
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
427 | if (ret == NULL) |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
428 | ret = g_strdup(_("(There was an error receiving this message. The buddy you are speaking to most likely has a buggy client.)")); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
429 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
430 | return ret; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
431 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
432 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
433 | /** |
|
11081
c0b5f17f4442
[gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents:
11049
diff
changeset
|
434 | * Figure out what encoding to use when sending a given outgoing message. |
|
c0b5f17f4442
[gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents:
11049
diff
changeset
|
435 | */ |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
436 | static void |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
437 | gaim_plugin_oscar_convert_to_best_encoding(GaimConnection *gc, |
|
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
438 | const char *destsn, const gchar *from, |
|
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
439 | gchar **msg, int *msglen_int, |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
440 | guint16 *charset, guint16 *charsubset) |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
441 | { |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
442 | OscarData *od = gc->proto_data; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
443 | GaimAccount *account = gaim_connection_get_account(gc); |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
444 | GError *err = NULL; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
445 | aim_userinfo_t *userinfo = NULL; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
446 | const gchar *charsetstr; |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
447 | gsize msglen; |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
448 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
449 | /* Attempt to send as ASCII */ |
|
10098
364dcec11abd
[gaim-migrate @ 11120]
Mark Doliner <markdoliner@pidgin.im>
parents:
10097
diff
changeset
|
450 | if (oscar_charset_check(from) == AIM_CHARSET_ASCII) { |
|
10097
cdf1f787073f
[gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents:
10096
diff
changeset
|
451 | *msg = g_convert(from, strlen(from), "ASCII", "UTF-8", NULL, &msglen, NULL); |
|
10098
364dcec11abd
[gaim-migrate @ 11120]
Mark Doliner <markdoliner@pidgin.im>
parents:
10097
diff
changeset
|
452 | *charset = AIM_CHARSET_ASCII; |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
453 | *charsubset = 0x0000; |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
454 | *msglen_int = msglen; |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
455 | return; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
456 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
457 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
458 | /* |
| 10565 | 459 | * If we're sending to an ICQ user, and they are in our |
| 460 | * buddy list, and they are advertising the Unicode | |
| 461 | * capability, and they are online, then attempt to send | |
| 462 | * as UCS-2BE. | |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
463 | */ |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
464 | if ((destsn != NULL) && aim_sn_is_icq(destsn)) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
465 | userinfo = aim_locate_finduserinfo(od, destsn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
466 | |
|
14619
e3577fb5e0f1
[gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents:
14614
diff
changeset
|
467 | if ((userinfo != NULL) && (userinfo->capabilities & OSCAR_CAPABILITY_UNICODE)) |
| 10565 | 468 | { |
| 469 | GaimBuddy *b; | |
| 470 | b = gaim_find_buddy(account, destsn); | |
| 471 | if ((b != NULL) && (GAIM_BUDDY_IS_ONLINE(b))) | |
| 472 | { | |
| 473 | *msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, NULL); | |
| 474 | if (*msg != NULL) | |
| 475 | { | |
| 476 | *charset = AIM_CHARSET_UNICODE; | |
| 477 | *charsubset = 0x0000; | |
| 478 | *msglen_int = msglen; | |
| 479 | return; | |
| 480 | } | |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
481 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
482 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
483 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
484 | /* |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
485 | * If this is AIM then attempt to send as ISO-8859-1. If this is |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
486 | * ICQ then attempt to send as the user specified character encoding. |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
487 | */ |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
488 | charsetstr = "ISO-8859-1"; |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
489 | if ((destsn != NULL) && aim_sn_is_icq(destsn)) |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
490 | charsetstr = gaim_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING); |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
491 | |
|
10097
cdf1f787073f
[gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents:
10096
diff
changeset
|
492 | /* |
|
cdf1f787073f
[gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents:
10096
diff
changeset
|
493 | * XXX - We need a way to only attempt to convert if we KNOW "from" |
|
cdf1f787073f
[gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents:
10096
diff
changeset
|
494 | * can be converted to "charsetstr" |
|
cdf1f787073f
[gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents:
10096
diff
changeset
|
495 | */ |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
496 | *msg = g_convert(from, strlen(from), charsetstr, "UTF-8", NULL, &msglen, NULL); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
497 | if (*msg != NULL) { |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
498 | *charset = AIM_CHARSET_CUSTOM; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
499 | *charsubset = 0x0000; |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
500 | *msglen_int = msglen; |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
501 | return; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
502 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
503 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
504 | /* |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
505 | * Nothing else worked, so send as UCS-2BE. |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
506 | */ |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
507 | *msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, &err); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
508 | if (*msg != NULL) { |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
509 | *charset = AIM_CHARSET_UNICODE; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
510 | *charsubset = 0x0000; |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
511 | *msglen_int = msglen; |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
512 | return; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
513 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
514 | |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
515 | gaim_debug_error("oscar", "Error converting a Unicode message: %s\n", err->message); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
516 | g_error_free(err); |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
517 | |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
518 | gaim_debug_error("oscar", "This should NEVER happen! Sending UTF-8 text flagged as ASCII.\n"); |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
519 | *msg = g_strdup(from); |
|
10039
cb0a6cbd0023
[gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents:
10022
diff
changeset
|
520 | *msglen_int = strlen(*msg); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
521 | *charset = AIM_CHARSET_ASCII; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
522 | *charsubset = 0x0000; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
523 | return; |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
524 | } |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
525 | |
|
13357
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
526 | /** |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
527 | * Looks for %n, %d, or %t in a string, and replaces them with the |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
528 | * specified name, date, and time, respectively. |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
529 | * |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
530 | * @param str The string that may contain the special variables. |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
531 | * @param name The sender name. |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
532 | * |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
533 | * @return A newly allocated string where the special variables are |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
534 | * expanded. This should be g_free'd by the caller. |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
535 | */ |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
536 | static gchar * |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
537 | gaim_str_sub_away_formatters(const char *str, const char *name) |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
538 | { |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
539 | char *c; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
540 | GString *cpy; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
541 | time_t t; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
542 | struct tm *tme; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
543 | |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
544 | g_return_val_if_fail(str != NULL, NULL); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
545 | g_return_val_if_fail(name != NULL, NULL); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
546 | |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
547 | /* Create an empty GString that is hopefully big enough for most messages */ |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
548 | cpy = g_string_sized_new(1024); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
549 | |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
550 | t = time(NULL); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
551 | tme = localtime(&t); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
552 | |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
553 | c = (char *)str; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
554 | while (*c) { |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
555 | switch (*c) { |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
556 | case '%': |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
557 | if (*(c + 1)) { |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
558 | switch (*(c + 1)) { |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
559 | case 'n': |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
560 | /* append name */ |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
561 | g_string_append(cpy, name); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
562 | c++; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
563 | break; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
564 | case 'd': |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
565 | /* append date */ |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
566 | g_string_append(cpy, gaim_date_format_short(tme)); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
567 | c++; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
568 | break; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
569 | case 't': |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
570 | /* append time */ |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
571 | g_string_append(cpy, gaim_time_format(tme)); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
572 | c++; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
573 | break; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
574 | default: |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
575 | g_string_append_c(cpy, *c); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
576 | } |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
577 | } else { |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
578 | g_string_append_c(cpy, *c); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
579 | } |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
580 | break; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
581 | default: |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
582 | g_string_append_c(cpy, *c); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
583 | } |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
584 | c++; |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
585 | } |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
586 | |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
587 | return g_string_free(cpy, FALSE); |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
588 | } |
|
c865228e89f7
[gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents:
13312
diff
changeset
|
589 | |
|
14614
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
590 | static gchar *oscar_caps_to_string(OscarCapability caps) |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
591 | { |
|
9407
51d14211393c
[gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents:
9381
diff
changeset
|
592 | GString *str; |
|
13105
8f9c66e4af87
[gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents:
13075
diff
changeset
|
593 | const gchar *tmp; |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
594 | guint bit = 1; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
595 | |
|
9407
51d14211393c
[gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents:
9381
diff
changeset
|
596 | str = g_string_new(""); |
|
51d14211393c
[gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents:
9381
diff
changeset
|
597 | |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
598 | if (!caps) { |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
599 | return NULL; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
600 | } else while (bit <= OSCAR_CAPABILITY_LAST) { |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
601 | if (bit & caps) { |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
602 | switch (bit) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
603 | case OSCAR_CAPABILITY_BUDDYICON: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
604 | tmp = _("Buddy Icon"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
605 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
606 | case OSCAR_CAPABILITY_TALK: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
607 | tmp = _("Voice"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
608 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
609 | case OSCAR_CAPABILITY_DIRECTIM: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
610 | tmp = _("AIM Direct IM"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
611 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
612 | case OSCAR_CAPABILITY_CHAT: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
613 | tmp = _("Chat"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
614 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
615 | case OSCAR_CAPABILITY_GETFILE: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
616 | tmp = _("Get File"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
617 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
618 | case OSCAR_CAPABILITY_SENDFILE: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
619 | tmp = _("Send File"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
620 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
621 | case OSCAR_CAPABILITY_GAMES: |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
622 | case OSCAR_CAPABILITY_GAMES2: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
623 | tmp = _("Games"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
624 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
625 | case OSCAR_CAPABILITY_ADDINS: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
626 | tmp = _("Add-Ins"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
627 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
628 | case OSCAR_CAPABILITY_SENDBUDDYLIST: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
629 | tmp = _("Send Buddy List"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
630 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
631 | case OSCAR_CAPABILITY_ICQ_DIRECT: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
632 | tmp = _("ICQ Direct Connect"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
633 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
634 | case OSCAR_CAPABILITY_APINFO: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
635 | tmp = _("AP User"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
636 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
637 | case OSCAR_CAPABILITY_ICQRTF: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
638 | tmp = _("ICQ RTF"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
639 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
640 | case OSCAR_CAPABILITY_EMPTY: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
641 | tmp = _("Nihilist"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
642 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
643 | case OSCAR_CAPABILITY_ICQSERVERRELAY: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
644 | tmp = _("ICQ Server Relay"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
645 | break; |
|
14619
e3577fb5e0f1
[gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents:
14614
diff
changeset
|
646 | case OSCAR_CAPABILITY_UNICODEOLD: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
647 | tmp = _("Old ICQ UTF8"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
648 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
649 | case OSCAR_CAPABILITY_TRILLIANCRYPT: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
650 | tmp = _("Trillian Encryption"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
651 | break; |
|
14619
e3577fb5e0f1
[gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents:
14614
diff
changeset
|
652 | case OSCAR_CAPABILITY_UNICODE: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
653 | tmp = _("ICQ UTF8"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
654 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
655 | case OSCAR_CAPABILITY_HIPTOP: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
656 | tmp = _("Hiptop"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
657 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
658 | case OSCAR_CAPABILITY_SECUREIM: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
659 | tmp = _("Security Enabled"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
660 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
661 | case OSCAR_CAPABILITY_VIDEO: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
662 | tmp = _("Video Chat"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
663 | break; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
664 | /* Not actually sure about this one... WinAIM doesn't show anything */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
665 | case OSCAR_CAPABILITY_ICHATAV: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
666 | tmp = _("iChat AV"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
667 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
668 | case OSCAR_CAPABILITY_LIVEVIDEO: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
669 | tmp = _("Live Video"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
670 | break; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
671 | case OSCAR_CAPABILITY_CAMERA: |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
672 | tmp = _("Camera"); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
673 | break; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
674 | default: |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
675 | tmp = NULL; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
676 | break; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
677 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
678 | if (tmp) |
|
9532
32470c5a1d58
[gaim-migrate @ 10359]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
9481
diff
changeset
|
679 | g_string_append_printf(str, "%s%s", (*(str->str) == '\0' ? "" : ", "), tmp); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
680 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
681 | bit <<= 1; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
682 | } |
|
9407
51d14211393c
[gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents:
9381
diff
changeset
|
683 | |
|
51d14211393c
[gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents:
9381
diff
changeset
|
684 | return g_string_free(str, FALSE); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
685 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
686 | |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
687 | static char *oscar_icqstatus(int state) { |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
688 | /* Make a cute little string that shows the status of the dude or dudet */ |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
689 | if (state & AIM_ICQ_STATE_CHAT) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
690 | return g_strdup_printf(_("Free For Chat")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
691 | else if (state & AIM_ICQ_STATE_DND) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
692 | return g_strdup_printf(_("Do Not Disturb")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
693 | else if (state & AIM_ICQ_STATE_OUT) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
694 | return g_strdup_printf(_("Not Available")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
695 | else if (state & AIM_ICQ_STATE_BUSY) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
696 | return g_strdup_printf(_("Occupied")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
697 | else if (state & AIM_ICQ_STATE_AWAY) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
698 | return g_strdup_printf(_("Away")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
699 | else if (state & AIM_ICQ_STATE_WEBAWARE) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
700 | return g_strdup_printf(_("Web Aware")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
701 | else if (state & AIM_ICQ_STATE_INVISIBLE) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
702 | return g_strdup_printf(_("Invisible")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
703 | else |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
704 | return g_strdup_printf(_("Online")); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
705 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
706 | |
|
9973
e163f8e7e8a4
[gaim-migrate @ 10884]
Mark Doliner <markdoliner@pidgin.im>
parents:
9972
diff
changeset
|
707 | static void |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
708 | oscar_user_info_add_pair(GaimNotifyUserInfo *user_info, const char *name, const char *value) |
|
13935
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
709 | { |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
710 | if (value && value[0]) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
711 | gaim_notify_user_info_add_pair(user_info, name, value); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
712 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
713 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
714 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
715 | static void |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
716 | oscar_user_info_convert_and_add_pair(GaimAccount *account, GaimNotifyUserInfo *user_info, |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
717 | const char *name, const char *value) |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
718 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
719 | gchar *utf8; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
720 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
721 | if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
722 | gaim_notify_user_info_add_pair(user_info, name, utf8); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
723 | g_free(utf8); |
|
13935
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
724 | } |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
725 | } |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
726 | |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
727 | static void |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
728 | oscar_string_convert_and_append(GaimAccount *account, GString *str, const char *newline, |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
729 | const char *name, const char *value) |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
730 | { |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
731 | gchar *utf8; |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
732 | |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
733 | if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
734 | g_string_append_printf(str, "%s<b>%s:</b> %s", newline, name, utf8); |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
735 | g_free(utf8); |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
736 | } |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
737 | } |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
738 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
739 | static void |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
740 | oscar_user_info_convert_and_add(GaimAccount *account, GaimNotifyUserInfo *user_info, |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
741 | const char *name, const char *value) |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
742 | { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
743 | gchar *utf8; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
744 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
745 | if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
746 | gaim_notify_user_info_add_pair(user_info, name, value); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
747 | g_free(utf8); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
748 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
749 | } |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
750 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
751 | static void oscar_string_append_info(GaimConnection *gc, GaimNotifyUserInfo *user_info, GaimBuddy *b, aim_userinfo_t *userinfo) |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
752 | { |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
753 | OscarData *od; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
754 | GaimAccount *account; |
|
10517
47d98640b0ad
[gaim-migrate @ 11821]
Daniel Atallah <datallah@pidgin.im>
parents:
10504
diff
changeset
|
755 | GaimPresence *presence = NULL; |
|
47d98640b0ad
[gaim-migrate @ 11821]
Daniel Atallah <datallah@pidgin.im>
parents:
10504
diff
changeset
|
756 | GaimStatus *status = NULL; |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
757 | GaimGroup *g = NULL; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
758 | struct buddyinfo *bi = NULL; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
759 | char *tmp; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
760 | |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
761 | od = gc->proto_data; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
762 | account = gaim_connection_get_account(gc); |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
763 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
764 | if ((user_info == NULL) || ((b == NULL) && (userinfo == NULL))) |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
765 | return; |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
766 | |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
767 | if (userinfo == NULL) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
768 | userinfo = aim_locate_finduserinfo(od, b->name); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
769 | |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
770 | if (b == NULL) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
771 | b = gaim_find_buddy(account, userinfo->sn); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
772 | |
|
11369
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
773 | if (b != NULL) { |
| 12088 | 774 | g = gaim_buddy_get_group(b); |
|
10498
aff389ee45f3
[gaim-migrate @ 11790]
Mark Doliner <markdoliner@pidgin.im>
parents:
10487
diff
changeset
|
775 | presence = gaim_buddy_get_presence(b); |
|
aff389ee45f3
[gaim-migrate @ 11790]
Mark Doliner <markdoliner@pidgin.im>
parents:
10487
diff
changeset
|
776 | status = gaim_presence_get_active_status(presence); |
|
aff389ee45f3
[gaim-migrate @ 11790]
Mark Doliner <markdoliner@pidgin.im>
parents:
10487
diff
changeset
|
777 | } |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
778 | |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
779 | if (userinfo != NULL) |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
780 | bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(account, userinfo->sn)); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
781 | |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
782 | if (b != NULL) { |
|
10498
aff389ee45f3
[gaim-migrate @ 11790]
Mark Doliner <markdoliner@pidgin.im>
parents:
10487
diff
changeset
|
783 | if (gaim_presence_is_online(presence)) { |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
784 | if (aim_sn_is_icq(b->name)) { |
|
11510
8f618fb35bd3
[gaim-migrate @ 13755]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11495
diff
changeset
|
785 | GaimStatus *status = gaim_presence_get_active_status(presence); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
786 | oscar_user_info_add_pair(user_info, _("Status"), gaim_status_get_name(status)); |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
787 | } |
|
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
788 | } else { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
789 | tmp = aim_ssi_itemlist_findparentname(od->ssi.local, b->name); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
790 | if (aim_ssi_waitingforauth(od->ssi.local, tmp, b->name)) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
791 | oscar_user_info_add_pair(user_info, _("Status"), _("Not Authorized")); |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
792 | else |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
793 | oscar_user_info_add_pair(user_info, _("Status"), _("Offline")); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
794 | } |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
795 | } |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
796 | |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
797 | if ((bi != NULL) && (bi->ipaddr != 0)) { |
|
9625
f2cda8836eb9
[gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents:
9620
diff
changeset
|
798 | tmp = g_strdup_printf("%hhu.%hhu.%hhu.%hhu", |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
799 | (bi->ipaddr & 0xff000000) >> 24, |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
800 | (bi->ipaddr & 0x00ff0000) >> 16, |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
801 | (bi->ipaddr & 0x0000ff00) >> 8, |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
802 | (bi->ipaddr & 0x000000ff)); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
803 | oscar_user_info_add_pair(user_info, _("IP Address"), tmp); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
804 | g_free(tmp); |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
805 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
806 | |
| 11257 | 807 | |
| 808 | if ((userinfo != NULL) && (userinfo->warnlevel != 0)) { | |
|
11285
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
809 | tmp = g_strdup_printf("%d", (int)(userinfo->warnlevel/10.0 + .5)); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
810 | oscar_user_info_add_pair(user_info, _("Warning Level"), tmp); |
| 11257 | 811 | g_free(tmp); |
| 812 | } | |
| 813 | ||
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
814 | if ((b != NULL) && (b->name != NULL) && (g != NULL) && (g->name != NULL)) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
815 | tmp = aim_ssi_getcomment(od->ssi.local, g->name, b->name); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
816 | if (tmp != NULL) { |
|
9625
f2cda8836eb9
[gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents:
9620
diff
changeset
|
817 | char *tmp2 = g_markup_escape_text(tmp, strlen(tmp)); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
818 | g_free(tmp); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
819 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
820 | oscar_user_info_convert_and_add_pair(account, user_info, _("Buddy Comment"), tmp2); |
|
9625
f2cda8836eb9
[gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents:
9620
diff
changeset
|
821 | g_free(tmp2); |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
822 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
823 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
824 | } |
|
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
825 | |
|
2821
f1ab7f03bdad
[gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
826 | static char *extract_name(const char *name) { |
| 4121 | 827 | char *tmp, *x; |
| 2086 | 828 | int i, j; |
| 4120 | 829 | |
| 830 | if (!name) | |
| 4121 | 831 | return NULL; |
|
13382
ad4d8c44d83d
[gaim-migrate @ 15754]
Daniel Atallah <datallah@pidgin.im>
parents:
13357
diff
changeset
|
832 | |
| 4120 | 833 | x = strchr(name, '-'); |
| 4121 | 834 | |
| 2086 | 835 | if (!x) return NULL; |
| 836 | x = strchr(++x, '-'); | |
| 837 | if (!x) return NULL; | |
| 838 | tmp = g_strdup(++x); | |
| 839 | ||
| 840 | for (i = 0, j = 0; x[i]; i++) { | |
|
2361
73a8ac410e85
[gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2357
diff
changeset
|
841 | char hex[3]; |
|
73a8ac410e85
[gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2357
diff
changeset
|
842 | if (x[i] != '%') { |
| 2086 | 843 | tmp[j++] = x[i]; |
|
2361
73a8ac410e85
[gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2357
diff
changeset
|
844 | continue; |
| 2086 | 845 | } |
|
2361
73a8ac410e85
[gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2357
diff
changeset
|
846 | strncpy(hex, x + ++i, 2); hex[2] = 0; |
|
73a8ac410e85
[gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2357
diff
changeset
|
847 | i++; |
|
73a8ac410e85
[gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2357
diff
changeset
|
848 | tmp[j++] = strtol(hex, NULL, 16); |
| 2086 | 849 | } |
| 850 | ||
| 851 | tmp[j] = 0; | |
| 852 | return tmp; | |
| 853 | } | |
| 854 | ||
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
855 | static struct chat_connection * |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
856 | find_oscar_chat(GaimConnection *gc, int id) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
857 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
858 | OscarData *od = (OscarData *)gc->proto_data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
859 | GSList *cur; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
860 | struct chat_connection *cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
861 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
862 | for (cur = od->oscar_chats; cur != NULL; cur = cur->next) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
863 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
864 | cc = (struct chat_connection *)cur->data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
865 | if (cc->id == id) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
866 | return cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
867 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
868 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
869 | return NULL; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
870 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
871 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
872 | static struct chat_connection * |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
873 | find_oscar_chat_by_conn(GaimConnection *gc, FlapConnection *conn) |
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
874 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
875 | OscarData *od = (OscarData *)gc->proto_data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
876 | GSList *cur; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
877 | struct chat_connection *cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
878 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
879 | for (cur = od->oscar_chats; cur != NULL; cur = cur->next) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
880 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
881 | cc = (struct chat_connection *)cur->data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
882 | if (cc->conn == conn) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
883 | return cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
884 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
885 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
886 | return NULL; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
887 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
888 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
889 | static struct chat_connection * |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
890 | find_oscar_chat_by_conv(GaimConnection *gc, GaimConversation *conv) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
891 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
892 | OscarData *od = (OscarData *)gc->proto_data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
893 | GSList *cur; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
894 | struct chat_connection *cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
895 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
896 | for (cur = od->oscar_chats; cur != NULL; cur = cur->next) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
897 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
898 | cc = (struct chat_connection *)cur->data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
899 | if (cc->conv == conv) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
900 | return cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
901 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
902 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
903 | return NULL; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
904 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
905 | |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
906 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
907 | oscar_chat_destroy(struct chat_connection *cc) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
908 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
909 | g_free(cc->name); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
910 | g_free(cc->show); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
911 | g_free(cc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
912 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
913 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
914 | static void |
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
915 | oscar_chat_kill(GaimConnection *gc, struct chat_connection *cc) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
916 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
917 | OscarData *od = (OscarData *)gc->proto_data; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
918 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
919 | /* Notify the conversation window that we've left the chat */ |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
920 | serv_got_chat_left(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(cc->conv))); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
921 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
922 | /* Destroy the chat_connection */ |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
923 | od->oscar_chats = g_slist_remove(od->oscar_chats, cc); |
|
14454
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
924 | flap_connection_schedule_destroy(cc->conn, OSCAR_DISCONNECT_DONE, NULL); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
925 | oscar_chat_destroy(cc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
926 | } |
|
12909
dfcf4df1dcd7
[gaim-migrate @ 15262]
Daniel Atallah <datallah@pidgin.im>
parents:
12816
diff
changeset
|
927 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
928 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
929 | * This is the callback function anytime gaim_proxy_connect() |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
930 | * establishes a new TCP connection with an oscar host. Depending |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
931 | * on the type of host, we do a few different things here. |
| 8983 | 932 | */ |
|
13232
149d582e5fbb
[gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents:
13227
diff
changeset
|
933 | static void |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
934 | connection_established_cb(gpointer data, gint source, const gchar *error_message) |
|
13232
149d582e5fbb
[gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents:
13227
diff
changeset
|
935 | { |
|
149d582e5fbb
[gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents:
13227
diff
changeset
|
936 | GaimConnection *gc; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
937 | OscarData *od; |
|
13605
10ee53bacbd2
[gaim-migrate @ 15990]
Mark Doliner <markdoliner@pidgin.im>
parents:
13604
diff
changeset
|
938 | GaimAccount *account; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
939 | FlapConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
940 | |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
941 | conn = data; |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
942 | od = conn->od; |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
943 | gc = od->gc; |
|
13605
10ee53bacbd2
[gaim-migrate @ 15990]
Mark Doliner <markdoliner@pidgin.im>
parents:
13604
diff
changeset
|
944 | account = gaim_connection_get_account(gc); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
945 | |
|
14324
8cbedd82b6ac
[gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
946 | conn->connect_data = NULL; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
947 | conn->fd = source; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
948 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
949 | if (source < 0) |
|
13232
149d582e5fbb
[gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents:
13227
diff
changeset
|
950 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
951 | gaim_debug_error("oscar", "unable to connect FLAP server " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
952 | "of type 0x%04hx\n", conn->type); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
953 | if (conn->type == SNAC_FAMILY_AUTH) |
|
14454
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
954 | { |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
955 | gchar *msg; |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
956 | msg = g_strdup_printf(_("Could not connect to authentication server:\n%s"), |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
957 | error_message); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
958 | gaim_connection_error(gc, msg); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
959 | g_free(msg); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
960 | } |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
961 | else if (conn->type == SNAC_FAMILY_LOCATE) |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
962 | { |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
963 | gchar *msg; |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
964 | msg = g_strdup_printf(_("Could not connect to BOS server:\n%s"), |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
965 | error_message); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
966 | gaim_connection_error(gc, msg); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
967 | g_free(msg); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
968 | } |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
969 | else |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
970 | { |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
971 | /* Maybe we should call this for BOS connections, too? */ |
|
13609
a6fbfad454b6
[gaim-migrate @ 15994]
Mark Doliner <markdoliner@pidgin.im>
parents:
13606
diff
changeset
|
972 | flap_connection_schedule_destroy(conn, |
|
14454
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
973 | OSCAR_DISCONNECT_COULD_NOT_CONNECT, error_message); |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
974 | } |
|
13232
149d582e5fbb
[gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents:
13227
diff
changeset
|
975 | return; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
976 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
977 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
978 | gaim_debug_info("oscar", "connected to FLAP server of type 0x%04hx\n", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
979 | conn->type); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
980 | conn->watcher_incoming = gaim_input_add(conn->fd, |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
981 | GAIM_INPUT_READ, flap_connection_recv_cb, conn); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
982 | if (conn->cookie == NULL) |
|
13603
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
983 | { |
|
13605
10ee53bacbd2
[gaim-migrate @ 15990]
Mark Doliner <markdoliner@pidgin.im>
parents:
13604
diff
changeset
|
984 | if (!aim_sn_is_icq(gaim_account_get_username(account))) |
|
13603
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
985 | /* |
|
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
986 | * We don't send this when authenticating an ICQ account |
|
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
987 | * because for some reason ICQ is still using the |
|
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
988 | * assy/insecure authentication procedure. |
|
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
989 | */ |
|
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
990 | flap_connection_send_version(od, conn); |
|
12489c04a4ea
[gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents:
13602
diff
changeset
|
991 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
992 | else |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
993 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
994 | flap_connection_send_version_with_cookie(od, conn, |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
995 | conn->cookielen, conn->cookie); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
996 | g_free(conn->cookie); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
997 | conn->cookie = NULL; |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
998 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
999 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1000 | if (conn->type == SNAC_FAMILY_AUTH) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1001 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1002 | aim_request_login(od, conn, gaim_account_get_username(account)); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1003 | gaim_debug_info("oscar", "Screen name sent, waiting for response\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1004 | gaim_connection_update_progress(gc, _("Screen name sent"), 1, OSCAR_CONNECT_STEPS); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1005 | ck[1] = 0x65; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1006 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1007 | else if (conn->type == SNAC_FAMILY_LOCATE) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1008 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1009 | gaim_connection_update_progress(gc, _("Connection established, cookie sent"), 4, OSCAR_CONNECT_STEPS); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1010 | ck[4] = 0x61; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1011 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1012 | else if (conn->type == SNAC_FAMILY_CHAT) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1013 | { |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
1014 | od->oscar_chats = g_slist_prepend(od->oscar_chats, conn->new_conn_data); |
|
14324
8cbedd82b6ac
[gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
1015 | conn->new_conn_data = NULL; |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1016 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1017 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1018 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1019 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1020 | flap_connection_established_bos(OscarData *od, FlapConnection *conn) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1021 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1022 | GaimConnection *gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1023 | |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
1024 | aim_srv_reqpersonalinfo(od, conn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1025 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1026 | gaim_debug_info("oscar", "ssi: requesting rights and list\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1027 | aim_ssi_reqrights(od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1028 | aim_ssi_reqdata(od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1029 | if (od->getblisttimer > 0) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1030 | gaim_timeout_remove(od->getblisttimer); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1031 | od->getblisttimer = gaim_timeout_add(30000, gaim_ssi_rerequestdata, od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1032 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1033 | aim_locate_reqrights(od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1034 | aim_buddylist_reqrights(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1035 | aim_im_reqparams(od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1036 | aim_bos_reqrights(od, conn); /* TODO: Don't call this with ssi */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1037 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1038 | gaim_connection_update_progress(gc, _("Finalizing connection"), 5, OSCAR_CONNECT_STEPS); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1039 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1040 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1041 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1042 | flap_connection_established_admin(OscarData *od, FlapConnection *conn) |
| 2086 | 1043 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1044 | aim_clientready(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1045 | gaim_debug_info("oscar", "connected to admin\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1046 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1047 | if (od->chpass) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1048 | gaim_debug_info("oscar", "changing password\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1049 | aim_admin_changepasswd(od, conn, od->newp, od->oldp); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1050 | g_free(od->oldp); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1051 | od->oldp = NULL; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1052 | g_free(od->newp); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1053 | od->newp = NULL; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1054 | od->chpass = FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1055 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1056 | if (od->setnick) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1057 | gaim_debug_info("oscar", "formatting screen name\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1058 | aim_admin_setnick(od, conn, od->newsn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1059 | g_free(od->newsn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1060 | od->newsn = NULL; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1061 | od->setnick = FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1062 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1063 | if (od->conf) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1064 | gaim_debug_info("oscar", "confirming account\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1065 | aim_admin_reqconfirm(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1066 | od->conf = FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1067 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1068 | if (od->reqemail) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1069 | gaim_debug_info("oscar", "requesting e-mail address\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1070 | aim_admin_getinfo(od, conn, 0x0011); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1071 | od->reqemail = FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1072 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1073 | if (od->setemail) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1074 | gaim_debug_info("oscar", "setting e-mail address\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1075 | aim_admin_setemail(od, conn, od->email); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1076 | g_free(od->email); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1077 | od->email = NULL; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1078 | od->setemail = FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1079 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1080 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1081 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1082 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1083 | flap_connection_established_chat(OscarData *od, FlapConnection *conn) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1084 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1085 | GaimConnection *gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1086 | struct chat_connection *chatcon; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1087 | static int id = 1; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1088 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1089 | aim_clientready(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1090 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1091 | chatcon = find_oscar_chat_by_conn(gc, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1092 | chatcon->id = id; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1093 | chatcon->conv = serv_got_joined_chat(gc, id++, chatcon->show); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1094 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1095 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1096 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1097 | flap_connection_established_chatnav(OscarData *od, FlapConnection *conn) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1098 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1099 | aim_clientready(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1100 | aim_chatnav_reqrights(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1101 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1102 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1103 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1104 | flap_connection_established_alert(OscarData *od, FlapConnection *conn) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1105 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1106 | aim_email_sendcookies(od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1107 | aim_email_activate(od); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1108 | aim_clientready(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1109 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1110 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1111 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1112 | flap_connection_established_bart(OscarData *od, FlapConnection *conn) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1113 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1114 | GaimConnection *gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1115 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1116 | aim_clientready(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1117 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1118 | od->iconconnecting = FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1119 | |
|
13924
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
1120 | if (od->icontimer == 0) |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
1121 | od->icontimer = gaim_timeout_add(100, gaim_icon_timerfunc, gc); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1122 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1123 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1124 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1125 | flap_connection_established(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1126 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1127 | gaim_debug_info("oscar", "FLAP connection of type 0x%04hx is " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1128 | "now fully connected\n", conn->type); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1129 | if (conn->type == SNAC_FAMILY_LOCATE) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1130 | flap_connection_established_bos(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1131 | else if (conn->type == SNAC_FAMILY_ADMIN) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1132 | flap_connection_established_admin(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1133 | else if (conn->type == SNAC_FAMILY_CHAT) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1134 | flap_connection_established_chat(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1135 | else if (conn->type == SNAC_FAMILY_CHATNAV) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1136 | flap_connection_established_chatnav(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1137 | else if (conn->type == SNAC_FAMILY_ALERT) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1138 | flap_connection_established_alert(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1139 | else if (conn->type == SNAC_FAMILY_BART) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1140 | flap_connection_established_bart(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1141 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1142 | return 1; |
| 2086 | 1143 | } |
| 1144 | ||
| 15030 | 1145 | void |
|
11837
2f1206084fef
[gaim-migrate @ 14128]
Mark Doliner <markdoliner@pidgin.im>
parents:
11820
diff
changeset
|
1146 | oscar_login(GaimAccount *account) |
|
10444
ea10e6d92619
[gaim-migrate @ 11704]
Mark Doliner <markdoliner@pidgin.im>
parents:
10439
diff
changeset
|
1147 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1148 | GaimConnection *gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1149 | OscarData *od; |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1150 | FlapConnection *newconn; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1151 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1152 | gc = gaim_account_get_connection(account); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1153 | od = gc->proto_data = oscar_data_new(); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1154 | od->gc = gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1155 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1156 | oscar_data_addhandler(od, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNERR, gaim_connerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1157 | oscar_data_addhandler(od, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNINITDONE, flap_connection_established, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1158 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1159 | oscar_data_addhandler(od, SNAC_FAMILY_ADMIN, 0x0003, gaim_info_change, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1160 | oscar_data_addhandler(od, SNAC_FAMILY_ADMIN, 0x0005, gaim_info_change, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1161 | oscar_data_addhandler(od, SNAC_FAMILY_ADMIN, 0x0007, gaim_account_confirm, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1162 | oscar_data_addhandler(od, SNAC_FAMILY_ALERT, 0x0001, gaim_parse_genericerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1163 | oscar_data_addhandler(od, SNAC_FAMILY_ALERT, SNAC_SUBTYPE_ALERT_MAILSTATUS, gaim_email_parseupdate, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1164 | oscar_data_addhandler(od, SNAC_FAMILY_AUTH, 0x0003, gaim_parse_auth_resp, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1165 | oscar_data_addhandler(od, SNAC_FAMILY_AUTH, 0x0007, gaim_parse_login, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1166 | oscar_data_addhandler(od, SNAC_FAMILY_AUTH, SNAC_SUBTYPE_AUTH_SECURID_REQUEST, gaim_parse_auth_securid_request, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1167 | oscar_data_addhandler(od, SNAC_FAMILY_BART, SNAC_SUBTYPE_BART_ERROR, gaim_icon_error, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1168 | oscar_data_addhandler(od, SNAC_FAMILY_BART, SNAC_SUBTYPE_BART_RESPONSE, gaim_icon_parseicon, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1169 | oscar_data_addhandler(od, SNAC_FAMILY_BOS, 0x0001, gaim_parse_genericerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1170 | oscar_data_addhandler(od, SNAC_FAMILY_BOS, 0x0003, gaim_bosrights, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1171 | oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, 0x0001, gaim_parse_genericerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1172 | oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, SNAC_SUBTYPE_BUDDY_RIGHTSINFO, gaim_parse_buddyrights, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1173 | oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, SNAC_SUBTYPE_BUDDY_ONCOMING, gaim_parse_oncoming, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1174 | oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, SNAC_SUBTYPE_BUDDY_OFFGOING, gaim_parse_offgoing, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1175 | oscar_data_addhandler(od, SNAC_FAMILY_CHAT, 0x0001, gaim_parse_genericerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1176 | oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_USERJOIN, gaim_conv_chat_join, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1177 | oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_USERLEAVE, gaim_conv_chat_leave, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1178 | oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_ROOMINFOUPDATE, gaim_conv_chat_info_update, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1179 | oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_INCOMINGMSG, gaim_conv_chat_incoming_msg, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1180 | oscar_data_addhandler(od, SNAC_FAMILY_CHATNAV, 0x0001, gaim_parse_genericerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1181 | oscar_data_addhandler(od, SNAC_FAMILY_CHATNAV, SNAC_SUBTYPE_CHATNAV_INFO, gaim_chatnav_info, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1182 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_ERROR, gaim_ssi_parseerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1183 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RIGHTSINFO, gaim_ssi_parserights, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1184 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_LIST, gaim_ssi_parselist, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1185 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_SRVACK, gaim_ssi_parseack, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1186 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_ADD, gaim_ssi_parseadd, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1187 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RECVAUTH, gaim_ssi_authgiven, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1188 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RECVAUTHREQ, gaim_ssi_authrequest, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1189 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RECVAUTHREP, gaim_ssi_authreply, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1190 | oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_ADDED, gaim_ssi_gotadded, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1191 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, 0x0005, gaim_icbm_param_info, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1192 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_INCOMING, gaim_parse_incoming_im, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1193 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_MISSEDCALL, gaim_parse_misses, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1194 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_CLIENTAUTORESP, gaim_parse_clientauto, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1195 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_ERROR, gaim_parse_msgerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1196 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_MTN, gaim_parse_mtn, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1197 | oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_ACK, gaim_parse_msgack, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1198 | oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_OFFLINEMSG, gaim_offlinemsg, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1199 | oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_OFFLINEMSGCOMPLETE, gaim_offlinemsgdone, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1200 | oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_ALIAS, gaim_icqalias, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1201 | oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_INFO, gaim_icqinfo, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1202 | oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_RIGHTSINFO, gaim_parse_locaterights, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1203 | oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_USERINFO, gaim_parse_userinfo, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1204 | oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_ERROR, gaim_parse_locerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1205 | oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_GOTINFOBLOCK, gaim_got_infoblock, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1206 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x0001, gaim_parse_genericerr, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1207 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x000f, gaim_selfinfo, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1208 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x001f, gaim_memrequest, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1209 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x0021, oscar_icon_req,0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1210 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_RATECHANGE, gaim_parse_ratechange, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1211 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_REDIRECT, gaim_handle_redirect, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1212 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_MOTD, gaim_parse_motd, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1213 | oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_EVIL, gaim_parse_evilnotify, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1214 | oscar_data_addhandler(od, SNAC_FAMILY_POPUP, 0x0002, gaim_popup, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1215 | oscar_data_addhandler(od, SNAC_FAMILY_USERLOOKUP, SNAC_SUBTYPE_USERLOOKUP_ERROR, gaim_parse_searcherror, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1216 | oscar_data_addhandler(od, SNAC_FAMILY_USERLOOKUP, 0x0003, gaim_parse_searchreply, 0); |
| 2086 | 1217 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1218 | gaim_debug_misc("oscar", "oscar_login: gc = %p\n", gc); |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5197
diff
changeset
|
1219 | |
| 8437 | 1220 | if (!aim_snvalid(gaim_account_get_username(account))) { |
| 1221 | gchar *buf; | |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
1222 | buf = g_strdup_printf(_("Unable to login: Could not sign on as %s because the screen name is invalid. Screen names must either start with a letter and contain only letters, numbers and spaces, or contain only numbers."), gaim_account_get_username(account)); |
|
13937
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
1223 | gc->wants_to_die = TRUE; |
| 8437 | 1224 | gaim_connection_error(gc, buf); |
| 1225 | g_free(buf); | |
| 1226 | } | |
| 1227 | ||
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
1228 | if (aim_sn_is_icq((gaim_account_get_username(account)))) { |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
1229 | od->icq = TRUE; |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
1230 | } else { |
|
6622
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
1231 | gc->flags |= GAIM_CONNECTION_HTML; |
|
277eb0b14653
[gaim-migrate @ 7146]
Robert McQueen <robot101@debian.org>
parents:
6621
diff
changeset
|
1232 | gc->flags |= GAIM_CONNECTION_AUTO_RESP; |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
1233 | } |
| 2086 | 1234 | |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
1235 | /* Connect to core Gaim signals */ |
|
10087
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10042
diff
changeset
|
1236 | gaim_prefs_connect_callback(gc, "/plugins/prpl/oscar/recent_buddies", recent_buddies_cb, gc); |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
1237 | |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1238 | newconn = flap_connection_new(od, SNAC_FAMILY_AUTH); |
|
14899
c65f0b4fb351
[gaim-migrate @ 17606]
Mark Doliner <markdoliner@pidgin.im>
parents:
14706
diff
changeset
|
1239 | newconn->connect_data = gaim_proxy_connect(NULL, account, |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1240 | gaim_account_get_string(account, "server", OSCAR_DEFAULT_LOGIN_SERVER), |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1241 | gaim_account_get_int(account, "port", OSCAR_DEFAULT_LOGIN_PORT), |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1242 | connection_established_cb, newconn); |
|
14324
8cbedd82b6ac
[gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
1243 | if (newconn->connect_data == NULL) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1244 | { |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
1245 | gaim_connection_error(gc, _("Couldn't connect to host")); |
| 2086 | 1246 | return; |
| 1247 | } | |
|
7282
73b94979f76b
[gaim-migrate @ 7861]
Mark Doliner <markdoliner@pidgin.im>
parents:
7261
diff
changeset
|
1248 | |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
1249 | gaim_connection_update_progress(gc, _("Connecting"), 0, OSCAR_CONNECT_STEPS); |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
1250 | ck[0] = 0x5a; |
| 5575 | 1251 | } |
| 1252 | ||
| 15030 | 1253 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1254 | oscar_close(GaimConnection *gc) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1255 | { |
|
13598
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1256 | OscarData *od; |
|
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1257 | |
|
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1258 | od = (OscarData *)gc->proto_data; |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
1259 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1260 | while (od->oscar_chats) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1261 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1262 | struct chat_connection *cc = od->oscar_chats->data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1263 | od->oscar_chats = g_slist_remove(od->oscar_chats, cc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1264 | oscar_chat_destroy(cc); |
| 3630 | 1265 | } |
|
13598
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1266 | while (od->create_rooms) |
|
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1267 | { |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
1268 | struct create_room *cr = od->create_rooms->data; |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
1269 | g_free(cr->name); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
1270 | od->create_rooms = g_slist_remove(od->create_rooms, cr); |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
1271 | g_free(cr); |
|
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
1272 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1273 | oscar_data_destroy(od); |
| 2086 | 1274 | gc->proto_data = NULL; |
|
13598
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1275 | |
|
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1276 | gaim_prefs_disconnect_by_handle(gc); |
|
04f6791f65e0
[gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents:
13596
diff
changeset
|
1277 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1278 | gaim_debug_info("oscar", "Signed off.\n"); |
| 2086 | 1279 | } |
| 1280 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1281 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1282 | gaim_parse_auth_resp(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
| 8446 | 1283 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1284 | GaimConnection *gc = od->gc; |
|
6029
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6019
diff
changeset
|
1285 | GaimAccount *account = gc->account; |
|
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6019
diff
changeset
|
1286 | char *host; int port; |
|
14151
34427f138b1f
[gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents:
14097
diff
changeset
|
1287 | int i; |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1288 | FlapConnection *newconn; |
| 2086 | 1289 | va_list ap; |
| 2704 | 1290 | struct aim_authresp_info *info; |
|
6029
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6019
diff
changeset
|
1291 | |
|
11338
1a3663ac9b05
[gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents:
11303
diff
changeset
|
1292 | port = gaim_account_get_int(account, "port", OSCAR_DEFAULT_LOGIN_PORT); |
| 2086 | 1293 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1294 | va_start(ap, fr); |
| 2704 | 1295 | info = va_arg(ap, struct aim_authresp_info *); |
| 2086 | 1296 | va_end(ap); |
| 1297 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1298 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1299 | "inside auth_resp (Screen name: %s)\n", info->sn); |
| 2704 | 1300 | |
|
4293
c025f268b6df
[gaim-migrate @ 4546]
Mark Doliner <markdoliner@pidgin.im>
parents:
4292
diff
changeset
|
1301 | if (info->errorcode || !info->bosip || !info->cookielen || !info->cookie) { |
|
4056
d75ee349aaa4
[gaim-migrate @ 4266]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
3952
diff
changeset
|
1302 | char buf[256]; |
| 2704 | 1303 | switch (info->errorcode) { |
|
14704
2cceedf8ed0a
[gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents:
14667
diff
changeset
|
1304 | case 0x01: |
|
2cceedf8ed0a
[gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents:
14667
diff
changeset
|
1305 | /* Unregistered screen name */ |
|
2cceedf8ed0a
[gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents:
14667
diff
changeset
|
1306 | gc->wants_to_die = TRUE; |
|
14706
15b109f28a77
[gaim-migrate @ 17390]
Mark Doliner <markdoliner@pidgin.im>
parents:
14704
diff
changeset
|
1307 | gaim_connection_error(gc, _("Invalid screen name.")); |
|
14704
2cceedf8ed0a
[gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents:
14667
diff
changeset
|
1308 | break; |
| 2086 | 1309 | case 0x05: |
|
14952
764657bad829
[gaim-migrate @ 17662]
Mark Doliner <markdoliner@pidgin.im>
parents:
14899
diff
changeset
|
1310 | /* Incorrect password */ |
| 6498 | 1311 | gc->wants_to_die = TRUE; |
|
14964
f50a80f36fd8
[gaim-migrate @ 17674]
Mark Doliner <markdoliner@pidgin.im>
parents:
14952
diff
changeset
|
1312 | if (!gaim_account_get_remember_password(account)) |
|
f50a80f36fd8
[gaim-migrate @ 17674]
Mark Doliner <markdoliner@pidgin.im>
parents:
14952
diff
changeset
|
1313 | gaim_account_set_password(account, NULL); |
|
14704
2cceedf8ed0a
[gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents:
14667
diff
changeset
|
1314 | gaim_connection_error(gc, _("Incorrect password.")); |
| 2086 | 1315 | break; |
| 1316 | case 0x11: | |
| 1317 | /* Suspended account */ | |
| 6498 | 1318 | gc->wants_to_die = TRUE; |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
1319 | gaim_connection_error(gc, _("Your account is currently suspended.")); |
| 2086 | 1320 | break; |
|
3498
3f6ce04ea3ad
[gaim-migrate @ 3561]
Mark Doliner <markdoliner@pidgin.im>
parents:
3490
diff
changeset
|
1321 | case 0x14: |
|
3f6ce04ea3ad
[gaim-migrate @ 3561]
Mark Doliner <markdoliner@pidgin.im>
parents:
3490
diff
changeset
|
1322 | /* service temporarily unavailable */ |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
1323 | gaim_connection_error(gc, _("The AOL Instant Messenger service is temporarily unavailable.")); |
|
3498
3f6ce04ea3ad
[gaim-migrate @ 3561]
Mark Doliner <markdoliner@pidgin.im>
parents:
3490
diff
changeset
|
1324 | break; |
| 2086 | 1325 | case 0x18: |
| 1326 | /* connecting too frequently */ | |
| 6498 | 1327 | gc->wants_to_die = TRUE; |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
1328 | gaim_connection_error(gc, _("You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer.")); |
| 2086 | 1329 | break; |
| 1330 | case 0x1c: | |
| 1331 | /* client too old */ | |
| 6498 | 1332 | gc->wants_to_die = TRUE; |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6350
diff
changeset
|
1333 | g_snprintf(buf, sizeof(buf), _("The client version you are using is too old. Please upgrade at %s"), GAIM_WEBSITE); |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
1334 | gaim_connection_error(gc, buf); |
| 2086 | 1335 | break; |
| 1336 | default: | |
|
6623
75ba9eb9d3f8
[gaim-migrate @ 7147]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
6622
diff
changeset
|
1337 | gaim_connection_error(gc, _("Authentication failed")); |
| 2086 | 1338 | break; |
| 1339 | } | |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1340 | gaim_debug_error("oscar", "Login Error Code 0x%04hx\n", info->errorcode); |
|
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1341 | gaim_debug_error("oscar", "Error URL: %s\n", info->errorurl); |
| 2086 | 1342 | od->killme = TRUE; |
| 1343 | return 1; | |
| 1344 | } | |
| 1345 | ||
|
9992
d733f96bfc7b
[gaim-migrate @ 10905]
Mark Doliner <markdoliner@pidgin.im>
parents:
9991
diff
changeset
|
1346 | gaim_debug_misc("oscar", "Reg status: %hu\n", info->regstatus); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1347 | gaim_debug_misc("oscar", "E-mail: %s\n", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1348 | (info->email != NULL) ? info->email : "null"); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1349 | gaim_debug_misc("oscar", "BOSIP: %s\n", info->bosip); |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1350 | gaim_debug_info("oscar", "Closing auth connection...\n"); |
|
14454
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
1351 | flap_connection_schedule_destroy(conn, OSCAR_DISCONNECT_DONE, NULL); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1352 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1353 | for (i = 0; i < strlen(info->bosip); i++) { |
| 2704 | 1354 | if (info->bosip[i] == ':') { |
| 1355 | port = atoi(&(info->bosip[i+1])); | |
| 2086 | 1356 | break; |
| 1357 | } | |
| 1358 | } | |
| 2704 | 1359 | host = g_strndup(info->bosip, i); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1360 | newconn = flap_connection_new(od, SNAC_FAMILY_LOCATE); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1361 | newconn->cookielen = info->cookielen; |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1362 | newconn->cookie = g_memdup(info->cookie, info->cookielen); |
|
14899
c65f0b4fb351
[gaim-migrate @ 17606]
Mark Doliner <markdoliner@pidgin.im>
parents:
14706
diff
changeset
|
1363 | newconn->connect_data = gaim_proxy_connect(NULL, account, host, port, |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1364 | connection_established_cb, newconn); |
| 2086 | 1365 | g_free(host); |
|
14324
8cbedd82b6ac
[gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
1366 | if (newconn->connect_data == NULL) |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1367 | { |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
1368 | gaim_connection_error(gc, _("Could Not Connect")); |
| 2086 | 1369 | od->killme = TRUE; |
| 1370 | return 0; | |
| 1371 | } | |
| 2704 | 1372 | |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
1373 | gaim_connection_update_progress(gc, _("Received authorization"), 3, OSCAR_CONNECT_STEPS); |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
1374 | ck[3] = 0x64; |
|
7282
73b94979f76b
[gaim-migrate @ 7861]
Mark Doliner <markdoliner@pidgin.im>
parents:
7261
diff
changeset
|
1375 | |
| 2086 | 1376 | return 1; |
| 1377 | } | |
| 1378 | ||
|
10464
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1379 | static void |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1380 | gaim_parse_auth_securid_request_yes_cb(gpointer user_data, const char *msg) |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1381 | { |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1382 | GaimConnection *gc = user_data; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1383 | OscarData *od = gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1384 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1385 | aim_auth_securid_send(od, msg); |
|
10464
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1386 | } |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1387 | |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1388 | static void |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1389 | gaim_parse_auth_securid_request_no_cb(gpointer user_data, const char *value) |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1390 | { |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1391 | GaimConnection *gc = user_data; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1392 | OscarData *od = gc->proto_data; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1393 | |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1394 | /* Disconnect */ |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1395 | gc->wants_to_die = TRUE; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1396 | gaim_connection_error(gc, _("The SecurID key entered is invalid.")); |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1397 | od->killme = TRUE; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1398 | } |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1399 | |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1400 | static int |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1401 | gaim_parse_auth_securid_request(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
10464
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1402 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1403 | GaimConnection *gc = od->gc; |
|
10464
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1404 | GaimAccount *account = gaim_connection_get_account(gc); |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1405 | gchar *primary; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1406 | |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1407 | gaim_debug_info("oscar", "Got SecurID request\n"); |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1408 | |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1409 | primary = g_strdup_printf("Enter the SecurID key for %s.", gaim_account_get_username(account)); |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1410 | gaim_request_input(gc, NULL, _("Enter SecurID"), primary, |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1411 | _("Enter the 6 digit number from the digital display."), |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1412 | FALSE, FALSE, NULL, |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1413 | _("OK"), G_CALLBACK(gaim_parse_auth_securid_request_yes_cb), |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1414 | _("Cancel"), G_CALLBACK(gaim_parse_auth_securid_request_no_cb), |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1415 | gc); |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1416 | g_free(primary); |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1417 | |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1418 | return 1; |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1419 | } |
|
034b1b3ad2be
[gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents:
10458
diff
changeset
|
1420 | |
|
14416
c95ffd983a39
[gaim-migrate @ 17060]
Mark Doliner <markdoliner@pidgin.im>
parents:
14410
diff
changeset
|
1421 | /* XXX - Should use gaim_util_fetch_url for the below stuff */ |
| 2086 | 1422 | struct pieceofcrap { |
| 5575 | 1423 | GaimConnection *gc; |
| 2086 | 1424 | unsigned long offset; |
| 1425 | unsigned long len; | |
| 1426 | char *modname; | |
| 1427 | int fd; | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1428 | FlapConnection *conn; |
| 2086 | 1429 | unsigned int inpa; |
| 1430 | }; | |
| 1431 | ||
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
1432 | static void damn_you(gpointer data, gint source, GaimInputCondition c) |
| 2086 | 1433 | { |
| 1434 | struct pieceofcrap *pos = data; | |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
1435 | OscarData *od = pos->gc->proto_data; |
| 2086 | 1436 | char in = '\0'; |
| 1437 | int x = 0; | |
| 1438 | unsigned char m[17]; | |
| 1439 | ||
| 1440 | while (read(pos->fd, &in, 1) == 1) { | |
| 1441 | if (in == '\n') | |
| 1442 | x++; | |
| 1443 | else if (in != '\r') | |
| 1444 | x = 0; | |
| 1445 | if (x == 2) | |
| 1446 | break; | |
| 1447 | in = '\0'; | |
| 1448 | } | |
| 1449 | if (in != '\n') { | |
|
4056
d75ee349aaa4
[gaim-migrate @ 4266]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
3952
diff
changeset
|
1450 | char buf[256]; |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
1451 | g_snprintf(buf, sizeof(buf), _("You may be disconnected shortly. You may want to use TOC until " |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6350
diff
changeset
|
1452 | "this is fixed. Check %s for updates."), GAIM_WEBSITE); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
1453 | gaim_notify_warning(pos->gc, NULL, |
| 7422 | 1454 | _("Gaim was unable to get a valid AIM login hash."), |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
1455 | buf); |
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
1456 | gaim_input_remove(pos->inpa); |
| 2086 | 1457 | close(pos->fd); |
| 1458 | g_free(pos); | |
| 1459 | return; | |
| 1460 | } | |
|
13663
de16367fd001
[gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents:
13655
diff
changeset
|
1461 | if (read(pos->fd, m, 16) != 16) |
|
de16367fd001
[gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents:
13655
diff
changeset
|
1462 | { |
|
de16367fd001
[gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents:
13655
diff
changeset
|
1463 | gaim_debug_warning("oscar", "Could not read full AIM login hash " |
|
de16367fd001
[gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents:
13655
diff
changeset
|
1464 | "from " AIMHASHDATA "--that's bad.\n"); |
|
de16367fd001
[gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents:
13655
diff
changeset
|
1465 | } |
| 2086 | 1466 | m[16] = '\0'; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1467 | gaim_debug_misc("oscar", "Sending hash: "); |
| 2086 | 1468 | for (x = 0; x < 16; x++) |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1469 | gaim_debug_misc(NULL, "%02hhx ", (unsigned char)m[x]); |
|
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1470 | |
|
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1471 | gaim_debug_misc(NULL, "\n"); |
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
1472 | gaim_input_remove(pos->inpa); |
| 2086 | 1473 | close(pos->fd); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1474 | aim_sendmemblock(od, pos->conn, 0, 16, m, AIM_SENDMEMBLOCK_FLAG_ISHASH); |
| 2086 | 1475 | g_free(pos); |
| 1476 | } | |
| 1477 | ||
|
14151
34427f138b1f
[gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents:
14097
diff
changeset
|
1478 | static void |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1479 | straight_to_hell(gpointer data, gint source, const gchar *error_message) |
|
14151
34427f138b1f
[gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents:
14097
diff
changeset
|
1480 | { |
| 2086 | 1481 | struct pieceofcrap *pos = data; |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
1482 | gchar *buf; |
| 2086 | 1483 | |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1484 | if (!GAIM_CONNECTION_IS_VALID(pos->gc)) |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1485 | { |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1486 | g_free(pos->modname); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1487 | g_free(pos); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1488 | return; |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1489 | } |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1490 | |
|
4366
d2b52a5ff6fc
[gaim-migrate @ 4632]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4359
diff
changeset
|
1491 | pos->fd = source; |
|
d2b52a5ff6fc
[gaim-migrate @ 4632]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4359
diff
changeset
|
1492 | |
| 2086 | 1493 | if (source < 0) { |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
1494 | buf = g_strdup_printf(_("You may be disconnected shortly. You may want to use TOC until " |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6350
diff
changeset
|
1495 | "this is fixed. Check %s for updates."), GAIM_WEBSITE); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
1496 | gaim_notify_warning(pos->gc, NULL, |
| 7422 | 1497 | _("Gaim was unable to get a valid AIM login hash."), |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
1498 | buf); |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
1499 | g_free(buf); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1500 | g_free(pos->modname); |
| 2086 | 1501 | g_free(pos); |
| 1502 | return; | |
| 1503 | } | |
| 1504 | ||
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
1505 | buf = g_strdup_printf("GET " AIMHASHDATA "?offset=%ld&len=%ld&modname=%s HTTP/1.0\n\n", |
| 2086 | 1506 | pos->offset, pos->len, pos->modname ? pos->modname : ""); |
| 1507 | write(pos->fd, buf, strlen(buf)); | |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
1508 | g_free(buf); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1509 | g_free(pos->modname); |
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
1510 | pos->inpa = gaim_input_add(pos->fd, GAIM_INPUT_READ, damn_you, pos); |
| 2086 | 1511 | return; |
| 1512 | } | |
| 1513 | ||
| 1514 | /* size of icbmui.ocm, the largest module in AIM 3.5 */ | |
| 1515 | #define AIM_MAX_FILE_SIZE 98304 | |
| 1516 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1517 | int gaim_memrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 1518 | va_list ap; |
| 1519 | struct pieceofcrap *pos; | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
1520 | guint32 offset, len; |
| 2086 | 1521 | char *modname; |
| 1522 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1523 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
1524 | offset = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
1525 | len = va_arg(ap, guint32); |
| 2086 | 1526 | modname = va_arg(ap, char *); |
| 1527 | va_end(ap); | |
| 1528 | ||
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1529 | gaim_debug_misc("oscar", "offset: %u, len: %u, file: %s\n", |
|
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1530 | offset, len, (modname ? modname : "aim.exe")); |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1531 | |
| 2086 | 1532 | if (len == 0) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1533 | gaim_debug_misc("oscar", "len is 0, hashing NULL\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1534 | aim_sendmemblock(od, conn, offset, len, NULL, |
| 2086 | 1535 | AIM_SENDMEMBLOCK_FLAG_ISREQUEST); |
| 1536 | return 1; | |
| 1537 | } | |
|
9625
f2cda8836eb9
[gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents:
9620
diff
changeset
|
1538 | /* uncomment this when you're convinced it's right. remember, it's been wrong before. */ |
|
f2cda8836eb9
[gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents:
9620
diff
changeset
|
1539 | #if 0 |
| 2086 | 1540 | if (offset > AIM_MAX_FILE_SIZE || len > AIM_MAX_FILE_SIZE) { |
| 1541 | char *buf; | |
| 1542 | int i = 8; | |
| 1543 | if (modname) | |
| 1544 | i += strlen(modname); | |
| 1545 | buf = g_malloc(i); | |
| 1546 | i = 0; | |
| 1547 | if (modname) { | |
| 1548 | memcpy(buf, modname, strlen(modname)); | |
| 1549 | i += strlen(modname); | |
| 1550 | } | |
| 1551 | buf[i++] = offset & 0xff; | |
| 1552 | buf[i++] = (offset >> 8) & 0xff; | |
| 1553 | buf[i++] = (offset >> 16) & 0xff; | |
| 1554 | buf[i++] = (offset >> 24) & 0xff; | |
| 1555 | buf[i++] = len & 0xff; | |
| 1556 | buf[i++] = (len >> 8) & 0xff; | |
| 1557 | buf[i++] = (len >> 16) & 0xff; | |
| 1558 | buf[i++] = (len >> 24) & 0xff; | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1559 | gaim_debug_misc("oscar", "len + offset is invalid, " |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1560 | "hashing request\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1561 | aim_sendmemblock(od, command->conn, offset, i, buf, AIM_SENDMEMBLOCK_FLAG_ISREQUEST); |
| 2086 | 1562 | g_free(buf); |
| 1563 | return 1; | |
| 1564 | } | |
|
9625
f2cda8836eb9
[gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents:
9620
diff
changeset
|
1565 | #endif |
| 2086 | 1566 | |
| 1567 | pos = g_new0(struct pieceofcrap, 1); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1568 | pos->gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1569 | pos->conn = conn; |
| 2086 | 1570 | |
| 1571 | pos->offset = offset; | |
| 1572 | pos->len = len; | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14088
diff
changeset
|
1573 | pos->modname = g_strdup(modname); |
| 2086 | 1574 | |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1575 | /* TODO: Keep track of this return value. */ |
|
14899
c65f0b4fb351
[gaim-migrate @ 17606]
Mark Doliner <markdoliner@pidgin.im>
parents:
14706
diff
changeset
|
1576 | if (gaim_proxy_connect(NULL, pos->gc->account, "gaim.sourceforge.net", 80, |
|
14170
f611621bc8a0
[gaim-migrate @ 16742]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
1577 | straight_to_hell, pos) == NULL) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1578 | { |
|
4056
d75ee349aaa4
[gaim-migrate @ 4266]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
3952
diff
changeset
|
1579 | char buf[256]; |
| 2086 | 1580 | if (pos->modname) |
| 1581 | g_free(pos->modname); | |
| 1582 | g_free(pos); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1583 | g_snprintf(buf, sizeof(buf), _("You may be disconnected shortly. " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1584 | "Check %s for updates."), GAIM_WEBSITE); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
1585 | gaim_notify_warning(pos->gc, NULL, |
| 7422 | 1586 | _("Gaim was unable to get a valid login hash."), |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
1587 | buf); |
| 2086 | 1588 | } |
| 1589 | ||
| 1590 | return 1; | |
| 1591 | } | |
| 1592 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1593 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1594 | gaim_parse_login(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1595 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1596 | GaimConnection *gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1597 | GaimAccount *account; |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
1598 | ClientInfo info = CLIENTINFO_GAIM; |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
1599 | va_list ap; |
|
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
1600 | char *key; |
| 2086 | 1601 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1602 | gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1603 | account = gaim_connection_get_account(gc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1604 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1605 | va_start(ap, fr); |
| 2086 | 1606 | key = va_arg(ap, char *); |
| 1607 | va_end(ap); | |
| 1608 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1609 | aim_send_login(od, conn, gaim_account_get_username(account), |
|
12049
36cbae47ceec
[gaim-migrate @ 14344]
Mark Doliner <markdoliner@pidgin.im>
parents:
12000
diff
changeset
|
1610 | gaim_connection_get_password(gc), &info, key); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1611 | |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
1612 | gaim_connection_update_progress(gc, _("Password sent"), 2, OSCAR_CONNECT_STEPS); |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
1613 | ck[2] = 0x6c; |
|
7282
73b94979f76b
[gaim-migrate @ 7861]
Mark Doliner <markdoliner@pidgin.im>
parents:
7261
diff
changeset
|
1614 | |
| 2086 | 1615 | return 1; |
| 1616 | } | |
| 1617 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1618 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1619 | gaim_handle_redirect(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
| 2086 | 1620 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1621 | GaimConnection *gc = od->gc; |
| 5575 | 1622 | GaimAccount *account = gaim_connection_get_account(gc); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1623 | char *host, *separator; |
| 2086 | 1624 | int port; |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1625 | FlapConnection *newconn; |
|
4821
9107fba2dbe5
[gaim-migrate @ 5146]
Mark Doliner <markdoliner@pidgin.im>
parents:
4820
diff
changeset
|
1626 | va_list ap; |
|
9107fba2dbe5
[gaim-migrate @ 5146]
Mark Doliner <markdoliner@pidgin.im>
parents:
4820
diff
changeset
|
1627 | struct aim_redirect_data *redir; |
| 2086 | 1628 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1629 | va_start(ap, fr); |
|
2821
f1ab7f03bdad
[gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1630 | redir = va_arg(ap, struct aim_redirect_data *); |
|
f1ab7f03bdad
[gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1631 | va_end(ap); |
|
f1ab7f03bdad
[gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2820
diff
changeset
|
1632 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1633 | port = gaim_account_get_int(account, "port", OSCAR_DEFAULT_LOGIN_PORT); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1634 | separator = strchr(redir->ip, ':'); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1635 | if (separator != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1636 | { |
|
14011
9c117eecf1c6
[gaim-migrate @ 16492]
Mark Doliner <markdoliner@pidgin.im>
parents:
13970
diff
changeset
|
1637 | host = g_strndup(redir->ip, separator - redir->ip); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1638 | port = atoi(separator + 1); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1639 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1640 | else |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1641 | host = g_strdup(redir->ip); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1642 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1643 | gaim_debug_info("oscar", "Connecting to FLAP server %s:%d of type 0x%04hx\n", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1644 | host, port, redir->group); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1645 | newconn = flap_connection_new(od, redir->group); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1646 | newconn->cookielen = redir->cookielen; |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1647 | newconn->cookie = g_memdup(redir->cookie, redir->cookielen); |
|
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1648 | if (newconn->type == SNAC_FAMILY_CHAT) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1649 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1650 | struct chat_connection *cc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1651 | cc = g_new0(struct chat_connection, 1); |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1652 | cc->conn = newconn; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1653 | cc->gc = gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1654 | cc->name = g_strdup(redir->chat.room); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1655 | cc->exchange = redir->chat.exchange; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1656 | cc->instance = redir->chat.instance; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1657 | cc->show = extract_name(redir->chat.room); |
|
14324
8cbedd82b6ac
[gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
1658 | newconn->new_conn_data = cc; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1659 | gaim_debug_info("oscar", "Connecting to chat room %s exchange %hu\n", cc->name, cc->exchange); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1660 | } |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1661 | |
|
14899
c65f0b4fb351
[gaim-migrate @ 17606]
Mark Doliner <markdoliner@pidgin.im>
parents:
14706
diff
changeset
|
1662 | newconn->connect_data = gaim_proxy_connect(NULL, account, host, port, |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14170
diff
changeset
|
1663 | connection_established_cb, newconn); |
|
14324
8cbedd82b6ac
[gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
1664 | if (newconn->connect_data == NULL) |
|
13632
35dd31f81593
[gaim-migrate @ 16020]
Mark Doliner <markdoliner@pidgin.im>
parents:
13609
diff
changeset
|
1665 | { |
|
14454
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
1666 | flap_connection_schedule_destroy(newconn, |
|
df290cda81a3
[gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents:
14416
diff
changeset
|
1667 | OSCAR_DISCONNECT_COULD_NOT_CONNECT, |
|
14899
c65f0b4fb351
[gaim-migrate @ 17606]
Mark Doliner <markdoliner@pidgin.im>
parents:
14706
diff
changeset
|
1668 | _("Unable to initialize connection")); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1669 | gaim_debug_error("oscar", "Unable to connect to FLAP server " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1670 | "of type 0x%04hx\n", redir->group); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1671 | } |
| 2086 | 1672 | g_free(host); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1673 | |
| 2086 | 1674 | return 1; |
| 1675 | } | |
| 1676 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1677 | static int gaim_parse_oncoming(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
1678 | { |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
1679 | GaimConnection *gc; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
1680 | GaimAccount *account; |
|
11973
42a29ebcf30b
[gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents:
11965
diff
changeset
|
1681 | GaimPresence *presence; |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1682 | struct buddyinfo *bi; |
| 2993 | 1683 | time_t time_idle = 0, signon = 0; |
| 1684 | int type = 0; | |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1685 | gboolean buddy_is_away = FALSE; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1686 | const char *status_id; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1687 | gboolean have_status_message = FALSE; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1688 | char *message = NULL; |
| 2086 | 1689 | va_list ap; |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1690 | aim_userinfo_t *info; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
1691 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1692 | gc = od->gc; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
1693 | account = gaim_connection_get_account(gc); |
|
11973
42a29ebcf30b
[gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents:
11965
diff
changeset
|
1694 | presence = gaim_account_get_presence(account); |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
1695 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1696 | va_start(ap, fr); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
1697 | info = va_arg(ap, aim_userinfo_t *); |
| 2086 | 1698 | va_end(ap); |
|
11973
42a29ebcf30b
[gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents:
11965
diff
changeset
|
1699 | |
|
10130
7256fb884aaf
[gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents:
10116
diff
changeset
|
1700 | g_return_val_if_fail(info != NULL, 1); |
|
7256fb884aaf
[gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents:
10116
diff
changeset
|
1701 | g_return_val_if_fail(info->sn != NULL, 1); |
|
7256fb884aaf
[gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents:
10116
diff
changeset
|
1702 | |
|
4766
4fa5a774d200
[gaim-migrate @ 5084]
Mark Doliner <markdoliner@pidgin.im>
parents:
4763
diff
changeset
|
1703 | if (info->present & AIM_USERINFO_PRESENT_FLAGS) { |
|
4fa5a774d200
[gaim-migrate @ 5084]
Mark Doliner <markdoliner@pidgin.im>
parents:
4763
diff
changeset
|
1704 | if (info->flags & AIM_FLAG_AWAY) |
|
11369
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
1705 | buddy_is_away = TRUE; |
|
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
1706 | } |
| 2993 | 1707 | if (info->present & AIM_USERINFO_PRESENT_ICQEXTSTATUS) { |
|
11510
8f618fb35bd3
[gaim-migrate @ 13755]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11495
diff
changeset
|
1708 | type = info->icqinfo.status; |
| 3013 | 1709 | if (!(info->icqinfo.status & AIM_ICQ_STATE_CHAT) && |
| 1710 | (info->icqinfo.status != AIM_ICQ_STATE_NORMAL)) { | |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
1711 | buddy_is_away = TRUE; |
| 3013 | 1712 | } |
| 2993 | 1713 | } |
| 1714 | ||
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1715 | if (aim_sn_is_icq(info->sn)) { |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1716 | if (type & AIM_ICQ_STATE_CHAT) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1717 | status_id = OSCAR_STATUS_ID_FREE4CHAT; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1718 | else if (type & AIM_ICQ_STATE_DND) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1719 | status_id = OSCAR_STATUS_ID_DND; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1720 | else if (type & AIM_ICQ_STATE_OUT) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1721 | status_id = OSCAR_STATUS_ID_NA; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1722 | else if (type & AIM_ICQ_STATE_BUSY) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1723 | status_id = OSCAR_STATUS_ID_OCCUPIED; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1724 | else if (type & AIM_ICQ_STATE_AWAY) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1725 | status_id = OSCAR_STATUS_ID_AWAY; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1726 | else if (type & AIM_ICQ_STATE_INVISIBLE) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1727 | status_id = OSCAR_STATUS_ID_INVISIBLE; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1728 | else |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1729 | status_id = OSCAR_STATUS_ID_AVAILABLE; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1730 | } else { |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
1731 | if (buddy_is_away) |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1732 | status_id = OSCAR_STATUS_ID_AWAY; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1733 | else |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1734 | status_id = OSCAR_STATUS_ID_AVAILABLE; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1735 | } |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1736 | |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1737 | /* |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1738 | * Handle the available message. If info->status is NULL then the user |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1739 | * may or may not have an available message, so don't do anything. If |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1740 | * info->status is set to the empty string, then the user's client DOES |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1741 | * support available messages and the user DOES NOT have one set. |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1742 | * Otherwise info->status contains the available message. |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1743 | */ |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1744 | if (info->status != NULL) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1745 | { |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1746 | have_status_message = TRUE; |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1747 | if (info->status[0] != '\0') |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1748 | message = oscar_encoding_to_utf8(info->status_encoding, |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1749 | info->status, info->status_len); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1750 | } |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1751 | |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1752 | if (have_status_message) |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1753 | { |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1754 | gaim_prpl_got_user_status(account, info->sn, status_id, |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1755 | "message", message, NULL); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1756 | g_free(message); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1757 | } |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1758 | else |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1759 | gaim_prpl_got_user_status(account, info->sn, status_id, NULL); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1760 | |
|
12350
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1761 | /* Login time stuff */ |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
1762 | if (info->present & AIM_USERINFO_PRESENT_ONLINESINCE) |
|
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
1763 | signon = info->onlinesince; |
|
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
1764 | else if (info->present & AIM_USERINFO_PRESENT_SESSIONLEN) |
| 2993 | 1765 | signon = time(NULL) - info->sessionlen; |
|
10567
87b02dd40349
[gaim-migrate @ 11951]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10565
diff
changeset
|
1766 | if (!aim_sncmp(gaim_account_get_username(account), info->sn)) { |
| 5575 | 1767 | gaim_connection_set_display_name(gc, info->sn); |
|
11973
42a29ebcf30b
[gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents:
11965
diff
changeset
|
1768 | od->timeoffset = signon - gaim_presence_get_login_time(presence); |
|
10567
87b02dd40349
[gaim-migrate @ 11951]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10565
diff
changeset
|
1769 | } |
|
12350
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1770 | gaim_prpl_got_user_login_time(account, info->sn, signon - od->timeoffset); |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1771 | |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1772 | /* Idle time stuff */ |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1773 | /* info->idletime is the number of minutes that this user has been idle */ |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1774 | if (info->present & AIM_USERINFO_PRESENT_IDLE) |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1775 | time_idle = time(NULL) - info->idletime * 60; |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1776 | |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1777 | if (time_idle > 0) |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1778 | gaim_prpl_got_user_idle(account, info->sn, TRUE, time_idle); |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1779 | else |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1780 | gaim_prpl_got_user_idle(account, info->sn, FALSE, 0); |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1781 | |
|
f45d8434a759
[gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents:
12349
diff
changeset
|
1782 | /* Server stored icon stuff */ |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
1783 | bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(account, info->sn)); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1784 | if (!bi) { |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1785 | bi = g_new0(struct buddyinfo, 1); |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
1786 | g_hash_table_insert(od->buddyinfo, g_strdup(gaim_normalize(account, info->sn)), bi); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1787 | } |
|
4739
7263e3ceab43
[gaim-migrate @ 5054]
Mark Doliner <markdoliner@pidgin.im>
parents:
4738
diff
changeset
|
1788 | bi->typingnot = FALSE; |
|
7263e3ceab43
[gaim-migrate @ 5054]
Mark Doliner <markdoliner@pidgin.im>
parents:
4738
diff
changeset
|
1789 | bi->ico_informed = FALSE; |
| 6857 | 1790 | bi->ipaddr = info->icqinfo.ipaddr; |
| 1791 | ||
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1792 | if (info->iconcsumlen) { |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
1793 | const char *filename, *saved_b16 = NULL; |
|
9801
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1794 | char *b16 = NULL, *filepath = NULL; |
|
7093
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1795 | GaimBuddy *b = NULL; |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1796 | |
|
7106
eaeff5775818
[gaim-migrate @ 7671]
Christian Hammond <chipx86@chipx86.com>
parents:
7098
diff
changeset
|
1797 | b16 = gaim_base16_encode(info->iconcsum, info->iconcsumlen); |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
1798 | b = gaim_find_buddy(account, info->sn); |
|
7093
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1799 | /* |
|
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1800 | * If for some reason the checksum is valid, but cached file is not.. |
|
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1801 | * we want to know. |
|
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1802 | */ |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
1803 | if (b != NULL) |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
1804 | filename = gaim_blist_node_get_string((GaimBlistNode*)b, "buddy_icon"); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
1805 | else |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
1806 | filename = NULL; |
|
7093
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1807 | if (filename != NULL) { |
|
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1808 | if (g_file_test(filename, G_FILE_TEST_EXISTS)) |
| 7693 | 1809 | saved_b16 = gaim_blist_node_get_string((GaimBlistNode*)b, |
| 1810 | "icon_checksum"); | |
|
9801
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1811 | else { |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1812 | filepath = g_build_filename(gaim_buddy_icons_get_cache_dir(), |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1813 | filename, NULL); |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1814 | if (g_file_test(filepath, G_FILE_TEST_EXISTS)) |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1815 | saved_b16 = gaim_blist_node_get_string((GaimBlistNode*)b, |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1816 | "icon_checksum"); |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1817 | g_free(filepath); |
|
c061a7280591
[gaim-migrate @ 10669]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9797
diff
changeset
|
1818 | } |
|
7093
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1819 | } else |
|
2fef5364eb2b
[gaim-migrate @ 7658]
Mark Doliner <markdoliner@pidgin.im>
parents:
7091
diff
changeset
|
1820 | saved_b16 = NULL; |
|
7054
b3509b4108e9
[gaim-migrate @ 7617]
Herman Bloggs <herman@bluedigits.com>
parents:
7045
diff
changeset
|
1821 | |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1822 | if (!b16 || !saved_b16 || strcmp(b16, saved_b16)) { |
|
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1823 | GSList *cur = od->requesticon; |
|
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1824 | while (cur && aim_sncmp((char *)cur->data, info->sn)) |
|
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1825 | cur = cur->next; |
|
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1826 | if (!cur) { |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
1827 | od->requesticon = g_slist_append(od->requesticon, g_strdup(gaim_normalize(account, info->sn))); |
|
13924
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
1828 | if (od->icontimer == 0) |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
1829 | od->icontimer = gaim_timeout_add(500, gaim_icon_timerfunc, gc); |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1830 | } |
|
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1831 | } |
| 6053 | 1832 | g_free(b16); |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1833 | } |
|
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
1834 | |
| 2086 | 1835 | return 1; |
| 1836 | } | |
| 1837 | ||
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
1838 | static void gaim_check_comment(OscarData *od, const char *str) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
1839 | if ((str == NULL) || strcmp(str, (const char *)ck)) |
|
14614
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
1840 | aim_locate_setcaps(od, gaim_caps); |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
1841 | else |
|
14614
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
1842 | aim_locate_setcaps(od, gaim_caps | OSCAR_CAPABILITY_SECUREIM); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1843 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1844 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1845 | static int gaim_parse_offgoing(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1846 | GaimConnection *gc = od->gc; |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
1847 | GaimAccount *account = gaim_connection_get_account(gc); |
| 2086 | 1848 | va_list ap; |
|
4739
7263e3ceab43
[gaim-migrate @ 5054]
Mark Doliner <markdoliner@pidgin.im>
parents:
4738
diff
changeset
|
1849 | aim_userinfo_t *info; |
| 2086 | 1850 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1851 | va_start(ap, fr); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
1852 | info = va_arg(ap, aim_userinfo_t *); |
| 2086 | 1853 | va_end(ap); |
| 1854 | ||
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
1855 | gaim_prpl_got_user_status(account, info->sn, OSCAR_STATUS_ID_OFFLINE, NULL); |
| 2086 | 1856 | |
| 7261 | 1857 | g_hash_table_remove(od->buddyinfo, gaim_normalize(gc->account, info->sn)); |
|
5837
e75d4061396e
[gaim-migrate @ 6268]
Mark Doliner <markdoliner@pidgin.im>
parents:
5836
diff
changeset
|
1858 | |
| 2086 | 1859 | return 1; |
| 1860 | } | |
| 1861 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1862 | static int incomingim_chan1(OscarData *od, FlapConnection *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch1_args *args) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1863 | GaimConnection *gc = od->gc; |
|
8708
31a7bd5a32f4
[gaim-migrate @ 9461]
Mark Doliner <markdoliner@pidgin.im>
parents:
8701
diff
changeset
|
1864 | GaimAccount *account = gaim_connection_get_account(gc); |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12189
diff
changeset
|
1865 | GaimMessageFlags flags = 0; |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1866 | struct buddyinfo *bi; |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
1867 | char *iconfile; |
|
9806
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1868 | GString *message; |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1869 | gchar *tmp; |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1870 | aim_mpmsg_section_t *curpart; |
|
13734
fd3b79cb8e4b
[gaim-migrate @ 16143]
Mark Doliner <markdoliner@pidgin.im>
parents:
13730
diff
changeset
|
1871 | const char *start, *end; |
|
12675
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1872 | GData *attribs; |
|
9806
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1873 | |
|
11537
1628dff8c1ea
[gaim-migrate @ 13791]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11533
diff
changeset
|
1874 | gaim_debug_misc("oscar", "Received IM from %s with %d parts\n", |
|
9806
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1875 | userinfo->sn, args->mpmsg.numparts); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1876 | |
|
10595
1338add2b0b0
[gaim-migrate @ 12010]
Mark Doliner <markdoliner@pidgin.im>
parents:
10594
diff
changeset
|
1877 | if (args->mpmsg.numparts == 0) |
|
1338add2b0b0
[gaim-migrate @ 12010]
Mark Doliner <markdoliner@pidgin.im>
parents:
10594
diff
changeset
|
1878 | return 1; |
|
1338add2b0b0
[gaim-migrate @ 12010]
Mark Doliner <markdoliner@pidgin.im>
parents:
10594
diff
changeset
|
1879 | |
|
8708
31a7bd5a32f4
[gaim-migrate @ 9461]
Mark Doliner <markdoliner@pidgin.im>
parents:
8701
diff
changeset
|
1880 | bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(account, userinfo->sn)); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1881 | if (!bi) { |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1882 | bi = g_new0(struct buddyinfo, 1); |
|
8708
31a7bd5a32f4
[gaim-migrate @ 9461]
Mark Doliner <markdoliner@pidgin.im>
parents:
8701
diff
changeset
|
1883 | g_hash_table_insert(od->buddyinfo, g_strdup(gaim_normalize(account, userinfo->sn)), bi); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1884 | } |
|
2273
b7c08d737d81
[gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2249
diff
changeset
|
1885 | |
|
b7c08d737d81
[gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2249
diff
changeset
|
1886 | if (args->icbmflags & AIM_IMFLAGS_AWAY) |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12189
diff
changeset
|
1887 | flags |= GAIM_MESSAGE_AUTO_RESP; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1888 | |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1889 | if (args->icbmflags & AIM_IMFLAGS_TYPINGNOT) |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1890 | bi->typingnot = TRUE; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1891 | else |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1892 | bi->typingnot = FALSE; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1893 | |
|
4380
c7c7beab8e56
[gaim-migrate @ 4646]
Mark Doliner <markdoliner@pidgin.im>
parents:
4374
diff
changeset
|
1894 | if ((args->icbmflags & AIM_IMFLAGS_HASICON) && (args->iconlen) && (args->iconsum) && (args->iconstamp)) { |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1895 | gaim_debug_misc("oscar", "%s has an icon\n", userinfo->sn); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1896 | if ((args->iconlen != bi->ico_len) || (args->iconsum != bi->ico_csum) || (args->iconstamp != bi->ico_time)) { |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1897 | bi->ico_need = TRUE; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1898 | bi->ico_len = args->iconlen; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1899 | bi->ico_csum = args->iconsum; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
1900 | bi->ico_time = args->iconstamp; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1901 | } |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1902 | } |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1903 | |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
1904 | iconfile = gaim_buddy_icons_get_full_path(gaim_account_get_buddy_icon(account)); |
|
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
1905 | if ((iconfile != NULL) && |
| 7406 | 1906 | (args->icbmflags & AIM_IMFLAGS_BUDDYREQ) && !bi->ico_sent && bi->ico_informed) { |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1907 | FILE *file; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1908 | struct stat st; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1909 | |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
1910 | if (!g_stat(iconfile, &st)) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
1911 | guchar *buf = g_malloc(st.st_size); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
1912 | file = g_fopen(iconfile, "rb"); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1913 | if (file) { |
|
9532
32470c5a1d58
[gaim-migrate @ 10359]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
9481
diff
changeset
|
1914 | /* XXX - Use g_file_get_contents() */ |
|
13829
ac73840b2117
[gaim-migrate @ 16271]
Mark Doliner <markdoliner@pidgin.im>
parents:
13802
diff
changeset
|
1915 | /* g_file_get_contents(iconfile, &data, &len, NULL); */ |
|
2603
0c39616168c9
[gaim-migrate @ 2616]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2597
diff
changeset
|
1916 | int len = fread(buf, 1, st.st_size, file); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
1917 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1918 | "Sending buddy icon to %s (%d bytes, " |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1919 | "%lu reported)\n", |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1920 | userinfo->sn, len, st.st_size); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1921 | aim_im_sendch2_icon(od, userinfo->sn, buf, st.st_size, |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
1922 | st.st_mtime, aimutil_iconsum(buf, st.st_size)); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1923 | fclose(file); |
|
2336
43d65c408209
[gaim-migrate @ 2349]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2315
diff
changeset
|
1924 | } else |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1925 | gaim_debug_error("oscar", "Can't open buddy icon file!\n"); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1926 | g_free(buf); |
|
2336
43d65c408209
[gaim-migrate @ 2349]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2315
diff
changeset
|
1927 | } else |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
1928 | gaim_debug_error("oscar", "Can't stat buddy icon file!\n"); |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1929 | } |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
1930 | g_free(iconfile); |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
1931 | |
|
9806
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1932 | message = g_string_new(""); |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1933 | curpart = args->mpmsg.parts; |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1934 | while (curpart != NULL) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
1935 | tmp = gaim_plugin_oscar_decode_im_part(account, userinfo->sn, curpart->charset, |
|
12675
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1936 | curpart->charsubset, curpart->data, curpart->datalen); |
|
9806
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1937 | if (tmp != NULL) { |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1938 | g_string_append(message, tmp); |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1939 | g_free(tmp); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1940 | } |
|
9806
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1941 | |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1942 | curpart = curpart->next; |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1943 | } |
|
6b4ad56649c6
[gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents:
9801
diff
changeset
|
1944 | tmp = g_string_free(message, FALSE); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1945 | |
|
8666
582a118d6b91
[gaim-migrate @ 9418]
Mark Doliner <markdoliner@pidgin.im>
parents:
8660
diff
changeset
|
1946 | /* |
|
10781
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
1947 | * If the message is from an ICQ user and to an ICQ user then escape any HTML, |
| 9016 | 1948 | * because HTML is not sent over ICQ as a means to format a message. |
|
10781
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
1949 | * So any HTML we receive is intended to be displayed. Also, \r\n must be |
|
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
1950 | * replaced with <br> |
| 8995 | 1951 | * |
| 1952 | * Note: There *may* be some clients which send messages as HTML formatted - | |
| 1953 | * they need to be special-cased somehow. | |
|
8666
582a118d6b91
[gaim-migrate @ 9418]
Mark Doliner <markdoliner@pidgin.im>
parents:
8660
diff
changeset
|
1954 | */ |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
1955 | if (aim_sn_is_icq(gaim_account_get_username(account)) && aim_sn_is_icq(userinfo->sn)) { |
| 8995 | 1956 | /* being recevied by ICQ from ICQ - escape HTML so it is displayed as sent */ |
|
10732
5e314ab498bf
[gaim-migrate @ 12334]
Richard Laager <rlaager@pidgin.im>
parents:
10715
diff
changeset
|
1957 | gchar *tmp2 = g_markup_escape_text(tmp, -1); |
|
8493
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
1958 | g_free(tmp); |
|
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
1959 | tmp = tmp2; |
|
10783
566217565d70
[gaim-migrate @ 12412]
Mark Doliner <markdoliner@pidgin.im>
parents:
10781
diff
changeset
|
1960 | tmp2 = gaim_strreplace(tmp, "\r\n", "<br>"); |
|
10781
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
1961 | g_free(tmp); |
|
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
1962 | tmp = tmp2; |
|
8493
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
1963 | } |
|
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
1964 | |
|
12675
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1965 | /* |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1966 | * Convert iChat color tags to normal font tags. |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1967 | */ |
|
13734
fd3b79cb8e4b
[gaim-migrate @ 16143]
Mark Doliner <markdoliner@pidgin.im>
parents:
13730
diff
changeset
|
1968 | if (gaim_markup_find_tag("body", tmp, &start, &end, &attribs)) |
|
12675
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1969 | { |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1970 | const char *ichattextcolor, *ichatballooncolor; |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1971 | |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1972 | ichattextcolor = g_datalist_get_data(&attribs, "ichattextcolor"); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1973 | if (ichattextcolor != NULL) |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1974 | { |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1975 | gchar *tmp2; |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1976 | tmp2 = g_strdup_printf("<font color=\"%s\">%s</font>", ichattextcolor, tmp); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1977 | g_free(tmp); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1978 | tmp = tmp2; |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1979 | } |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1980 | |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1981 | ichatballooncolor = g_datalist_get_data(&attribs, "ichatballooncolor"); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1982 | if (ichatballooncolor != NULL) |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1983 | { |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1984 | gchar *tmp2; |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1985 | tmp2 = g_strdup_printf("<font back=\"%s\">%s</font>", ichatballooncolor, tmp); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1986 | g_free(tmp); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1987 | tmp = tmp2; |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1988 | } |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1989 | |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1990 | g_datalist_clear(&attribs); |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1991 | } |
|
7eacb2160c67
[gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents:
12663
diff
changeset
|
1992 | |
|
6982
12f08de92674
[gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents:
6907
diff
changeset
|
1993 | serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL)); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1994 | g_free(tmp); |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1995 | |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1996 | return 1; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1997 | } |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
1998 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
1999 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2000 | incomingim_chan2(OscarData *od, FlapConnection *conn, aim_userinfo_t *userinfo, IcbmArgsCh2 *args) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2001 | { |
| 9070 | 2002 | GaimConnection *gc; |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2003 | GaimAccount *account; |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2004 | char *message = NULL; |
| 9070 | 2005 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2006 | g_return_val_if_fail(od != NULL, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2007 | g_return_val_if_fail(od->gc != NULL, 0); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2008 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2009 | gc = od->gc; |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2010 | account = gaim_connection_get_account(gc); |
| 9070 | 2011 | od = gc->proto_data; |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2012 | |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2013 | if (args == NULL) |
| 4121 | 2014 | return 0; |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
2015 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2016 | gaim_debug_misc("oscar", "Incoming rendezvous message of type %u, " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2017 | "user %s, status %hu\n", args->type, userinfo->sn, args->status); |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2018 | |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2019 | if (args->msg != NULL) |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2020 | { |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2021 | if (args->encoding != NULL) |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2022 | { |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2023 | char *encoding = NULL; |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2024 | encoding = oscar_encoding_extract(args->encoding); |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2025 | message = oscar_encoding_to_utf8(encoding, args->msg, args->msglen); |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2026 | g_free(encoding); |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2027 | } else { |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2028 | if (g_utf8_validate(args->msg, args->msglen, NULL)) |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2029 | message = g_strdup(args->msg); |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2030 | } |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2031 | } |
| 2869 | 2032 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2033 | if (args->type & OSCAR_CAPABILITY_CHAT) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2034 | { |
| 4121 | 2035 | char *name; |
| 5234 | 2036 | GHashTable *components; |
| 2037 | ||
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2038 | if (!args->info.chat.roominfo.name || !args->info.chat.roominfo.exchange) { |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2039 | g_free(message); |
| 4121 | 2040 | return 1; |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2041 | } |
| 5234 | 2042 | components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
| 2043 | g_free); | |
| 4121 | 2044 | name = extract_name(args->info.chat.roominfo.name); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2045 | g_hash_table_replace(components, g_strdup("room"), |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2046 | g_strdup(name ? name : args->info.chat.roominfo.name)); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2047 | g_hash_table_replace(components, g_strdup("exchange"), |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2048 | g_strdup_printf("%d", args->info.chat.roominfo.exchange)); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2049 | serv_got_chat_invite(gc, |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2050 | name ? name : args->info.chat.roominfo.name, |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2051 | userinfo->sn, |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2052 | message, |
| 5234 | 2053 | components); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2054 | if (name) |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2055 | g_free(name); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2056 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2057 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2058 | else if ((args->type & OSCAR_CAPABILITY_SENDFILE) || |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2059 | (args->type & OSCAR_CAPABILITY_DIRECTIM)) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2060 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2061 | if (args->status == AIM_RENDEZVOUS_PROPOSE) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2062 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2063 | peer_connection_got_proposition(od, userinfo->sn, message, args); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2064 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2065 | else if (args->status == AIM_RENDEZVOUS_CANCEL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2066 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2067 | /* The other user canceled a peer request */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2068 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2069 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2070 | conn = peer_connection_find_by_cookie(od, userinfo->sn, args->cookie); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2071 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2072 | * If conn is NULL it means we haven't tried to create |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2073 | * a connection with that user. They may be trying to |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2074 | * do something malicious. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2075 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2076 | if (conn != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2077 | { |
|
14464
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14454
diff
changeset
|
2078 | peer_connection_destroy(conn, OSCAR_DISCONNECT_REMOTE_CLOSED, NULL); |
|
11369
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
2079 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2080 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2081 | else if (args->status == AIM_RENDEZVOUS_CONNECTED) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2082 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2083 | /* Remote user has accepted our peer request */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2084 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2085 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2086 | conn = peer_connection_find_by_cookie(od, userinfo->sn, args->cookie); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2087 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2088 | * If conn is NULL it means we haven't tried to create |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2089 | * a connection with that user. They may be trying to |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2090 | * do something malicious. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2091 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2092 | if (conn != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2093 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2094 | if (conn->listenerfd != -1) |
|
11369
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
2095 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2096 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2097 | * If they are connecting directly to us then |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2098 | * continue the peer negotiation by |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2099 | * accepting connections on our listener port. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2100 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2101 | conn->watcher_incoming = gaim_input_add(conn->listenerfd, |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2102 | GAIM_INPUT_READ, peer_connection_listen_cb, conn); |
|
11369
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
2103 | } |
|
8d396dd4633d
[gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents:
11359
diff
changeset
|
2104 | } |
| 3630 | 2105 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2106 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2107 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2108 | else if (args->type & OSCAR_CAPABILITY_GETFILE) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2109 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2110 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2111 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2112 | else if (args->type & OSCAR_CAPABILITY_TALK) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2113 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2114 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2115 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2116 | else if (args->type & OSCAR_CAPABILITY_BUDDYICON) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2117 | { |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2118 | gaim_buddy_icons_set_for_user(account, userinfo->sn, |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2119 | args->info.icon.icon, |
|
6846
f814f02dca87
[gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents:
6787
diff
changeset
|
2120 | args->info.icon.length); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2121 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2122 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2123 | else if (args->type & OSCAR_CAPABILITY_ICQSERVERRELAY) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2124 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2125 | gaim_debug_error("oscar", "Got an ICQ Server Relay message of " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2126 | "type %d\n", args->info.rtfmsg.msgtype); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2127 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2128 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2129 | else |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2130 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2131 | gaim_debug_error("oscar", "Unknown request class %hu\n", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2132 | args->type); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2133 | } |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2134 | |
|
9933
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2135 | g_free(message); |
|
61bd3fadbfe6
[gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents:
9927
diff
changeset
|
2136 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2137 | return 1; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2138 | } |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2139 | |
| 3453 | 2140 | /* |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2141 | * Authorization Functions |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
2142 | * Most of these are callbacks from dialogs. They're used by both |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2143 | * methods of authorization (SSI and old-school channel 4 ICBM) |
| 3453 | 2144 | */ |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
2145 | /* When you ask other people for authorization */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2146 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2147 | gaim_auth_request(struct name_data *data, char *msg) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2148 | { |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2149 | GaimConnection *gc; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2150 | OscarData *od; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2151 | GaimBuddy *buddy; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2152 | GaimGroup *group; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2153 | |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2154 | gc = data->gc; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2155 | od = gc->proto_data; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2156 | buddy = gaim_find_buddy(gaim_connection_get_account(gc), data->name); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2157 | if (buddy != NULL) |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2158 | group = gaim_buddy_get_group(buddy); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2159 | else |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2160 | group = NULL; |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2161 | |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2162 | if (group != NULL) |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2163 | { |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2164 | gaim_debug_info("oscar", "ssi: adding buddy %s to group %s\n", |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2165 | buddy->name, group->name); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2166 | aim_ssi_sendauthrequest(od, data->name, msg ? msg : _("Please authorize me so I can add you to my buddy list.")); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2167 | if (!aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY)) |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2168 | aim_ssi_addbuddy(od, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 1); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2169 | } |
|
4337
f74d112ccb7c
[gaim-migrate @ 4601]
Mark Doliner <markdoliner@pidgin.im>
parents:
4336
diff
changeset
|
2170 | } |
|
f74d112ccb7c
[gaim-migrate @ 4601]
Mark Doliner <markdoliner@pidgin.im>
parents:
4336
diff
changeset
|
2171 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2172 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2173 | gaim_auth_dontrequest(struct name_data *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2174 | { |
| 5575 | 2175 | GaimConnection *gc = data->gc; |
|
14030
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2176 | GaimBuddy *b = gaim_find_buddy(gaim_connection_get_account(gc), data->name); |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2177 | |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2178 | /* Remove from local list */ |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2179 | gaim_blist_remove_buddy(b); |
|
4244
3a0952e07004
[gaim-migrate @ 4494]
Mark Doliner <markdoliner@pidgin.im>
parents:
4243
diff
changeset
|
2180 | |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
2181 | oscar_free_name_data(data); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2182 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2183 | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2184 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2185 | static void |
|
15115
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2186 | gaim_auth_sendrequest(GaimConnection *gc, const char *name) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2187 | { |
|
15115
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2188 | struct name_data *data; |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2189 | |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2190 | data = g_new0(struct name_data, 1); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
2191 | data->gc = gc; |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
2192 | data->name = g_strdup(name); |
|
15115
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2193 | |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2194 | gaim_request_input(data->gc, NULL, _("Authorization Request Message:"), |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2195 | NULL, _("Please authorize me!"), TRUE, FALSE, NULL, |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2196 | _("OK"), G_CALLBACK(gaim_auth_request), |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2197 | _("Cancel"), G_CALLBACK(gaim_auth_dontrequest), |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
2198 | data); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
2199 | } |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
2200 | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2201 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2202 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2203 | gaim_auth_sendrequest_menu(GaimBlistNode *node, gpointer ignored) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2204 | { |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2205 | GaimBuddy *buddy; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2206 | GaimConnection *gc; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2207 | |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2208 | g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2209 | |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2210 | buddy = (GaimBuddy *) node; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2211 | gc = gaim_account_get_connection(buddy->account); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2212 | gaim_auth_sendrequest(gc, buddy->name); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2213 | } |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
2214 | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2215 | /* When other people ask you for authorization */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2216 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2217 | gaim_auth_grant(struct name_data *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2218 | { |
| 5575 | 2219 | GaimConnection *gc = data->gc; |
|
14030
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2220 | OscarData *od = gc->proto_data; |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2221 | |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2222 | aim_ssi_sendauthreply(od, data->name, 0x01, NULL); |
|
4244
3a0952e07004
[gaim-migrate @ 4494]
Mark Doliner <markdoliner@pidgin.im>
parents:
4243
diff
changeset
|
2223 | |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
2224 | oscar_free_name_data(data); |
| 3141 | 2225 | } |
| 2226 | ||
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2227 | /* When other people ask you for authorization */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2228 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2229 | gaim_auth_dontgrant(struct name_data *data, char *msg) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2230 | { |
| 5575 | 2231 | GaimConnection *gc = data->gc; |
|
14030
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2232 | OscarData *od = gc->proto_data; |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2233 | |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2234 | aim_ssi_sendauthreply(od, data->name, 0x00, msg ? msg : _("No reason given.")); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2235 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2236 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2237 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2238 | gaim_auth_dontgrant_msgprompt(struct name_data *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2239 | { |
|
5493
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
2240 | gaim_request_input(data->gc, NULL, _("Authorization Denied Message:"), |
| 8697 | 2241 | NULL, _("No reason given."), TRUE, FALSE, NULL, |
|
5493
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
2242 | _("OK"), G_CALLBACK(gaim_auth_dontgrant), |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
2243 | _("Cancel"), G_CALLBACK(oscar_free_name_data), |
|
5493
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
2244 | data); |
| 3141 | 2245 | } |
| 2246 | ||
| 7023 | 2247 | /* When someone sends you buddies */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2248 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2249 | gaim_icq_buddyadd(struct name_data *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2250 | { |
| 5575 | 2251 | GaimConnection *gc = data->gc; |
|
4244
3a0952e07004
[gaim-migrate @ 4494]
Mark Doliner <markdoliner@pidgin.im>
parents:
4243
diff
changeset
|
2252 | |
|
14030
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2253 | gaim_blist_request_add_buddy(gaim_connection_get_account(gc), data->name, NULL, data->nick); |
|
4244
3a0952e07004
[gaim-migrate @ 4494]
Mark Doliner <markdoliner@pidgin.im>
parents:
4243
diff
changeset
|
2254 | |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
2255 | oscar_free_name_data(data); |
| 3453 | 2256 | } |
| 2257 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2258 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2259 | incomingim_chan4(OscarData *od, FlapConnection *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch4_args *args, time_t t) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2260 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2261 | GaimConnection *gc = od->gc; |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
2262 | GaimAccount *account = gaim_connection_get_account(gc); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2263 | gchar **msg1, **msg2; |
|
6051
6d481c30603c
[gaim-migrate @ 6501]
Mark Doliner <markdoliner@pidgin.im>
parents:
6040
diff
changeset
|
2264 | int i, numtoks; |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2265 | |
| 4121 | 2266 | if (!args->type || !args->msg || !args->uin) |
| 2267 | return 1; | |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
2268 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2269 | gaim_debug_info("oscar", |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2270 | "Received a channel 4 message of type 0x%02hx.\n", |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
2271 | args->type); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2272 | |
|
9919
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2273 | /* |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2274 | * Split up the message at the delimeter character, then convert each |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2275 | * string to UTF-8. Unless, of course, this is a type 1 message. If |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2276 | * this is a type 1 message, then the delimiter 0xfe could be a valid |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2277 | * character in whatever encoding the message was sent in. Type 1 |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2278 | * messages are always made up of only one part, so we can easily account |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2279 | * for this suck-ass part of the protocol by splitting the string into at |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2280 | * most 1 baby string. |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2281 | */ |
|
938f9e7a4db9
[gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents:
9917
diff
changeset
|
2282 | msg1 = g_strsplit(args->msg, "\376", (args->type == 0x01 ? 1 : 0)); |
|
6051
6d481c30603c
[gaim-migrate @ 6501]
Mark Doliner <markdoliner@pidgin.im>
parents:
6040
diff
changeset
|
2283 | for (numtoks=0; msg1[numtoks]; numtoks++); |
|
6d481c30603c
[gaim-migrate @ 6501]
Mark Doliner <markdoliner@pidgin.im>
parents:
6040
diff
changeset
|
2284 | msg2 = (gchar **)g_malloc((numtoks+1)*sizeof(gchar *)); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2285 | for (i=0; msg1[i]; i++) { |
|
11920
be80617ec59b
[gaim-migrate @ 14211]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11910
diff
changeset
|
2286 | gaim_str_strip_char(msg1[i], '\r'); |
|
14464
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14454
diff
changeset
|
2287 | /* TODO: Should use an encoding other than ASCII? */ |
|
9908
e9b6e5a8bf00
[gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents:
9879
diff
changeset
|
2288 | msg2[i] = gaim_plugin_oscar_decode_im_part(account, "1", AIM_CHARSET_ASCII, 0x0000, msg1[i], strlen(msg1[i])); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2289 | } |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2290 | msg2[i] = NULL; |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2291 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
2292 | switch (args->type) { |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2293 | case 0x01: { /* MacICQ message or basic offline message */ |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2294 | if (i >= 1) { |
|
5556
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
2295 | gchar *uin = g_strdup_printf("%u", args->uin); |
|
8493
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
2296 | gchar *tmp; |
|
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
2297 | |
|
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
2298 | /* If the message came from an ICQ user then escape any HTML */ |
|
10732
5e314ab498bf
[gaim-migrate @ 12334]
Richard Laager <rlaager@pidgin.im>
parents:
10715
diff
changeset
|
2299 | tmp = g_markup_escape_text(msg2[0], -1); |
|
8493
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
2300 | |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2301 | if (t) { /* This is an offline message */ |
|
9680
170d9c1ab218
[gaim-migrate @ 10532]
Dave West <kat@users.sourceforge.net>
parents:
9661
diff
changeset
|
2302 | /* The timestamp is UTC-ish, so we need to get the offset */ |
|
9698
d83c7c4b0ccc
[gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents:
9680
diff
changeset
|
2303 | #ifdef HAVE_TM_GMTOFF |
|
9724
7e977ad7ccef
[gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents:
9713
diff
changeset
|
2304 | time_t now; |
|
7e977ad7ccef
[gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents:
9713
diff
changeset
|
2305 | struct tm *tm; |
|
7e977ad7ccef
[gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents:
9713
diff
changeset
|
2306 | now = time(NULL); |
|
7e977ad7ccef
[gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents:
9713
diff
changeset
|
2307 | tm = localtime(&now); |
|
7e977ad7ccef
[gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents:
9713
diff
changeset
|
2308 | t += tm->tm_gmtoff; |
|
9698
d83c7c4b0ccc
[gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents:
9680
diff
changeset
|
2309 | #else |
|
d83c7c4b0ccc
[gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents:
9680
diff
changeset
|
2310 | # ifdef HAVE_TIMEZONE |
|
9680
170d9c1ab218
[gaim-migrate @ 10532]
Dave West <kat@users.sourceforge.net>
parents:
9661
diff
changeset
|
2311 | tzset(); |
|
170d9c1ab218
[gaim-migrate @ 10532]
Dave West <kat@users.sourceforge.net>
parents:
9661
diff
changeset
|
2312 | t -= timezone; |
|
9698
d83c7c4b0ccc
[gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents:
9680
diff
changeset
|
2313 | # endif |
|
d83c7c4b0ccc
[gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents:
9680
diff
changeset
|
2314 | #endif |
| 8514 | 2315 | serv_got_im(gc, uin, tmp, 0, t); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2316 | } else { /* This is a message from MacICQ/Miranda */ |
| 8514 | 2317 | serv_got_im(gc, uin, tmp, 0, time(NULL)); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2318 | } |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2319 | g_free(uin); |
|
8493
9a0f65deacb2
[gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents:
8476
diff
changeset
|
2320 | g_free(tmp); |
|
4075
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
2321 | } |
|
3316
43bb95f6167a
[gaim-migrate @ 3334]
Mark Doliner <markdoliner@pidgin.im>
parents:
3279
diff
changeset
|
2322 | } break; |
|
43bb95f6167a
[gaim-migrate @ 3334]
Mark Doliner <markdoliner@pidgin.im>
parents:
3279
diff
changeset
|
2323 | |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2324 | case 0x04: { /* Someone sent you a URL */ |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2325 | if (i >= 2) { |
|
7385
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2326 | if (msg2[1] != NULL) { |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2327 | gchar *uin = g_strdup_printf("%u", args->uin); |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2328 | gchar *message = g_strdup_printf("<A HREF=\"%s\">%s</A>", |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2329 | msg2[1], |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2330 | (msg2[0] && msg2[0][0]) ? msg2[0] : msg2[1]); |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2331 | serv_got_im(gc, uin, message, 0, time(NULL)); |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2332 | g_free(uin); |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2333 | g_free(message); |
|
000d887035a2
[gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents:
7376
diff
changeset
|
2334 | } |
| 3453 | 2335 | } |
| 2336 | } break; | |
| 2337 | ||
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2338 | case 0x06: { /* Someone requested authorization */ |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2339 | if (i >= 6) { |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2340 | struct name_data *data = g_new(struct name_data, 1); |
|
11102
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
2341 | gchar *sn = g_strdup_printf("%u", args->uin); |
|
15122
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
2342 | gchar *reason = NULL; |
|
11102
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
2343 | |
|
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
2344 | if (msg2[5] != NULL) |
|
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
2345 | reason = gaim_plugin_oscar_decode_im_part(account, sn, AIM_CHARSET_CUSTOM, 0x0000, msg2[5], strlen(msg2[5])); |
| 15119 | 2346 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2347 | gaim_debug_info("oscar", |
|
5556
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
2348 | "Received an authorization request from UIN %u\n", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2349 | args->uin); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2350 | data->gc = gc; |
|
11102
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
2351 | data->name = sn; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2352 | data->nick = NULL; |
|
15122
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
2353 | |
|
15204
6775ac53169c
[gaim-migrate @ 17928]
Mark Doliner <markdoliner@pidgin.im>
parents:
15197
diff
changeset
|
2354 | gaim_account_request_authorization(account, sn, NULL, NULL, |
|
6775ac53169c
[gaim-migrate @ 17928]
Mark Doliner <markdoliner@pidgin.im>
parents:
15197
diff
changeset
|
2355 | reason, gaim_find_buddy(account, sn) != NULL, |
|
6775ac53169c
[gaim-migrate @ 17928]
Mark Doliner <markdoliner@pidgin.im>
parents:
15197
diff
changeset
|
2356 | G_CALLBACK(gaim_auth_grant), |
|
15142
32b4b0750b6c
[gaim-migrate @ 17866]
Mark Doliner <markdoliner@pidgin.im>
parents:
15139
diff
changeset
|
2357 | G_CALLBACK(gaim_auth_dontgrant_msgprompt), data); |
| 15119 | 2358 | g_free(reason); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2359 | } |
| 3141 | 2360 | } break; |
| 2361 | ||
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2362 | case 0x07: { /* Someone has denied you authorization */ |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2363 | if (i >= 1) { |
| 7023 | 2364 | gchar *dialog_msg = g_strdup_printf(_("The user %u has denied your request to add them to your buddy list for the following reason:\n%s"), args->uin, msg2[0] ? msg2[0] : _("No reason given.")); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2365 | gaim_notify_info(gc, NULL, _("ICQ authorization denied."), |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2366 | dialog_msg); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2367 | g_free(dialog_msg); |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2368 | } |
| 3141 | 2369 | } break; |
| 2370 | ||
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2371 | case 0x08: { /* Someone has granted you authorization */ |
| 7023 | 2372 | gchar *dialog_msg = g_strdup_printf(_("The user %u has granted your request to add them to your buddy list."), args->uin); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2373 | gaim_notify_info(gc, NULL, "ICQ authorization accepted.", |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2374 | dialog_msg); |
| 3141 | 2375 | g_free(dialog_msg); |
| 2376 | } break; | |
| 2377 | ||
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2378 | case 0x09: { /* Message from the Godly ICQ server itself, I think */ |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2379 | if (i >= 5) { |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2380 | gchar *dialog_msg = g_strdup_printf(_("You have received a special message\n\nFrom: %s [%s]\n%s"), msg2[0], msg2[3], msg2[5]); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2381 | gaim_notify_info(gc, NULL, "ICQ Server Message", dialog_msg); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2382 | g_free(dialog_msg); |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2383 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2384 | } break; |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
2385 | |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2386 | case 0x0d: { /* Someone has sent you a pager message from http://www.icq.com/your_uin */ |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2387 | if (i >= 6) { |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
2388 | gchar *dialog_msg = g_strdup_printf(_("You have received an ICQ page\n\nFrom: %s [%s]\n%s"), msg2[0], msg2[3], msg2[5]); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2389 | gaim_notify_info(gc, NULL, "ICQ Page", dialog_msg); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2390 | g_free(dialog_msg); |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2391 | } |
|
4075
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
2392 | } break; |
|
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
2393 | |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2394 | case 0x0e: { /* Someone has emailed you at your_uin@pager.icq.com */ |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2395 | if (i >= 6) { |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
2396 | gchar *dialog_msg = g_strdup_printf(_("You have received an ICQ e-mail from %s [%s]\n\nMessage is:\n%s"), msg2[0], msg2[3], msg2[5]); |
|
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
2397 | gaim_notify_info(gc, NULL, "ICQ E-Mail", dialog_msg); |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2398 | g_free(dialog_msg); |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2399 | } |
|
4075
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
2400 | } break; |
|
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
2401 | |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2402 | case 0x12: { |
| 3141 | 2403 | /* Ack for authorizing/denying someone. Or possibly an ack for sending any system notice */ |
| 7023 | 2404 | /* Someone added you to their buddy list? */ |
| 3141 | 2405 | } break; |
| 2406 | ||
| 7023 | 2407 | case 0x13: { /* Someone has sent you some ICQ buddies */ |
| 7631 | 2408 | guint i, num; |
| 3453 | 2409 | gchar **text; |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
2410 | text = g_strsplit(args->msg, "\376", 0); |
| 3453 | 2411 | if (text) { |
| 2412 | num = 0; | |
| 2413 | for (i=0; i<strlen(text[0]); i++) | |
| 2414 | num = num*10 + text[0][i]-48; | |
| 2415 | for (i=0; i<num; i++) { | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
2416 | struct name_data *data = g_new(struct name_data, 1); |
| 7023 | 2417 | gchar *message = g_strdup_printf(_("ICQ user %u has sent you a buddy: %s (%s)"), args->uin, text[i*2+2], text[i*2+1]); |
| 3453 | 2418 | data->gc = gc; |
|
4790
765a98790ede
[gaim-migrate @ 5110]
Mark Doliner <markdoliner@pidgin.im>
parents:
4785
diff
changeset
|
2419 | data->name = g_strdup(text[i*2+1]); |
|
765a98790ede
[gaim-migrate @ 5110]
Mark Doliner <markdoliner@pidgin.im>
parents:
4785
diff
changeset
|
2420 | data->nick = g_strdup(text[i*2+2]); |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5497
diff
changeset
|
2421 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5497
diff
changeset
|
2422 | gaim_request_action(gc, NULL, message, |
| 7023 | 2423 | _("Do you want to add this buddy " |
| 2424 | "to your buddy list?"), | |
|
9972
f39adb92a177
[gaim-migrate @ 10883]
Mark Doliner <markdoliner@pidgin.im>
parents:
9971
diff
changeset
|
2425 | GAIM_DEFAULT_ACTION_NONE, data, 2, |
| 7023 | 2426 | _("Add"), G_CALLBACK(gaim_icq_buddyadd), |
| 12603 | 2427 | _("_Decline"), G_CALLBACK(oscar_free_name_data)); |
| 3453 | 2428 | g_free(message); |
| 2429 | } | |
| 2430 | g_strfreev(text); | |
| 2431 | } | |
| 2432 | } break; | |
| 2433 | ||
| 7023 | 2434 | case 0x1a: { /* Someone has sent you a greeting card or requested buddies? */ |
| 3453 | 2435 | /* This is boring and silly. */ |
| 2436 | } break; | |
| 2437 | ||
| 3141 | 2438 | default: { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2439 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2440 | "Received a channel 4 message of unknown type " |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2441 | "(type 0x%02hhx).\n", args->type); |
| 3141 | 2442 | } break; |
| 2443 | } | |
| 2444 | ||
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2445 | g_strfreev(msg1); |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2446 | g_strfreev(msg2); |
|
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
2447 | |
| 3141 | 2448 | return 1; |
| 2449 | } | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2450 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2451 | static int gaim_parse_incoming_im(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2452 | guint16 channel; |
|
4200
8facd81a88ac
[gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents:
4199
diff
changeset
|
2453 | int ret = 0; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
2454 | aim_userinfo_t *userinfo; |
| 2086 | 2455 | va_list ap; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2456 | |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2457 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2458 | channel = (guint16)va_arg(ap, unsigned int); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
2459 | userinfo = va_arg(ap, aim_userinfo_t *); |
| 2086 | 2460 | |
| 3141 | 2461 | switch (channel) { |
| 2462 | case 1: { /* standard message */ | |
| 2463 | struct aim_incomingim_ch1_args *args; | |
| 2464 | args = va_arg(ap, struct aim_incomingim_ch1_args *); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2465 | ret = incomingim_chan1(od, conn, userinfo, args); |
| 3141 | 2466 | } break; |
| 2467 | ||
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8733
diff
changeset
|
2468 | case 2: { /* rendezvous */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2469 | IcbmArgsCh2 *args; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2470 | args = va_arg(ap, IcbmArgsCh2 *); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2471 | ret = incomingim_chan2(od, conn, userinfo, args); |
| 3141 | 2472 | } break; |
| 2473 | ||
| 2474 | case 4: { /* ICQ */ | |
| 2475 | struct aim_incomingim_ch4_args *args; | |
| 2476 | args = va_arg(ap, struct aim_incomingim_ch4_args *); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2477 | ret = incomingim_chan4(od, conn, userinfo, args, 0); |
| 3141 | 2478 | } break; |
| 2479 | ||
| 2480 | default: { | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2481 | gaim_debug_warning("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2482 | "ICBM received on unsupported channel (channel " |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2483 | "0x%04hx).", channel); |
| 3141 | 2484 | } break; |
| 2086 | 2485 | } |
| 2486 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2487 | va_end(ap); |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2488 | |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2489 | return ret; |
| 2086 | 2490 | } |
| 2491 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2492 | static int gaim_parse_misses(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2493 | GaimConnection *gc = od->gc; |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
2494 | GaimAccount *account = gaim_connection_get_account(gc); |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2495 | char *buf; |
| 2086 | 2496 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2497 | guint16 chan, nummissed, reason; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
2498 | aim_userinfo_t *userinfo; |
| 2086 | 2499 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2500 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2501 | chan = (guint16)va_arg(ap, unsigned int); |
|
4200
8facd81a88ac
[gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents:
4199
diff
changeset
|
2502 | userinfo = va_arg(ap, aim_userinfo_t *); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2503 | nummissed = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2504 | reason = (guint16)va_arg(ap, unsigned int); |
| 2086 | 2505 | va_end(ap); |
| 2506 | ||
| 2507 | switch(reason) { | |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2508 | case 0: /* Invalid (0) */ |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2509 | buf = g_strdup_printf( |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2510 | ngettext( |
|
4276
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2511 | "You missed %hu message from %s because it was invalid.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2512 | "You missed %hu messages from %s because they were invalid.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2513 | nummissed), |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2514 | nummissed, |
|
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2515 | userinfo->sn); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
2516 | break; |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2517 | case 1: /* Message too large */ |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2518 | buf = g_strdup_printf( |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2519 | ngettext( |
|
4276
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2520 | "You missed %hu message from %s because it was too large.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2521 | "You missed %hu messages from %s because they were too large.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2522 | nummissed), |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2523 | nummissed, |
|
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2524 | userinfo->sn); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
2525 | break; |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2526 | case 2: /* Rate exceeded */ |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2527 | buf = g_strdup_printf( |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2528 | ngettext( |
|
4276
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2529 | "You missed %hu message from %s because the rate limit has been exceeded.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2530 | "You missed %hu messages from %s because the rate limit has been exceeded.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2531 | nummissed), |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2532 | nummissed, |
|
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2533 | userinfo->sn); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
2534 | break; |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2535 | case 3: /* Evil Sender */ |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2536 | buf = g_strdup_printf( |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2537 | ngettext( |
|
4276
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2538 | "You missed %hu message from %s because he/she was too evil.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2539 | "You missed %hu messages from %s because he/she was too evil.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2540 | nummissed), |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2541 | nummissed, |
|
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2542 | userinfo->sn); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
2543 | break; |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2544 | case 4: /* Evil Receiver */ |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2545 | buf = g_strdup_printf( |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2546 | ngettext( |
|
4276
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2547 | "You missed %hu message from %s because you are too evil.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2548 | "You missed %hu messages from %s because you are too evil.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2549 | nummissed), |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2550 | nummissed, |
|
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2551 | userinfo->sn); |
| 2086 | 2552 | break; |
| 2553 | default: | |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2554 | buf = g_strdup_printf( |
|
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2555 | ngettext( |
|
4276
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2556 | "You missed %hu message from %s for an unknown reason.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2557 | "You missed %hu messages from %s for an unknown reason.", |
|
d1652a291840
[gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4269
diff
changeset
|
2558 | nummissed), |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2559 | nummissed, |
|
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
2560 | userinfo->sn); |
| 2086 | 2561 | break; |
| 2562 | } | |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
2563 | |
| 9627 | 2564 | if (!gaim_conv_present_error(userinfo->sn, account, buf)) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2565 | gaim_notify_error(od->gc, NULL, buf, NULL); |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
2566 | g_free(buf); |
| 2086 | 2567 | |
| 2568 | return 1; | |
| 2569 | } | |
| 2570 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2571 | static int |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2572 | gaim_parse_clientauto_ch2(OscarData *od, const char *who, guint16 reason, const guchar *cookie) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2573 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2574 | if (reason == 0x0003) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2575 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2576 | /* Rendezvous was refused. */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2577 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2578 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2579 | conn = peer_connection_find_by_cookie(od, who, cookie); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2580 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2581 | if (conn == NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2582 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2583 | gaim_debug_info("oscar", "Received a rendezvous cancel message " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2584 | "for a nonexistant connection from %s.\n", who); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2585 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2586 | else |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2587 | { |
|
14464
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14454
diff
changeset
|
2588 | peer_connection_destroy(conn, OSCAR_DISCONNECT_REMOTE_REFUSED, NULL); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2589 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2590 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2591 | else |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2592 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2593 | gaim_debug_warning("oscar", "Received an unknown rendezvous " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2594 | "message from %s. Type 0x%04hx\n", who, reason); |
| 3630 | 2595 | } |
| 2596 | ||
| 2597 | return 0; | |
| 2598 | } | |
| 2599 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2600 | static int gaim_parse_clientauto_ch4(OscarData *od, char *who, guint16 reason, guint32 state, char *msg) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2601 | GaimConnection *gc = od->gc; |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2602 | |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2603 | switch(reason) { |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2604 | case 0x0003: { /* Reply from an ICQ status message request */ |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2605 | char *statusmsg, **splitmsg; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2606 | GaimNotifyUserInfo *user_info; |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2607 | |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2608 | /* Split at (carriage return/newline)'s, then rejoin later with BRs between. */ |
| 9244 | 2609 | statusmsg = oscar_icqstatus(state); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2610 | splitmsg = g_strsplit(msg, "\r\n", 0); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2611 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2612 | user_info = gaim_notify_user_info_new(); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2613 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2614 | gaim_notify_user_info_add_pair(user_info, _("UIN"), who); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2615 | gaim_notify_user_info_add_pair(user_info, _("Status"), statusmsg); |
|
15210
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
2616 | gaim_notify_user_info_add_section_break(user_info); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2617 | gaim_notify_user_info_add_pair(user_info, NULL, g_strjoinv("<BR>", splitmsg)); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2618 | |
| 9244 | 2619 | g_free(statusmsg); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2620 | g_strfreev(splitmsg); |
| 9244 | 2621 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2622 | gaim_notify_userinfo(gc, who, user_info, NULL, NULL); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2623 | gaim_notify_user_info_destroy(user_info); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2624 | |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2625 | } break; |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2626 | |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2627 | default: { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2628 | gaim_debug_warning("oscar", |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
2629 | "Received an unknown client auto-response from %s. " |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2630 | "Type 0x%04hx\n", who, reason); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2631 | } break; |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2632 | } /* end of switch */ |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2633 | |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2634 | return 0; |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2635 | } |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2636 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2637 | static int gaim_parse_clientauto(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3212
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2638 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2639 | guint16 chan, reason; |
|
3212
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2640 | char *who; |
|
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2641 | |
|
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2642 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2643 | chan = (guint16)va_arg(ap, unsigned int); |
|
3212
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2644 | who = va_arg(ap, char *); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2645 | reason = (guint16)va_arg(ap, unsigned int); |
|
3212
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2646 | |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
2647 | if (chan == 0x0002) { /* File transfer declined */ |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
2648 | guchar *cookie = va_arg(ap, guchar *); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2649 | return gaim_parse_clientauto_ch2(od, who, reason, cookie); |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
2650 | } else if (chan == 0x0004) { /* ICQ message */ |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2651 | guint32 state = 0; |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2652 | char *msg = NULL; |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2653 | if (reason == 0x0003) { |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2654 | state = va_arg(ap, guint32); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2655 | msg = va_arg(ap, char *); |
|
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2656 | } |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2657 | return gaim_parse_clientauto_ch4(od, who, reason, state, msg); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2658 | } |
|
3952
d13e1fde68d8
[gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents:
3912
diff
changeset
|
2659 | |
|
3212
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2660 | va_end(ap); |
|
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2661 | |
|
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2662 | return 1; |
|
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2663 | } |
|
3c00e6f5f085
[gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents:
3210
diff
changeset
|
2664 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2665 | static int gaim_parse_genericerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 2666 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2667 | guint16 reason; |
|
2865
fbc616afa491
[gaim-migrate @ 2878]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2864
diff
changeset
|
2668 | char *m; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2669 | |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2670 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2671 | reason = (guint16) va_arg(ap, unsigned int); |
| 2086 | 2672 | va_end(ap); |
| 2673 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2674 | gaim_debug_error("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2675 | "snac threw error (reason 0x%04hx: %s)\n", reason, |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2676 | (reason < msgerrreasonlen) ? msgerrreason[reason] : "unknown"); |
| 2086 | 2677 | |
|
2865
fbc616afa491
[gaim-migrate @ 2878]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2864
diff
changeset
|
2678 | m = g_strdup_printf(_("SNAC threw error: %s\n"), |
|
5411
b3683d2acbb4
[gaim-migrate @ 5787]
Mark Doliner <markdoliner@pidgin.im>
parents:
5402
diff
changeset
|
2679 | reason < msgerrreasonlen ? _(msgerrreason[reason]) : _("Unknown error")); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2680 | gaim_notify_error(od->gc, NULL, m, NULL); |
|
2865
fbc616afa491
[gaim-migrate @ 2878]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2864
diff
changeset
|
2681 | g_free(m); |
|
fbc616afa491
[gaim-migrate @ 2878]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2864
diff
changeset
|
2682 | |
| 2086 | 2683 | return 1; |
| 2684 | } | |
| 2685 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2686 | static int gaim_parse_msgerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2687 | GaimConnection *gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2688 | #ifdef TODOFT |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
2689 | OscarData *od = gc->proto_data; |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
6173
diff
changeset
|
2690 | GaimXfer *xfer; |
|
4508
3b98688619fc
[gaim-migrate @ 4784]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
2691 | #endif |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2692 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2693 | guint16 reason; |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2694 | char *data, *buf; |
|
4508
3b98688619fc
[gaim-migrate @ 4784]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
2695 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2696 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2697 | reason = (guint16)va_arg(ap, unsigned int); |
| 3752 | 2698 | data = va_arg(ap, char *); |
| 2086 | 2699 | va_end(ap); |
| 2700 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2701 | gaim_debug_error("oscar", |
|
10130
7256fb884aaf
[gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents:
10116
diff
changeset
|
2702 | "Message error with data %s and reason %hu\n", |
|
7256fb884aaf
[gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents:
10116
diff
changeset
|
2703 | (data != NULL ? data : ""), reason); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2704 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2705 | #ifdef TODOFT |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2706 | /* If this was a file transfer request, data is a cookie */ |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2707 | if ((xfer = oscar_find_xfer_by_cookie(od->file_transfers, data))) { |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4666
diff
changeset
|
2708 | gaim_xfer_cancel_remote(xfer); |
| 3630 | 2709 | return 1; |
| 2710 | } | |
|
4508
3b98688619fc
[gaim-migrate @ 4784]
Christian Hammond <chipx86@chipx86.com>
parents:
4491
diff
changeset
|
2711 | #endif |
| 3630 | 2712 | |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2713 | /* Data is assumed to be the destination sn */ |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2714 | buf = g_strdup_printf(_("Unable to send message: %s"), (reason < msgerrreasonlen) ? msgerrreason[reason] : _("Unknown reason.")); |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2715 | if (!gaim_conv_present_error(data, gaim_connection_get_account(gc), buf)) { |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2716 | g_free(buf); |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2717 | buf = g_strdup_printf(_("Unable to send message to %s:"), data ? data : "(unknown)"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2718 | gaim_notify_error(od->gc, NULL, buf, |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2719 | (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason.")); |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2720 | } |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2721 | g_free(buf); |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2722 | |
| 2086 | 2723 | return 1; |
| 2724 | } | |
| 2725 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2726 | static int gaim_parse_mtn(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2727 | GaimConnection *gc = od->gc; |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2728 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2729 | guint16 type1, type2; |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2730 | char *sn; |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2731 | |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2732 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2733 | type1 = (guint16) va_arg(ap, unsigned int); |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2734 | sn = va_arg(ap, char *); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2735 | type2 = (guint16) va_arg(ap, unsigned int); |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2736 | va_end(ap); |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2737 | |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2738 | switch (type2) { |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2739 | case 0x0000: { /* Text has been cleared */ |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2740 | serv_got_typing_stopped(gc, sn); |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2741 | } break; |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2742 | |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2743 | case 0x0001: { /* Paused typing */ |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
2744 | serv_got_typing(gc, sn, 0, GAIM_TYPED); |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2745 | } break; |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2746 | |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2747 | case 0x0002: { /* Typing */ |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5868
diff
changeset
|
2748 | serv_got_typing(gc, sn, 0, GAIM_TYPING); |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2749 | } break; |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2750 | |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2751 | default: { |
|
14030
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2752 | /* |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2753 | * It looks like iChat sometimes sends typing notification |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2754 | * with type1=0x0001 and type2=0x000f. Not sure why. |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2755 | */ |
|
23144f1dc950
[gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents:
14012
diff
changeset
|
2756 | gaim_debug_info("oscar", "Received unknown typing notification message from %s. Type1 is 0x%04x and type2 is 0x%04hx.\n", sn, type1, type2); |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2757 | } break; |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2758 | } |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2759 | |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2760 | return 1; |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2761 | } |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
2762 | |
|
7141
431a007467e8
[gaim-migrate @ 7708]
Mark Doliner <markdoliner@pidgin.im>
parents:
7129
diff
changeset
|
2763 | /* |
|
13382
ad4d8c44d83d
[gaim-migrate @ 15754]
Daniel Atallah <datallah@pidgin.im>
parents:
13357
diff
changeset
|
2764 | * We get this error when there was an error in the locate family. This |
|
7259
9d12688cee90
[gaim-migrate @ 7836]
Mark Doliner <markdoliner@pidgin.im>
parents:
7253
diff
changeset
|
2765 | * happens when you request info of someone who is offline. |
|
7141
431a007467e8
[gaim-migrate @ 7708]
Mark Doliner <markdoliner@pidgin.im>
parents:
7129
diff
changeset
|
2766 | */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2767 | static int gaim_parse_locerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2768 | gchar *buf; |
| 2086 | 2769 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2770 | guint16 reason; |
| 2086 | 2771 | char *destn; |
| 2772 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2773 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2774 | reason = (guint16) va_arg(ap, unsigned int); |
| 2086 | 2775 | destn = va_arg(ap, char *); |
| 2776 | va_end(ap); | |
| 2777 | ||
|
7781
db624418e528
[gaim-migrate @ 8426]
Mark Doliner <markdoliner@pidgin.im>
parents:
7693
diff
changeset
|
2778 | if (destn == NULL) |
|
7793
9d6043375b81
[gaim-migrate @ 8439]
Mark Doliner <markdoliner@pidgin.im>
parents:
7781
diff
changeset
|
2779 | return 1; |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
2780 | |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2781 | buf = g_strdup_printf(_("User information not available: %s"), (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason.")); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2782 | if (!gaim_conv_present_error(destn, gaim_connection_get_account((GaimConnection*)od->gc), buf)) { |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2783 | g_free(buf); |
| 9627 | 2784 | buf = g_strdup_printf(_("User information for %s unavailable:"), destn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2785 | gaim_notify_error(od->gc, NULL, buf, (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason.")); |
|
9826
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2786 | } |
|
8fd989d134e0
[gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents:
9810
diff
changeset
|
2787 | g_free(buf); |
| 2086 | 2788 | |
| 2789 | return 1; | |
| 2790 | } | |
| 2791 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2792 | static int gaim_parse_userinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2793 | GaimConnection *gc = od->gc; |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2794 | GaimAccount *account = gaim_connection_get_account(gc); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2795 | GaimNotifyUserInfo *user_info; |
|
11532
b069bbab16be
[gaim-migrate @ 13781]
Luke Schierer <lschiere@pidgin.im>
parents:
11531
diff
changeset
|
2796 | gchar *tmp = NULL, *info_utf8 = NULL, *away_utf8 = NULL; |
|
4791
b35003e42654
[gaim-migrate @ 5111]
Mark Doliner <markdoliner@pidgin.im>
parents:
4790
diff
changeset
|
2797 | va_list ap; |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2798 | aim_userinfo_t *userinfo; |
| 2086 | 2799 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2800 | va_start(ap, fr); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2801 | userinfo = va_arg(ap, aim_userinfo_t *); |
| 2086 | 2802 | va_end(ap); |
| 2803 | ||
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2804 | user_info = gaim_notify_user_info_new(); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2805 | gaim_notify_user_info_add_pair(user_info, _("Screen Name"), userinfo->sn); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2806 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2807 | tmp = g_strdup_printf("%d", (int)((userinfo->warnlevel/10.0) + 0.5)); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2808 | gaim_notify_user_info_add_pair(user_info, _("Warning Level"), tmp); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2809 | g_free(tmp); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2810 | |
|
10116
054b064145a1
[gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10111
diff
changeset
|
2811 | if (userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) { |
|
10567
87b02dd40349
[gaim-migrate @ 11951]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10565
diff
changeset
|
2812 | time_t t = userinfo->onlinesince - od->timeoffset; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2813 | oscar_user_info_add_pair(user_info, _("Online Since"), gaim_date_format_full(localtime(&t))); |
|
10116
054b064145a1
[gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10111
diff
changeset
|
2814 | } |
|
054b064145a1
[gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10111
diff
changeset
|
2815 | |
|
054b064145a1
[gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10111
diff
changeset
|
2816 | if (userinfo->present & AIM_USERINFO_PRESENT_MEMBERSINCE) { |
|
10567
87b02dd40349
[gaim-migrate @ 11951]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10565
diff
changeset
|
2817 | time_t t = userinfo->membersince - od->timeoffset; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2818 | oscar_user_info_add_pair(user_info, _("Member Since"), gaim_date_format_full(localtime(&t))); |
|
10116
054b064145a1
[gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10111
diff
changeset
|
2819 | } |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2820 | |
|
12430
07bc0e58c8c2
[gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents:
12426
diff
changeset
|
2821 | if (userinfo->capabilities != 0) { |
|
07bc0e58c8c2
[gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents:
12426
diff
changeset
|
2822 | tmp = oscar_caps_to_string(userinfo->capabilities); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2823 | oscar_user_info_add_pair(user_info, _("Capabilities"), tmp); |
|
12430
07bc0e58c8c2
[gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents:
12426
diff
changeset
|
2824 | g_free(tmp); |
|
07bc0e58c8c2
[gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents:
12426
diff
changeset
|
2825 | } |
|
07bc0e58c8c2
[gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents:
12426
diff
changeset
|
2826 | |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2827 | if (userinfo->present & AIM_USERINFO_PRESENT_IDLE) { |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2828 | tmp = gaim_str_seconds_to_string(userinfo->idletime*60); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2829 | oscar_user_info_add_pair(user_info, _("Idle"), tmp); |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2830 | g_free(tmp); |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2831 | } |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2832 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2833 | oscar_string_append_info(gc, user_info, NULL, userinfo); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2834 | |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2835 | /* Available message */ |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2836 | if ((userinfo->status != NULL) && !(userinfo->flags & AIM_FLAG_AWAY)) |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2837 | { |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2838 | if (userinfo->status[0] != '\0') |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2839 | tmp = oscar_encoding_to_utf8(userinfo->status_encoding, |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2840 | userinfo->status, userinfo->status_len); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2841 | oscar_user_info_add_pair(user_info, _("Available Message"), tmp); |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2842 | g_free(tmp); |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2843 | } |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2844 | |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2845 | /* Away message */ |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2846 | if ((userinfo->flags & AIM_FLAG_AWAY) && (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) { |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2847 | tmp = oscar_encoding_extract(userinfo->away_encoding); |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2848 | away_utf8 = oscar_encoding_to_utf8(tmp, userinfo->away, userinfo->away_len); |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2849 | g_free(tmp); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2850 | if (away_utf8 != NULL) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2851 | tmp = gaim_str_sub_away_formatters(away_utf8, gaim_account_get_username(account)); |
|
15210
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
2852 | gaim_notify_user_info_add_section_break(user_info); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2853 | oscar_user_info_add_pair(user_info, NULL, tmp); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2854 | g_free(tmp); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2855 | g_free(away_utf8); |
|
2791
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2789
diff
changeset
|
2856 | } |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2857 | } |
|
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2858 | |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
2859 | /* Info */ |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2860 | if ((userinfo->info_len > 0) && (userinfo->info != NULL) && (userinfo->info_encoding != NULL)) { |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2861 | tmp = oscar_encoding_extract(userinfo->info_encoding); |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2862 | info_utf8 = oscar_encoding_to_utf8(tmp, userinfo->info, userinfo->info_len); |
|
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
2863 | g_free(tmp); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2864 | if (info_utf8 != NULL) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2865 | tmp = gaim_str_sub_away_formatters(info_utf8, gaim_account_get_username(account)); |
|
15210
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
2866 | gaim_notify_user_info_add_section_break(user_info); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2867 | oscar_user_info_add_pair(user_info, _("Profile"), tmp); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2868 | g_free(tmp); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2869 | g_free(info_utf8); |
|
2791
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2789
diff
changeset
|
2870 | } |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2871 | } |
|
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
2872 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2873 | gaim_notify_userinfo(gc, userinfo->sn, user_info, NULL, NULL); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
2874 | gaim_notify_user_info_destroy(user_info); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
2875 | |
| 2086 | 2876 | return 1; |
| 2877 | } | |
| 2878 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2879 | static int gaim_got_infoblock(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2880 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2881 | GaimConnection *gc = od->gc; |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2882 | GaimBuddy *b; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2883 | GaimPresence *presence; |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
2884 | GaimStatus *status; |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2885 | gchar *message = NULL; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2886 | |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2887 | va_list ap; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2888 | aim_userinfo_t *userinfo; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2889 | |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2890 | va_start(ap, fr); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2891 | userinfo = va_arg(ap, aim_userinfo_t *); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2892 | va_end(ap); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2893 | |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2894 | b = gaim_find_buddy(gaim_connection_get_account(gc), userinfo->sn); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2895 | if (b == NULL) |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2896 | return 1; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2897 | |
|
14012
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2898 | if (!aim_sn_is_icq(userinfo->sn)) |
|
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2899 | { |
|
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2900 | if (strcmp(gaim_buddy_get_name(b), userinfo->sn)) |
|
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2901 | serv_got_alias(gc, gaim_buddy_get_name(b), userinfo->sn); |
|
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2902 | else |
|
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2903 | serv_got_alias(gc, gaim_buddy_get_name(b), NULL); |
|
71be8ba41740
[gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents:
14011
diff
changeset
|
2904 | } |
|
13937
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
2905 | |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2906 | presence = gaim_buddy_get_presence(b); |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
2907 | status = gaim_presence_get_active_status(presence); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
2908 | |
| 12426 | 2909 | if (!gaim_status_is_available(status) && gaim_status_is_online(status)) |
|
12271
01d61e68886e
[gaim-migrate @ 14573]
Mark Doliner <markdoliner@pidgin.im>
parents:
12260
diff
changeset
|
2910 | { |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
2911 | if ((userinfo->flags & AIM_FLAG_AWAY) && |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2912 | (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) { |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2913 | gchar *charset = oscar_encoding_extract(userinfo->away_encoding); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2914 | message = oscar_encoding_to_utf8(charset, userinfo->away, userinfo->away_len); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2915 | g_free(charset); |
| 12393 | 2916 | gaim_status_set_attr_string(status, "message", message); |
| 2917 | g_free(message); | |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2918 | } |
|
14242
3e91cf0a253f
[gaim-migrate @ 16830]
Henning Norén <henning.noren@gmail.com>
parents:
14209
diff
changeset
|
2919 | else |
|
3e91cf0a253f
[gaim-migrate @ 16830]
Henning Norén <henning.noren@gmail.com>
parents:
14209
diff
changeset
|
2920 | /* Set an empty message so that we know not to show "pending" */ |
|
14246
04e88de284a0
[gaim-migrate @ 16836]
Mark Doliner <markdoliner@pidgin.im>
parents:
14242
diff
changeset
|
2921 | gaim_status_set_attr_string(status, "message", ""); |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
2922 | |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
2923 | gaim_blist_update_buddy_status(b, status); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
2924 | } |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2925 | |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2926 | return 1; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2927 | } |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
2928 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2929 | static int gaim_parse_motd(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
2930 | { |
| 2086 | 2931 | char *msg; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2932 | guint16 id; |
| 2086 | 2933 | va_list ap; |
| 2934 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2935 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2936 | id = (guint16) va_arg(ap, unsigned int); |
| 2086 | 2937 | msg = va_arg(ap, char *); |
| 2938 | va_end(ap); | |
| 2939 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2940 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2941 | "MOTD: %s (%hu)\n", msg ? msg : "Unknown", id); |
|
2092
f56061012e3c
[gaim-migrate @ 2102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2090
diff
changeset
|
2942 | if (id < 4) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2943 | gaim_notify_warning(od->gc, NULL, |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
2944 | _("Your AIM connection may be lost."), NULL); |
| 2086 | 2945 | |
| 2946 | return 1; | |
| 2947 | } | |
| 2948 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2949 | static int gaim_chatnav_info(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 2950 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2951 | guint16 type; |
| 2086 | 2952 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2953 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2954 | type = (guint16) va_arg(ap, unsigned int); |
| 2086 | 2955 | |
| 2956 | switch(type) { | |
| 2957 | case 0x0002: { | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2958 | guint8 maxrooms; |
| 2086 | 2959 | struct aim_chat_exchangeinfo *exchanges; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2960 | int exchangecount, i; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2961 | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2962 | maxrooms = (guint8) va_arg(ap, unsigned int); |
| 2086 | 2963 | exchangecount = va_arg(ap, int); |
| 2964 | exchanges = va_arg(ap, struct aim_chat_exchangeinfo *); | |
| 2965 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2966 | gaim_debug_misc("oscar", "chat info: Chat Rights:\n"); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2967 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2968 | "chat info: \tMax Concurrent Rooms: %hhd\n", maxrooms); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2969 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2970 | "chat info: \tExchange List: (%d total)\n", exchangecount); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
2971 | for (i = 0; i < exchangecount; i++) |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2972 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2973 | "chat info: \t\t%hu %s\n", |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2974 | exchanges[i].number, exchanges[i].name ? exchanges[i].name : ""); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2975 | while (od->create_rooms) { |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2976 | struct create_room *cr = od->create_rooms->data; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
2977 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
2978 | "creating room %s\n", cr->name); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
2979 | aim_chatnav_createroom(od, conn, cr->name, cr->exchange); |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
2980 | g_free(cr->name); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
2981 | od->create_rooms = g_slist_remove(od->create_rooms, cr); |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
2982 | g_free(cr); |
| 2086 | 2983 | } |
| 2984 | } | |
| 2985 | break; | |
| 2986 | case 0x0008: { | |
| 2987 | char *fqcn, *name, *ck; | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2988 | guint16 instance, flags, maxmsglen, maxoccupancy, unknown, exchange; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2989 | guint8 createperms; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2990 | guint32 createtime; |
| 2086 | 2991 | |
| 2992 | fqcn = va_arg(ap, char *); | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2993 | instance = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2994 | exchange = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2995 | flags = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2996 | createtime = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2997 | maxmsglen = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2998 | maxoccupancy = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
2999 | createperms = (guint8)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3000 | unknown = (guint16)va_arg(ap, unsigned int); |
|
4200
8facd81a88ac
[gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents:
4199
diff
changeset
|
3001 | name = va_arg(ap, char *); |
|
8facd81a88ac
[gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents:
4199
diff
changeset
|
3002 | ck = va_arg(ap, char *); |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3003 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3004 | gaim_debug_misc("oscar", |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3005 | "created room: %s %hu %hu %hu %u %hu %hu %hhu %hu %s %s\n", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3006 | fqcn, exchange, instance, flags, createtime, |
| 2086 | 3007 | maxmsglen, maxoccupancy, createperms, unknown, |
| 3008 | name, ck); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3009 | aim_chat_join(od, exchange, ck, instance); |
| 2086 | 3010 | } |
| 3011 | break; | |
| 3012 | default: | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3013 | gaim_debug_warning("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3014 | "chatnav info: unknown type (%04hx)\n", type); |
| 2086 | 3015 | break; |
| 3016 | } | |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3017 | |
|
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3018 | va_end(ap); |
|
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3019 | |
| 2086 | 3020 | return 1; |
| 3021 | } | |
| 3022 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3023 | static int gaim_conv_chat_join(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 3024 | va_list ap; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3025 | int count, i; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3026 | aim_userinfo_t *info; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3027 | GaimConnection *gc = od->gc; |
| 2086 | 3028 | |
| 3029 | struct chat_connection *c = NULL; | |
| 3030 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3031 | va_start(ap, fr); |
| 2086 | 3032 | count = va_arg(ap, int); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3033 | info = va_arg(ap, aim_userinfo_t *); |
| 2086 | 3034 | va_end(ap); |
| 3035 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3036 | c = find_oscar_chat_by_conn(gc, conn); |
| 2086 | 3037 | if (!c) |
| 3038 | return 1; | |
| 3039 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3040 | for (i = 0; i < count; i++) |
|
9846
61f7349c153a
[gaim-migrate @ 10724]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9831
diff
changeset
|
3041 | gaim_conv_chat_add_user(GAIM_CONV_CHAT(c->conv), info[i].sn, NULL, GAIM_CBFLAGS_NONE, TRUE); |
| 2086 | 3042 | |
| 3043 | return 1; | |
| 3044 | } | |
| 3045 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3046 | static int gaim_conv_chat_leave(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 3047 | va_list ap; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3048 | int count, i; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3049 | aim_userinfo_t *info; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3050 | GaimConnection *gc = od->gc; |
| 2086 | 3051 | |
| 3052 | struct chat_connection *c = NULL; | |
| 3053 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3054 | va_start(ap, fr); |
| 2086 | 3055 | count = va_arg(ap, int); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3056 | info = va_arg(ap, aim_userinfo_t *); |
| 2086 | 3057 | va_end(ap); |
| 3058 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3059 | c = find_oscar_chat_by_conn(gc, conn); |
| 2086 | 3060 | if (!c) |
| 3061 | return 1; | |
| 3062 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3063 | for (i = 0; i < count; i++) |
|
8733
f6d36eff3b49
[gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents:
8713
diff
changeset
|
3064 | gaim_conv_chat_remove_user(GAIM_CONV_CHAT(c->conv), info[i].sn, NULL); |
| 2086 | 3065 | |
| 3066 | return 1; | |
| 3067 | } | |
| 3068 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3069 | static int gaim_conv_chat_info_update(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3070 | va_list ap; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3071 | aim_userinfo_t *userinfo; |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3072 | struct aim_chat_roominfo *roominfo; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3073 | char *roomname; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3074 | int usercount; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3075 | char *roomdesc; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3076 | guint16 unknown_c9, unknown_d2, unknown_d5, maxmsglen, maxvisiblemsglen; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3077 | guint32 creationtime; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3078 | GaimConnection *gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3079 | struct chat_connection *ccon = find_oscar_chat_by_conn(gc, conn); |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3080 | |
|
15223
78cdc3726d97
[gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents:
15210
diff
changeset
|
3081 | if (!ccon) |
|
78cdc3726d97
[gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents:
15210
diff
changeset
|
3082 | return 1; |
|
78cdc3726d97
[gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents:
15210
diff
changeset
|
3083 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3084 | va_start(ap, fr); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3085 | roominfo = va_arg(ap, struct aim_chat_roominfo *); |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3086 | roomname = va_arg(ap, char *); |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3087 | usercount= va_arg(ap, int); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3088 | userinfo = va_arg(ap, aim_userinfo_t *); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3089 | roomdesc = va_arg(ap, char *); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3090 | unknown_c9 = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3091 | creationtime = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3092 | maxmsglen = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3093 | unknown_d2 = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3094 | unknown_d5 = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3095 | maxvisiblemsglen = (guint16)va_arg(ap, unsigned int); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3096 | va_end(ap); |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3097 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3098 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3099 | "inside chat_info_update (maxmsglen = %hu, maxvislen = %hu)\n", |
|
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3100 | maxmsglen, maxvisiblemsglen); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3101 | |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3102 | ccon->maxlen = maxmsglen; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3103 | ccon->maxvis = maxvisiblemsglen; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3104 | |
| 2086 | 3105 | return 1; |
| 3106 | } | |
| 3107 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3108 | static int gaim_conv_chat_incoming_msg(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3109 | GaimConnection *gc = od->gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3110 | struct chat_connection *ccon = find_oscar_chat_by_conn(gc, conn); |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
3111 | gchar *utf8; |
| 2086 | 3112 | va_list ap; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3113 | aim_userinfo_t *info; |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
3114 | int len; |
| 2086 | 3115 | char *msg; |
| 8219 | 3116 | char *charset; |
| 2086 | 3117 | |
|
15223
78cdc3726d97
[gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents:
15210
diff
changeset
|
3118 | if (!ccon) |
|
78cdc3726d97
[gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents:
15210
diff
changeset
|
3119 | return 1; |
|
78cdc3726d97
[gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents:
15210
diff
changeset
|
3120 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3121 | va_start(ap, fr); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3122 | info = va_arg(ap, aim_userinfo_t *); |
| 8219 | 3123 | len = va_arg(ap, int); |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3124 | msg = va_arg(ap, char *); |
| 8219 | 3125 | charset = va_arg(ap, char *); |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3126 | va_end(ap); |
| 2086 | 3127 | |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
3128 | utf8 = oscar_encoding_to_utf8(charset, msg, len); |
|
8667
534bd4c4fb38
[gaim-migrate @ 9419]
Mark Doliner <markdoliner@pidgin.im>
parents:
8666
diff
changeset
|
3129 | if (utf8 == NULL) |
|
534bd4c4fb38
[gaim-migrate @ 9419]
Mark Doliner <markdoliner@pidgin.im>
parents:
8666
diff
changeset
|
3130 | /* The conversion failed! */ |
|
8668
c72a49a7c46a
[gaim-migrate @ 9420]
Mark Doliner <markdoliner@pidgin.im>
parents:
8667
diff
changeset
|
3131 | utf8 = g_strdup(_("[Unable to display a message from this user because it contained invalid characters.]")); |
|
8225
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
3132 | serv_got_chat_in(gc, ccon->id, info->sn, 0, utf8, time((time_t)NULL)); |
|
4ef47db8c9bc
[gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents:
8219
diff
changeset
|
3133 | g_free(utf8); |
| 2086 | 3134 | |
| 3135 | return 1; | |
| 3136 | } | |
| 3137 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3138 | static int gaim_email_parseupdate(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3694
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3139 | va_list ap; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3140 | GaimConnection *gc = od->gc; |
|
3694
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3141 | struct aim_emailinfo *emailinfo; |
| 3725 | 3142 | int havenewmail; |
| 7297 | 3143 | char *alertitle, *alerturl; |
|
3694
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3144 | |
|
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3145 | va_start(ap, fr); |
|
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3146 | emailinfo = va_arg(ap, struct aim_emailinfo *); |
| 3725 | 3147 | havenewmail = va_arg(ap, int); |
|
7301
f6a3a23fa2fc
[gaim-migrate @ 7885]
Mark Doliner <markdoliner@pidgin.im>
parents:
7297
diff
changeset
|
3148 | alertitle = va_arg(ap, char *); |
|
f6a3a23fa2fc
[gaim-migrate @ 7885]
Mark Doliner <markdoliner@pidgin.im>
parents:
7297
diff
changeset
|
3149 | alerturl = va_arg(ap, char *); |
|
3694
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3150 | va_end(ap); |
|
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3151 | |
|
9661
a9895242a351
[gaim-migrate @ 10509]
Daniel Atallah <datallah@pidgin.im>
parents:
9659
diff
changeset
|
3152 | if ((emailinfo != NULL) && gaim_account_get_check_mail(gc->account)) { |
|
a9895242a351
[gaim-migrate @ 10509]
Daniel Atallah <datallah@pidgin.im>
parents:
9659
diff
changeset
|
3153 | gchar *to = g_strdup_printf("%s%s%s", gaim_account_get_username(gaim_connection_get_account(gc)), |
|
a9895242a351
[gaim-migrate @ 10509]
Daniel Atallah <datallah@pidgin.im>
parents:
9659
diff
changeset
|
3154 | emailinfo->domain ? "@" : "", |
|
a9895242a351
[gaim-migrate @ 10509]
Daniel Atallah <datallah@pidgin.im>
parents:
9659
diff
changeset
|
3155 | emailinfo->domain ? emailinfo->domain : ""); |
|
5542
0f02c413c862
[gaim-migrate @ 5942]
Mark Doliner <markdoliner@pidgin.im>
parents:
5540
diff
changeset
|
3156 | if (emailinfo->unread && havenewmail) |
|
0f02c413c862
[gaim-migrate @ 5942]
Mark Doliner <markdoliner@pidgin.im>
parents:
5540
diff
changeset
|
3157 | gaim_notify_emails(gc, emailinfo->nummsgs, FALSE, NULL, NULL, (const char **)&to, (const char **)&emailinfo->url, NULL, NULL); |
|
5537
812794b97b08
[gaim-migrate @ 5937]
Mark Doliner <markdoliner@pidgin.im>
parents:
5517
diff
changeset
|
3158 | g_free(to); |
|
3694
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3159 | } |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
3160 | |
|
7301
f6a3a23fa2fc
[gaim-migrate @ 7885]
Mark Doliner <markdoliner@pidgin.im>
parents:
7297
diff
changeset
|
3161 | if (alertitle) |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3162 | gaim_debug_misc("oscar", "Got an alert '%s' %s\n", alertitle, alerturl ? alerturl : ""); |
|
3694
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3163 | |
|
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3164 | return 1; |
|
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3165 | } |
|
49a336931cc6
[gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents:
3666
diff
changeset
|
3166 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3167 | static int gaim_icon_error(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3168 | GaimConnection *gc = od->gc; |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3169 | char *sn; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3170 | |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3171 | sn = od->requesticon->data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3172 | gaim_debug_misc("oscar", "removing %s from hash table\n", sn); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3173 | od->requesticon = g_slist_remove(od->requesticon, sn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3174 | g_free(sn); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3175 | |
|
13924
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3176 | if (od->icontimer == 0) |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3177 | od->icontimer = gaim_timeout_add(500, gaim_icon_timerfunc, gc); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3178 | |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3179 | return 1; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3180 | } |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3181 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3182 | static int gaim_icon_parseicon(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3183 | GaimConnection *gc = od->gc; |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3184 | GSList *cur; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3185 | va_list ap; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3186 | char *sn; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3187 | guint8 iconcsumtype, *iconcsum, *icon; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3188 | guint16 iconcsumlen, iconlen; |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3189 | |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3190 | va_start(ap, fr); |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3191 | sn = va_arg(ap, char *); |
|
11024
f4e005b0922b
[gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents:
11005
diff
changeset
|
3192 | iconcsumtype = va_arg(ap, int); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3193 | iconcsum = va_arg(ap, guint8 *); |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
3194 | iconcsumlen = va_arg(ap, int); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3195 | icon = va_arg(ap, guint8 *); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3196 | iconlen = va_arg(ap, int); |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3197 | va_end(ap); |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3198 | |
|
11024
f4e005b0922b
[gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents:
11005
diff
changeset
|
3199 | /* |
|
f4e005b0922b
[gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents:
11005
diff
changeset
|
3200 | * Some AIM clients will send a blank GIF image with iconlen 90 when |
|
f4e005b0922b
[gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents:
11005
diff
changeset
|
3201 | * no icon is set. Ignore these. |
|
f4e005b0922b
[gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents:
11005
diff
changeset
|
3202 | */ |
|
f4e005b0922b
[gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents:
11005
diff
changeset
|
3203 | if ((iconlen > 0) && (iconlen != 90)) { |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
3204 | char *b16; |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
3205 | GaimBuddy *b; |
|
6846
f814f02dca87
[gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents:
6787
diff
changeset
|
3206 | gaim_buddy_icons_set_for_user(gaim_connection_get_account(gc), |
|
f814f02dca87
[gaim-migrate @ 7391]
Christian Hammond <chipx86@chipx86.com>
parents:
6787
diff
changeset
|
3207 | sn, icon, iconlen); |
|
7106
eaeff5775818
[gaim-migrate @ 7671]
Christian Hammond <chipx86@chipx86.com>
parents:
7098
diff
changeset
|
3208 | b16 = gaim_base16_encode(iconcsum, iconcsumlen); |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
3209 | b = gaim_find_buddy(gc->account, sn); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
3210 | if ((b16 != NULL) && (b != NULL)) { |
| 7693 | 3211 | gaim_blist_node_set_string((GaimBlistNode*)b, "icon_checksum", b16); |
| 7162 | 3212 | g_free(b16); |
|
5129
c1cfbdfcd381
[gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents:
5125
diff
changeset
|
3213 | } |
|
4853
5b5ed316fe65
[gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents:
4848
diff
changeset
|
3214 | } |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3215 | |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3216 | cur = od->requesticon; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3217 | while (cur) { |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3218 | char *cursn = cur->data; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3219 | if (!aim_sncmp(cursn, sn)) { |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3220 | od->requesticon = g_slist_remove(od->requesticon, cursn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3221 | g_free(cursn); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3222 | cur = od->requesticon; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3223 | } else |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3224 | cur = cur->next; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3225 | } |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3226 | |
|
13924
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3227 | if (od->icontimer == 0) |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3228 | od->icontimer = gaim_timeout_add(250, gaim_icon_timerfunc, gc); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3229 | |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3230 | return 1; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3231 | } |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3232 | |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3233 | static gboolean gaim_icon_timerfunc(gpointer data) { |
| 5575 | 3234 | GaimConnection *gc = data; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
3235 | OscarData *od = gc->proto_data; |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
3236 | aim_userinfo_t *userinfo; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3237 | FlapConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3238 | |
|
13924
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3239 | od->icontimer = 0; |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3240 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3241 | conn = flap_connection_getbytype(od, SNAC_FAMILY_BART); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
3242 | if (!conn) { |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
3243 | if (!od->iconconnecting) { |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
3244 | aim_srv_requestnew(od, SNAC_FAMILY_BART); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
3245 | od->iconconnecting = TRUE; |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
3246 | } |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3247 | return FALSE; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3248 | } |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3249 | |
| 5842 | 3250 | if (od->set_icon) { |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3251 | struct stat st; |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
3252 | char *iconfile = gaim_buddy_icons_get_full_path(gaim_account_get_buddy_icon(gaim_connection_get_account(gc))); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3253 | if (iconfile == NULL) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3254 | aim_ssi_delicon(od); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
3255 | } else if (!g_stat(iconfile, &st)) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
3256 | guchar *buf = g_malloc(st.st_size); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
3257 | FILE *file = g_fopen(iconfile, "rb"); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3258 | if (file) { |
|
9532
32470c5a1d58
[gaim-migrate @ 10359]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
9481
diff
changeset
|
3259 | /* XXX - Use g_file_get_contents()? */ |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3260 | fread(buf, 1, st.st_size, file); |
|
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3261 | fclose(file); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3262 | gaim_debug_info("oscar", |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3263 | "Uploading icon to icon server\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3264 | aim_bart_upload(od, buf, st.st_size); |
| 5842 | 3265 | } else |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3266 | gaim_debug_error("oscar", |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3267 | "Can't open buddy icon file!\n"); |
|
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3268 | g_free(buf); |
|
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3269 | } else { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3270 | gaim_debug_error("oscar", |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
3271 | "Can't stat buddy icon file!\n"); |
| 5842 | 3272 | } |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
3273 | g_free(iconfile); |
| 5842 | 3274 | od->set_icon = FALSE; |
| 3275 | } | |
| 3276 | ||
| 3277 | if (!od->requesticon) { | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3278 | gaim_debug_misc("oscar", |
| 5842 | 3279 | "no more icons to request\n"); |
| 3280 | return FALSE; | |
| 3281 | } | |
| 3282 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3283 | userinfo = aim_locate_finduserinfo(od, (char *)od->requesticon->data); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
3284 | if ((userinfo != NULL) && (userinfo->iconcsumlen > 0)) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3285 | aim_bart_request(od, od->requesticon->data, userinfo->iconcsumtype, userinfo->iconcsum, userinfo->iconcsumlen); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3286 | return FALSE; |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3287 | } else { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3288 | gchar *sn = od->requesticon->data; |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3289 | od->requesticon = g_slist_remove(od->requesticon, sn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3290 | g_free(sn); |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3291 | } |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3292 | |
|
13924
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3293 | od->icontimer = gaim_timeout_add(100, gaim_icon_timerfunc, gc); |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3294 | |
|
2872701c7e76
[gaim-migrate @ 16324]
Mark Doliner <markdoliner@pidgin.im>
parents:
13844
diff
changeset
|
3295 | return FALSE; |
|
4804
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3296 | } |
|
e6e0e6d50d39
[gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents:
4800
diff
changeset
|
3297 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3298 | /* |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3299 | * Recieved in response to an IM sent with the AIM_IMFLAGS_ACK option. |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3300 | */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3301 | static int gaim_parse_msgack(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 3302 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3303 | guint16 type; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3304 | char *sn; |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3305 | |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3306 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3307 | type = (guint16) va_arg(ap, unsigned int); |
| 2086 | 3308 | sn = va_arg(ap, char *); |
| 3309 | va_end(ap); | |
| 3310 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3311 | gaim_debug_info("oscar", "Sent message to %s.\n", sn); |
| 2086 | 3312 | |
| 3313 | return 1; | |
| 3314 | } | |
| 3315 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3316 | static int gaim_parse_ratechange(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3317 | static const char *codes[5] = { |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3318 | "invalid", |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3319 | "change", |
|
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3320 | "warning", |
|
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3321 | "limit", |
|
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3322 | "limit cleared", |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3323 | }; |
| 2086 | 3324 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3325 | guint16 code, rateclass; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3326 | guint32 windowsize, clear, alert, limit, disconnect, currentavg, maxavg; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3327 | |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
3328 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3329 | code = (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3330 | rateclass= (guint16)va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3331 | windowsize = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3332 | clear = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3333 | alert = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3334 | limit = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3335 | disconnect = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3336 | currentavg = va_arg(ap, guint32); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3337 | maxavg = va_arg(ap, guint32); |
| 2086 | 3338 | va_end(ap); |
| 3339 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3340 | gaim_debug_misc("oscar", |
|
5556
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
3341 | "rate %s (param ID 0x%04hx): curavg = %u, maxavg = %u, alert at %u, " |
|
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
3342 | "clear warning at %u, limit at %u, disconnect at %u (window size = %u)\n", |
| 2086 | 3343 | (code < 5) ? codes[code] : codes[0], |
| 3344 | rateclass, | |
| 3345 | currentavg, maxavg, | |
| 3346 | alert, clear, | |
| 3347 | limit, disconnect, | |
| 3348 | windowsize); | |
| 3349 | ||
|
13257
434b2629ce17
[gaim-migrate @ 15622]
Mark Doliner <markdoliner@pidgin.im>
parents:
13255
diff
changeset
|
3350 | if (code == AIM_RATE_CODE_LIMIT) |
|
434b2629ce17
[gaim-migrate @ 15622]
Mark Doliner <markdoliner@pidgin.im>
parents:
13255
diff
changeset
|
3351 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3352 | gaim_notify_error(od->gc, NULL, _("Rate limiting error."), |
|
6040
ab00305db747
[gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents:
6039
diff
changeset
|
3353 | _("The last action you attempted could not be " |
|
ab00305db747
[gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents:
6039
diff
changeset
|
3354 | "performed because you are over the rate limit. " |
|
ab00305db747
[gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents:
6039
diff
changeset
|
3355 | "Please wait 10 seconds and try again.")); |
| 2086 | 3356 | } |
| 3357 | ||
| 3358 | return 1; | |
| 3359 | } | |
| 3360 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3361 | static int gaim_parse_evilnotify(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
13663
de16367fd001
[gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents:
13655
diff
changeset
|
3362 | #ifdef CRAZY_WARNING |
| 2086 | 3363 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3364 | guint16 newevil; |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3365 | aim_userinfo_t *userinfo; |
| 2086 | 3366 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3367 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3368 | newevil = (guint16) va_arg(ap, unsigned int); |
|
2421
009ae3cf0e83
[gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2411
diff
changeset
|
3369 | userinfo = va_arg(ap, aim_userinfo_t *); |
| 2086 | 3370 | va_end(ap); |
| 3371 | ||
|
11285
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3372 | gaim_prpl_got_account_warning_level(account, (userinfo && userinfo->sn) ? userinfo->sn : NULL, (newevil/10.0) + 0.5); |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3373 | #endif |
| 2086 | 3374 | |
| 3375 | return 1; | |
| 3376 | } | |
| 3377 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3378 | static int gaim_selfinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
3379 | int warning_level; |
|
2507
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3380 | va_list ap; |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3381 | aim_userinfo_t *info; |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3382 | |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3383 | va_start(ap, fr); |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3384 | info = va_arg(ap, aim_userinfo_t *); |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3385 | va_end(ap); |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3386 | |
|
11285
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3387 | /* |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3388 | * What's with the + 0.5? |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3389 | * The 0.5 is basically poor-man's rounding. Normally |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3390 | * casting "13.7" to an int will truncate to "13," but |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3391 | * with 13.7 + 0.5 = 14.2, which becomes "14" when |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3392 | * truncated. |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3393 | */ |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
3394 | warning_level = info->warnlevel/10.0 + 0.5; |
|
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
3395 | |
|
11285
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3396 | #ifdef CRAZY_WARNING |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3397 | gaim_presence_set_warning_level(presence, warning_level); |
|
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
3398 | #endif |
|
2507
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3399 | |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3400 | return 1; |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3401 | } |
|
4f2c8913240e
[gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2501
diff
changeset
|
3402 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3403 | static int gaim_connerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3404 | GaimConnection *gc = od->gc; |
|
4649
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3405 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3406 | guint16 code; |
|
4649
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3407 | char *msg; |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3408 | |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3409 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3410 | code = (guint16)va_arg(ap, int); |
|
4649
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3411 | msg = va_arg(ap, char *); |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3412 | va_end(ap); |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3413 | |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
3414 | gaim_debug_info("oscar", "Disconnected. Code is 0x%04x and msg is %s\n", |
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3415 | code, (msg != NULL ? msg : "")); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3416 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3417 | g_return_val_if_fail(fr != NULL, 1); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3418 | g_return_val_if_fail(conn != NULL, 1); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3419 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3420 | if (conn->type == SNAC_FAMILY_LOCATE) { |
| 4651 | 3421 | if (code == 0x0001) { |
|
6113
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6066
diff
changeset
|
3422 | gc->wants_to_die = TRUE; |
|
10715
0fbdd12b2a6a
[gaim-migrate @ 12309]
Mark Doliner <markdoliner@pidgin.im>
parents:
10683
diff
changeset
|
3423 | gaim_connection_error(gc, _("You have signed on from another location.")); |
| 4651 | 3424 | } else { |
| 5579 | 3425 | gaim_connection_error(gc, _("You have been signed off for an unknown reason.")); |
| 4651 | 3426 | } |
|
4666
fd74a2faaf94
[gaim-migrate @ 4977]
Mark Doliner <markdoliner@pidgin.im>
parents:
4665
diff
changeset
|
3427 | od->killme = TRUE; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3428 | } else if (conn->type == SNAC_FAMILY_CHAT) { |
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3429 | struct chat_connection *cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3430 | GaimConversation *conv; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3431 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3432 | cc = find_oscar_chat_by_conn(gc, conn); |
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3433 | conv = gaim_find_chat(gc, cc->id); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3434 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3435 | if (conv != NULL) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3436 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3437 | gchar *buf; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3438 | buf = g_strdup_printf(_("You have been disconnected from chat " |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3439 | "room %s."), cc->name); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3440 | gaim_conversation_write(conv, NULL, buf, GAIM_MESSAGE_ERROR, time(NULL)); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3441 | g_free(buf); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3442 | } |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
3443 | oscar_chat_kill(gc, cc); |
|
4649
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3444 | } |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3445 | |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3446 | return 1; |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3447 | } |
|
ef77210d482f
[gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
3448 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3449 | static int gaim_icbm_param_info(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3450 | struct aim_icbmparameters *params; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3451 | va_list ap; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3452 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3453 | va_start(ap, fr); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3454 | params = va_arg(ap, struct aim_icbmparameters *); |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3455 | va_end(ap); |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3456 | |
|
4194
dbe45b0c38fa
[gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents:
4173
diff
changeset
|
3457 | /* XXX - evidently this crashes on solaris. i have no clue why |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3458 | gaim_debug_misc("oscar", "ICBM Parameters: maxchannel = %hu, default flags = 0x%08lx, max msg len = %hu, " |
|
5556
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
3459 | "max sender evil = %f, max receiver evil = %f, min msg interval = %u\n", |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3460 | params->maxchan, params->flags, params->maxmsglen, |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3461 | ((float)params->maxsenderwarn)/10.0, ((float)params->maxrecverwarn)/10.0, |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3462 | params->minmsginterval); |
|
2427
761801814c88
[gaim-migrate @ 2440]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2421
diff
changeset
|
3463 | */ |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3464 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3465 | /* Maybe senderwarn and recverwarn should be user preferences... */ |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
3466 | params->flags = 0x0000000b; |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3467 | params->maxmsglen = 8000; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3468 | params->minmsginterval = 0; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3469 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3470 | aim_im_setparams(od, params); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3471 | |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3472 | return 1; |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3473 | } |
|
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3474 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3475 | static int gaim_parse_locaterights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
| 2993 | 3476 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3477 | GaimConnection *gc = od->gc; |
|
11338
1a3663ac9b05
[gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents:
11303
diff
changeset
|
3478 | GaimAccount *account = gaim_connection_get_account(gc); |
|
5306
1707fdf8c530
[gaim-migrate @ 5678]
Mark Doliner <markdoliner@pidgin.im>
parents:
5302
diff
changeset
|
3479 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3480 | guint16 maxsiglen; |
| 2993 | 3481 | |
| 3482 | va_start(ap, fr); | |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3483 | maxsiglen = (guint16) va_arg(ap, int); |
| 2993 | 3484 | va_end(ap); |
| 3485 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3486 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3487 | "locate rights: max sig len = %d\n", maxsiglen); |
| 2993 | 3488 | |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3489 | od->rights.maxsiglen = od->rights.maxawaymsglen = (guint)maxsiglen; |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3490 | |
|
14614
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
3491 | aim_locate_setcaps(od, gaim_caps); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
3492 | oscar_set_info_and_status(account, TRUE, account->user_info, TRUE, |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
3493 | gaim_account_get_active_status(account)); |
| 2993 | 3494 | |
| 3495 | return 1; | |
| 3496 | } | |
| 3497 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3498 | static int gaim_parse_buddyrights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
3499 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3500 | guint16 maxbuddies, maxwatchers; |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3501 | |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3502 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3503 | maxbuddies = (guint16) va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3504 | maxwatchers = (guint16) va_arg(ap, unsigned int); |
| 2086 | 3505 | va_end(ap); |
| 3506 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3507 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3508 | "buddy list rights: Max buddies = %hu / Max watchers = %hu\n", maxbuddies, maxwatchers); |
| 2086 | 3509 | |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3510 | od->rights.maxbuddies = (guint)maxbuddies; |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3511 | od->rights.maxwatchers = (guint)maxwatchers; |
| 2993 | 3512 | |
| 2086 | 3513 | return 1; |
| 3514 | } | |
| 3515 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3516 | static int gaim_bosrights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
11808
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3517 | GaimConnection *gc; |
|
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3518 | GaimAccount *account; |
|
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3519 | GaimStatus *status; |
|
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3520 | const char *message; |
|
12344
5dade80f1792
[gaim-migrate @ 14648]
Mark Doliner <markdoliner@pidgin.im>
parents:
12317
diff
changeset
|
3521 | char *tmp; |
|
7334
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
3522 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3523 | guint16 maxpermits, maxdenies; |
| 2086 | 3524 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3525 | gc = od->gc; |
|
11808
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3526 | od = (OscarData *)gc->proto_data; |
|
11809
4c511577abb2
[gaim-migrate @ 14100]
Mark Doliner <markdoliner@pidgin.im>
parents:
11808
diff
changeset
|
3527 | account = gaim_connection_get_account(gc); |
|
11808
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3528 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3529 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3530 | maxpermits = (guint16) va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3531 | maxdenies = (guint16) va_arg(ap, unsigned int); |
| 2086 | 3532 | va_end(ap); |
| 3533 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3534 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3535 | "BOS rights: Max permit = %hu / Max deny = %hu\n", maxpermits, maxdenies); |
| 2086 | 3536 | |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3537 | od->rights.maxpermits = (guint)maxpermits; |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3538 | od->rights.maxdenies = (guint)maxdenies; |
| 2993 | 3539 | |
|
5576
8a3ce839ed22
[gaim-migrate @ 5980]
Christian Hammond <chipx86@chipx86.com>
parents:
5575
diff
changeset
|
3540 | gaim_connection_set_state(gc, GAIM_CONNECTED); |
| 2993 | 3541 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3542 | gaim_debug_info("oscar", "buddy list loaded\n"); |
| 2993 | 3543 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3544 | aim_clientready(od, conn); |
|
11808
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3545 | |
|
15122
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
3546 | if (gaim_account_get_user_info(account) != NULL) |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
3547 | serv_set_info(gc, gaim_account_get_user_info(account)); |
|
58eab9b89e86
[gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents:
15119
diff
changeset
|
3548 | |
|
11808
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3549 | /* Set our available message based on the current status */ |
|
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3550 | status = gaim_account_get_active_status(account); |
|
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3551 | if (gaim_status_is_available(status)) |
|
ae5d32dd826c
[gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents:
11766
diff
changeset
|
3552 | message = gaim_status_get_attr_string(status, "message"); |
|
11810
54a7031fdf39
[gaim-migrate @ 14101]
Mark Doliner <markdoliner@pidgin.im>
parents:
11809
diff
changeset
|
3553 | else |
|
54a7031fdf39
[gaim-migrate @ 14101]
Mark Doliner <markdoliner@pidgin.im>
parents:
11809
diff
changeset
|
3554 | message = NULL; |
|
12344
5dade80f1792
[gaim-migrate @ 14648]
Mark Doliner <markdoliner@pidgin.im>
parents:
12317
diff
changeset
|
3555 | tmp = gaim_markup_strip_html(message); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3556 | aim_srv_setstatusmsg(od, tmp); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3557 | g_free(tmp); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3558 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3559 | aim_srv_setidle(od, 0); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
3560 | |
|
4664
1f5d72a07e64
[gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents:
4662
diff
changeset
|
3561 | if (od->icq) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3562 | aim_icq_reqofflinemsgs(od); |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
3563 | oscar_set_extendedstatus(gc); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3564 | aim_icq_setsecurity(od, |
| 10570 | 3565 | gaim_account_get_bool(account, "authorization", OSCAR_DEFAULT_AUTHORIZATION), |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
3566 | gaim_account_get_bool(account, "web_aware", OSCAR_DEFAULT_WEB_AWARE)); |
|
4664
1f5d72a07e64
[gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents:
4662
diff
changeset
|
3567 | } |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3568 | |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
3569 | aim_srv_requestnew(od, SNAC_FAMILY_CHATNAV); |
|
15139
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3570 | |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3571 | /* |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3572 | * The "if" statement here is a pathetic attempt to not attempt to |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3573 | * connect to the alerts servce (aka email notification) if this |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3574 | * screen name does not support it. I think mail notification |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3575 | * works for @mac.com accounts but does not work for the newer |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3576 | * @anythingelse.com accounts. If that's true then this change |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3577 | * breaks mail notification for @mac.com accounts, but it gets rid |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3578 | * of an annoying error at signon for @anythingelse.com accounts. |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3579 | */ |
|
a1400936ad49
[gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents:
15122
diff
changeset
|
3580 | if ((od->authinfo->email != NULL) && ((strchr(gc->account->username, '@') == NULL))) |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
3581 | aim_srv_requestnew(od, SNAC_FAMILY_ALERT); |
| 2086 | 3582 | |
| 3583 | return 1; | |
| 3584 | } | |
| 3585 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3586 | static int gaim_offlinemsg(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3587 | va_list ap; |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3588 | struct aim_icq_offlinemsg *msg; |
|
4075
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
3589 | struct aim_incomingim_ch4_args args; |
|
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
3590 | time_t t; |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3591 | |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3592 | va_start(ap, fr); |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3593 | msg = va_arg(ap, struct aim_icq_offlinemsg *); |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3594 | va_end(ap); |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3595 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3596 | gaim_debug_info("oscar", |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
3597 | "Received offline message. Converting to channel 4 ICBM...\n"); |
|
4075
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
3598 | args.uin = msg->sender; |
|
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
3599 | args.type = msg->type; |
|
4173
e2528bd24e6f
[gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents:
4166
diff
changeset
|
3600 | args.flags = msg->flags; |
|
4076
563a1af15501
[gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents:
4075
diff
changeset
|
3601 | args.msglen = msg->msglen; |
|
4075
1b8062090546
[gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents:
4056
diff
changeset
|
3602 | args.msg = msg->msg; |
|
7108
82655fa54acb
[gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents:
7107
diff
changeset
|
3603 | t = gaim_time_build(msg->year, msg->month, msg->day, msg->hour, msg->minute, 0); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3604 | incomingim_chan4(od, conn, NULL, &args, t); |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3605 | |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3606 | return 1; |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3607 | } |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3608 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3609 | static int gaim_offlinemsgdone(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3610 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3611 | aim_icq_ackofflinemsgs(od); |
|
2706
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3612 | return 1; |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3613 | } |
|
ac9384d37d6c
[gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2704
diff
changeset
|
3614 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3615 | static int gaim_icqinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3616 | { |
|
13935
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3617 | GaimConnection *gc; |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3618 | GaimAccount *account; |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3619 | GaimBuddy *buddy; |
|
13935
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3620 | struct buddyinfo *bi; |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
3621 | gchar who[16]; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3622 | GaimNotifyUserInfo *user_info; |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3623 | GString *tmp; |
|
11533
f58436975d44
[gaim-migrate @ 13782]
Richard Laager <rlaager@pidgin.im>
parents:
11532
diff
changeset
|
3624 | gchar *utf8; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3625 | gchar *buf; |
|
9634
166f3ac40f4a
[gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents:
9631
diff
changeset
|
3626 | const gchar *alias; |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3627 | va_list ap; |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
3628 | struct aim_icq_info *info; |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3629 | |
|
13935
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3630 | gc = od->gc; |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3631 | account = gaim_connection_get_account(gc); |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3632 | |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3633 | va_start(ap, fr); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
3634 | info = va_arg(ap, struct aim_icq_info *); |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3635 | va_end(ap); |
|
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3636 | |
|
4664
1f5d72a07e64
[gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents:
4662
diff
changeset
|
3637 | if (!info->uin) |
|
1f5d72a07e64
[gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents:
4662
diff
changeset
|
3638 | return 0; |
|
1f5d72a07e64
[gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents:
4662
diff
changeset
|
3639 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3640 | user_info = gaim_notify_user_info_new(); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3641 | |
|
5556
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
3642 | g_snprintf(who, sizeof(who), "%u", info->uin); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3643 | buddy = gaim_find_buddy(gaim_connection_get_account(gc), who); |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3644 | if (buddy != NULL) |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3645 | bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(buddy->account, buddy->name)); |
|
13935
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3646 | else |
|
70c9d9e75948
[gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents:
13924
diff
changeset
|
3647 | bi = NULL; |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3648 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3649 | gaim_notify_user_info_add_pair(user_info, _("UIN"), who); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3650 | oscar_user_info_convert_and_add(account, user_info, _("Nick"), info->nick); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3651 | if ((bi != NULL) && (bi->ipaddr != 0)) { |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3652 | char *tstr = g_strdup_printf("%hhu.%hhu.%hhu.%hhu", |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3653 | (bi->ipaddr & 0xff000000) >> 24, |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3654 | (bi->ipaddr & 0x00ff0000) >> 16, |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3655 | (bi->ipaddr & 0x0000ff00) >> 8, |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3656 | (bi->ipaddr & 0x000000ff)); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3657 | gaim_notify_user_info_add_pair(user_info, _("IP Address"), tstr); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3658 | g_free(tstr); |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3659 | } |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3660 | oscar_user_info_convert_and_add(account, user_info, _("First Name"), info->first); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3661 | oscar_user_info_convert_and_add(account, user_info, _("Last Name"), info->last); |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3662 | if (info->email && info->email[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->email))) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3663 | buf = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", utf8, utf8); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3664 | gaim_notify_user_info_add_pair(user_info, _("E-Mail Address"), buf); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3665 | g_free(buf); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3666 | g_free(utf8); |
|
4625
f5b87130e1c4
[gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents:
4624
diff
changeset
|
3667 | } |
|
f5b87130e1c4
[gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents:
4624
diff
changeset
|
3668 | if (info->numaddresses && info->email2) { |
|
f5b87130e1c4
[gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents:
4624
diff
changeset
|
3669 | int i; |
|
f5b87130e1c4
[gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents:
4624
diff
changeset
|
3670 | for (i = 0; i < info->numaddresses; i++) { |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3671 | if (info->email2[i] && info->email2[i][0] && (utf8 = oscar_utf8_try_convert(gc->account, info->email2[i]))) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3672 | buf = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", utf8, utf8); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3673 | gaim_notify_user_info_add_pair(user_info, _("E-Mail Address"), buf); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3674 | g_free(buf); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3675 | g_free(utf8); |
| 4643 | 3676 | } |
|
4625
f5b87130e1c4
[gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents:
4624
diff
changeset
|
3677 | } |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
3678 | } |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3679 | oscar_user_info_convert_and_add(account, user_info, _("Mobile Phone"), info->mobile); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3680 | |
|
10022
b5bb3bdd4d1a
[gaim-migrate @ 10954]
Mark Doliner <markdoliner@pidgin.im>
parents:
10009
diff
changeset
|
3681 | if (info->gender != 0) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3682 | gaim_notify_user_info_add_pair(user_info, _("Gender"), (info->gender == 1 ? _("Female") : _("Male"))); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3683 | |
|
12491
7e5229b88eea
[gaim-migrate @ 14803]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12486
diff
changeset
|
3684 | if ((info->birthyear > 1900) && (info->birthmonth > 0) && (info->birthday > 0)) { |
|
13717
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3685 | /* Initialize the struct properly or strftime() will crash |
|
13730
cf63be7eb903
[gaim-migrate @ 16139]
Richard Laager <rlaager@pidgin.im>
parents:
13719
diff
changeset
|
3686 | * under some conditions (e.g. Debian sarge w/ LANG=en_HK). */ |
|
13717
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3687 | time_t t = time(NULL); |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3688 | struct tm *tm = localtime(&t); |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3689 | |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3690 | tm->tm_mday = (int)info->birthday; |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3691 | tm->tm_mon = (int)info->birthmonth - 1; |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3692 | tm->tm_year = (int)info->birthyear - 1900; |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3693 | |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3694 | /* To be 100% sure that the fields are re-normalized. |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3695 | * If you're sure strftime() ALWAYS does this EVERYWHERE, |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3696 | * feel free to remove it. --rlaager */ |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3697 | mktime(tm); |
|
e42ba3023369
[gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents:
13707
diff
changeset
|
3698 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3699 | oscar_user_info_convert_and_add(account, user_info, _("Birthday"), gaim_date_format_short(tm)); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
3700 | } |
|
12491
7e5229b88eea
[gaim-migrate @ 14803]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12486
diff
changeset
|
3701 | if ((info->age > 0) && (info->age < 255)) { |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
3702 | char age[5]; |
|
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
3703 | snprintf(age, sizeof(age), "%hhd", info->age); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3704 | gaim_notify_user_info_add_pair(user_info, |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3705 | _("Age"), age); |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3706 | } |
|
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3707 | if (info->personalwebpage && info->personalwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->personalwebpage))) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3708 | buf = g_strdup_printf("<a href=\"%s\">%s</a>", utf8, utf8); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3709 | gaim_notify_user_info_add_pair(user_info, _("Personal Web Page"), buf); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3710 | g_free(buf); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3711 | g_free(utf8); |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3712 | } |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3713 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3714 | oscar_user_info_convert_and_add(account, user_info, _("Additional Information"), info->info); |
|
15210
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
3715 | gaim_notify_user_info_add_section_break(user_info); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3716 | |
|
4641
bcc6f5e3018a
[gaim-migrate @ 4951]
Mark Doliner <markdoliner@pidgin.im>
parents:
4634
diff
changeset
|
3717 | if ((info->homeaddr && (info->homeaddr[0])) || (info->homecity && info->homecity[0]) || (info->homestate && info->homestate[0]) || (info->homezip && info->homezip[0])) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3718 | tmp = g_string_sized_new(100); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3719 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Address"), info->homeaddr); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3720 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("City"), info->homecity); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3721 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("State"), info->homestate); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3722 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Zip Code"), info->homezip); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3723 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3724 | gaim_notify_user_info_add_pair(user_info, _("Home Address"), tmp->str); |
|
15210
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
3725 | gaim_notify_user_info_add_section_break(user_info); |
|
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
3726 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3727 | g_string_free(tmp, TRUE); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
3728 | } |
|
4641
bcc6f5e3018a
[gaim-migrate @ 4951]
Mark Doliner <markdoliner@pidgin.im>
parents:
4634
diff
changeset
|
3729 | if ((info->workaddr && info->workaddr[0]) || (info->workcity && info->workcity[0]) || (info->workstate && info->workstate[0]) || (info->workzip && info->workzip[0])) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3730 | tmp = g_string_sized_new(100); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3731 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3732 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Address"), info->workaddr); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3733 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("City"), info->workcity); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3734 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("State"), info->workstate); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3735 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Zip Code"), info->workzip); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3736 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3737 | gaim_notify_user_info_add_pair(user_info, _("Work Address"), tmp->str); |
|
15210
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
3738 | gaim_notify_user_info_add_section_break(user_info); |
|
4278244e432c
[gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
3739 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3740 | g_string_free(tmp, TRUE); |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
3741 | } |
|
4641
bcc6f5e3018a
[gaim-migrate @ 4951]
Mark Doliner <markdoliner@pidgin.im>
parents:
4634
diff
changeset
|
3742 | if ((info->workcompany && info->workcompany[0]) || (info->workdivision && info->workdivision[0]) || (info->workposition && info->workposition[0]) || (info->workwebpage && info->workwebpage[0])) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3743 | tmp = g_string_sized_new(100); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3744 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3745 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Company"), info->workcompany); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3746 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Division"), info->workdivision); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3747 | oscar_string_convert_and_append(account, tmp, "\n<br>", _("Position"), info->workposition); |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3748 | if (info->workwebpage && info->workwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->workwebpage))) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3749 | g_string_append_printf(tmp, "\n<br><b>%s:</b> <a href=\"%s\">%s</a>", _("Web Page"), utf8, utf8); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3750 | g_free(utf8); |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
3751 | } |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3752 | gaim_notify_user_info_add_pair(user_info, _("Work Information"), tmp->str); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3753 | g_string_free(tmp, TRUE); |
|
8670
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3754 | } |
|
a3d5260f1d8f
[gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents:
8668
diff
changeset
|
3755 | |
|
9634
166f3ac40f4a
[gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents:
9631
diff
changeset
|
3756 | if (buddy != NULL) |
|
166f3ac40f4a
[gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents:
9631
diff
changeset
|
3757 | alias = gaim_buddy_get_alias(buddy); |
|
166f3ac40f4a
[gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents:
9631
diff
changeset
|
3758 | else |
|
166f3ac40f4a
[gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents:
9631
diff
changeset
|
3759 | alias = who; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3760 | gaim_notify_userinfo(gc, who, user_info, NULL, NULL); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
3761 | gaim_notify_user_info_destroy(user_info); |
|
4151
29004a3d21a0
[gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents:
4121
diff
changeset
|
3762 | |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3763 | return 1; |
|
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3764 | } |
|
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
3765 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3766 | static int gaim_icqalias(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
4759
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3767 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3768 | GaimConnection *gc = od->gc; |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3769 | GaimAccount *account = gaim_connection_get_account(gc); |
|
4820
1e869f00810b
[gaim-migrate @ 5145]
Mark Doliner <markdoliner@pidgin.im>
parents:
4819
diff
changeset
|
3770 | gchar who[16], *utf8; |
| 6695 | 3771 | GaimBuddy *b; |
|
4759
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3772 | va_list ap; |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3773 | struct aim_icq_info *info; |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3774 | |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3775 | va_start(ap, fr); |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3776 | info = va_arg(ap, struct aim_icq_info *); |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3777 | va_end(ap); |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3778 | |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
3779 | if (info->uin && info->nick && info->nick[0] && (utf8 = oscar_utf8_try_convert(account, info->nick))) { |
|
5556
5d64702e975b
[gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents:
5542
diff
changeset
|
3780 | g_snprintf(who, sizeof(who), "%u", info->uin); |
|
4820
1e869f00810b
[gaim-migrate @ 5145]
Mark Doliner <markdoliner@pidgin.im>
parents:
4819
diff
changeset
|
3781 | serv_got_alias(gc, who, utf8); |
|
4759
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3782 | if ((b = gaim_find_buddy(gc->account, who))) { |
| 7693 | 3783 | gaim_blist_node_set_string((GaimBlistNode*)b, "servernick", utf8); |
|
4759
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3784 | } |
|
4820
1e869f00810b
[gaim-migrate @ 5145]
Mark Doliner <markdoliner@pidgin.im>
parents:
4819
diff
changeset
|
3785 | g_free(utf8); |
|
4759
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3786 | } |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3787 | |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3788 | return 1; |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3789 | } |
|
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
3790 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3791 | static int gaim_popup(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3792 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3793 | GaimConnection *gc = od->gc; |
|
7032
a6587d42db0c
[gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents:
7026
diff
changeset
|
3794 | gchar *text; |
|
a6587d42db0c
[gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents:
7026
diff
changeset
|
3795 | va_list ap; |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3796 | char *msg, *url; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3797 | guint16 wid, hei, delay; |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3798 | |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3799 | va_start(ap, fr); |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3800 | msg = va_arg(ap, char *); |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3801 | url = va_arg(ap, char *); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3802 | wid = (guint16) va_arg(ap, int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3803 | hei = (guint16) va_arg(ap, int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3804 | delay = (guint16) va_arg(ap, int); |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3805 | va_end(ap); |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3806 | |
|
7032
a6587d42db0c
[gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents:
7026
diff
changeset
|
3807 | text = g_strdup_printf("%s<br><a href=\"%s\">%s</a>", msg, url, url); |
|
a6587d42db0c
[gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents:
7026
diff
changeset
|
3808 | gaim_notify_formatted(gc, NULL, _("Pop-Up Message"), NULL, text, NULL, NULL); |
|
a6587d42db0c
[gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents:
7026
diff
changeset
|
3809 | g_free(text); |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3810 | |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3811 | return 1; |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3812 | } |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
3813 | |
| 13641 | 3814 | static void oscar_searchresults_add_buddy_cb(GaimConnection *gc, GList *row, void *user_data) |
| 11359 | 3815 | { |
| 3816 | gaim_blist_request_add_buddy(gaim_connection_get_account(gc), | |
| 3817 | g_list_nth_data(row, 0), NULL, NULL); | |
| 3818 | } | |
| 3819 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3820 | static int gaim_parse_searchreply(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
7032
a6587d42db0c
[gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents:
7026
diff
changeset
|
3821 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3822 | GaimConnection *gc = od->gc; |
| 11359 | 3823 | GaimNotifySearchResults *results; |
| 3824 | GaimNotifySearchColumn *column; | |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3825 | gchar *secondary; |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3826 | int i, num; |
| 2086 | 3827 | va_list ap; |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3828 | char *email, *SNs; |
| 2086 | 3829 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3830 | va_start(ap, fr); |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3831 | email = va_arg(ap, char *); |
| 2086 | 3832 | num = va_arg(ap, int); |
| 3833 | SNs = va_arg(ap, char *); | |
| 3834 | va_end(ap); | |
| 3835 | ||
| 12257 | 3836 | results = gaim_notify_searchresults_new(); |
| 3837 | ||
| 3838 | if (results == NULL) { | |
| 3839 | gaim_debug_error("oscar", "gaim_parse_searchreply: " | |
| 3840 | "Unable to display the search results.\n"); | |
| 3841 | gaim_notify_error(gc, NULL, | |
| 3842 | _("Unable to display the search results."), | |
| 3843 | NULL); | |
|
12260
4b2e29383b0e
[gaim-migrate @ 14562]
Mark Doliner <markdoliner@pidgin.im>
parents:
12257
diff
changeset
|
3844 | return 1; |
| 12257 | 3845 | } |
| 3846 | ||
|
12254
af73b85cad3d
[gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents:
12243
diff
changeset
|
3847 | secondary = g_strdup_printf( |
|
af73b85cad3d
[gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents:
12243
diff
changeset
|
3848 | ngettext("The following screen name is associated with %s", |
|
af73b85cad3d
[gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents:
12243
diff
changeset
|
3849 | "The following screen names are associated with %s", |
|
af73b85cad3d
[gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents:
12243
diff
changeset
|
3850 | num), |
|
af73b85cad3d
[gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents:
12243
diff
changeset
|
3851 | email); |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10405
diff
changeset
|
3852 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3853 | column = gaim_notify_searchresults_column_new(_("Screen name")); |
| 11359 | 3854 | gaim_notify_searchresults_column_add(results, column); |
| 3855 | ||
| 3856 | for (i = 0; i < num; i++) { | |
| 3857 | GList *row = NULL; | |
| 3858 | row = g_list_append(row, g_strdup(&SNs[i * (MAXSNLEN + 1)])); | |
| 3859 | gaim_notify_searchresults_row_add(results, row); | |
| 3860 | } | |
|
12624
c1c92f08976b
[gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents:
12617
diff
changeset
|
3861 | gaim_notify_searchresults_button_add(results, GAIM_NOTIFY_BUTTON_ADD, |
| 11359 | 3862 | oscar_searchresults_add_buddy_cb); |
| 3863 | gaim_notify_searchresults(gc, NULL, NULL, secondary, results, NULL, NULL); | |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3864 | |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3865 | g_free(secondary); |
| 2086 | 3866 | |
| 3867 | return 1; | |
| 3868 | } | |
| 3869 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3870 | static int gaim_parse_searcherror(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
| 2086 | 3871 | va_list ap; |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3872 | char *email; |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
3873 | char *buf; |
| 2086 | 3874 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3875 | va_start(ap, fr); |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
3876 | email = va_arg(ap, char *); |
| 2086 | 3877 | va_end(ap); |
| 3878 | ||
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
3879 | buf = g_strdup_printf(_("No results found for e-mail address %s"), email); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3880 | gaim_notify_error(od->gc, NULL, buf, NULL); |
|
5420
f5535376ef7d
[gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents:
5411
diff
changeset
|
3881 | g_free(buf); |
| 2086 | 3882 | |
| 3883 | return 1; | |
| 3884 | } | |
| 3885 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3886 | static int gaim_account_confirm(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3887 | GaimConnection *gc = od->gc; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3888 | guint16 status; |
| 2086 | 3889 | va_list ap; |
| 3890 | char msg[256]; | |
| 3891 | ||
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3892 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3893 | status = (guint16) va_arg(ap, unsigned int); /* status code of confirmation request */ |
| 2086 | 3894 | va_end(ap); |
| 3895 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3896 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
3897 | "account confirmation returned status 0x%04x (%s)\n", status, |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3898 | status ? "unknown" : "e-mail sent"); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3899 | if (!status) { |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
3900 | g_snprintf(msg, sizeof(msg), _("You should receive an e-mail asking to confirm %s."), |
| 5575 | 3901 | gaim_account_get_username(gaim_connection_get_account(gc))); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
3902 | gaim_notify_info(gc, NULL, _("Account Confirmation Requested"), msg); |
| 2086 | 3903 | } |
| 3904 | ||
| 3905 | return 1; | |
| 3906 | } | |
| 3907 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3908 | static int gaim_info_change(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3909 | GaimConnection *gc = od->gc; |
| 2086 | 3910 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3911 | guint16 perms, err; |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3912 | char *url, *sn, *email; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3913 | int change; |
| 2086 | 3914 | |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3915 | va_start(ap, fr); |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
3916 | change = va_arg(ap, int); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3917 | perms = (guint16) va_arg(ap, unsigned int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
3918 | err = (guint16) va_arg(ap, unsigned int); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3919 | url = va_arg(ap, char *); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3920 | sn = va_arg(ap, char *); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3921 | email = va_arg(ap, char *); |
| 2086 | 3922 | va_end(ap); |
| 3923 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
3924 | gaim_debug_misc("oscar", |
|
9626
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3925 | "account info: because of %s, perms=0x%04x, err=0x%04x, url=%s, sn=%s, email=%s\n", |
|
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3926 | change ? "change" : "request", perms, err, |
|
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3927 | (url != NULL) ? url : "(null)", |
|
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3928 | (sn != NULL) ? sn : "(null)", |
|
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3929 | (email != NULL) ? email : "(null)"); |
|
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3930 | |
|
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3931 | if ((err > 0) && (url != NULL)) { |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3932 | char *dialog_msg; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3933 | char *dialog_top = g_strdup_printf(_("Error Changing Account Info")); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3934 | switch (err) { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3935 | case 0x0001: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3936 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to format screen name because the requested screen name differs from the original."), err); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3937 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3938 | case 0x0006: { |
|
11399
2313bf7bed5b
[gaim-migrate @ 13634]
Mark Doliner <markdoliner@pidgin.im>
parents:
11369
diff
changeset
|
3939 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to format screen name because it is invalid."), err); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3940 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3941 | case 0x000b: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3942 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to format screen name because the requested screen name is too long."), err); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3943 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3944 | case 0x001d: { |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
3945 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name."), err); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3946 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3947 | case 0x0021: { |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
3948 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it."), err); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3949 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3950 | case 0x0023: { |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
3951 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change e-mail address because the given address is invalid."), err); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3952 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3953 | default: { |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3954 | dialog_msg = g_strdup_printf(_("Error 0x%04x: Unknown error."), err); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3955 | } break; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3956 | } |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
3957 | gaim_notify_error(gc, NULL, dialog_top, dialog_msg); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3958 | g_free(dialog_top); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3959 | g_free(dialog_msg); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3960 | return 1; |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3961 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3962 | |
|
9626
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3963 | if (sn != NULL) { |
| 4585 | 3964 | char *dialog_msg = g_strdup_printf(_("Your screen name is currently formatted as follows:\n%s"), sn); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
3965 | gaim_notify_info(gc, NULL, _("Account Info"), dialog_msg); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3966 | g_free(dialog_msg); |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3967 | } |
|
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3968 | |
|
9626
0bf7f913c6ca
[gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents:
9625
diff
changeset
|
3969 | if (email != NULL) { |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
3970 | char *dialog_msg = g_strdup_printf(_("The e-mail address for %s is %s"), |
| 5575 | 3971 | gaim_account_get_username(gaim_connection_get_account(gc)), email); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
3972 | gaim_notify_info(gc, NULL, _("Account Info"), dialog_msg); |
|
3912
334ebe7e5f93
[gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents:
3867
diff
changeset
|
3973 | g_free(dialog_msg); |
| 2086 | 3974 | } |
| 3975 | ||
| 3976 | return 1; | |
| 3977 | } | |
| 3978 | ||
| 15030 | 3979 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3980 | oscar_keepalive(GaimConnection *gc) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3981 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3982 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3983 | FlapConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3984 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3985 | od = (OscarData *)gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3986 | conn = flap_connection_getbytype(od, SNAC_FAMILY_LOCATE); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3987 | if (conn != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3988 | flap_connection_send_keepalive(od, conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3989 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3990 | |
| 15030 | 3991 | unsigned int |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13829
diff
changeset
|
3992 | oscar_send_typing(GaimConnection *gc, const char *name, GaimTypingState state) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3993 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3994 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3995 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3996 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3997 | od = (OscarData *)gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3998 | conn = peer_connection_find_by_type(od, name, OSCAR_CAPABILITY_DIRECTIM); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
3999 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4000 | if ((conn != NULL) && (conn->ready)) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4001 | { |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13829
diff
changeset
|
4002 | peer_odc_send_typing(conn, state); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4003 | } |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
4004 | else { |
|
5300
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4005 | /* Don't send if this turkey is in our deny list */ |
|
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4006 | GSList *list; |
|
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4007 | for (list=gc->account->deny; (list && aim_sncmp(name, list->data)); list=list->next); |
|
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4008 | if (!list) { |
| 7261 | 4009 | struct buddyinfo *bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(gc->account, name)); |
|
5300
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4010 | if (bi && bi->typingnot) { |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13829
diff
changeset
|
4011 | if (state == GAIM_TYPING) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4012 | aim_im_sendmtn(od, 0x0001, name, 0x0002); |
|
13844
835b8f7b3d1d
[gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents:
13829
diff
changeset
|
4013 | else if (state == GAIM_TYPED) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4014 | aim_im_sendmtn(od, 0x0001, name, 0x0001); |
|
5300
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4015 | else |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4016 | aim_im_sendmtn(od, 0x0001, name, 0x0000); |
|
5300
3a728d511680
[gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents:
5238
diff
changeset
|
4017 | } |
|
3595
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
4018 | } |
|
28da7ae040a5
[gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents:
3579
diff
changeset
|
4019 | } |
| 2993 | 4020 | return 0; |
| 4021 | } | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
4022 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4023 | /* TODO: Move this into odc.c! */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4024 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4025 | gaim_odc_send_im(PeerConnection *conn, const char *message, GaimMessageFlags imflags) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4026 | { |
|
13602
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4027 | GString *msg; |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4028 | GString *data; |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4029 | gchar *tmp; |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4030 | int tmplen; |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4031 | guint16 charset, charsubset; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4032 | GData *attribs; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4033 | const char *start, *end, *last; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4034 | int oscar_id = 0; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4035 | |
|
13602
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4036 | msg = g_string_new("<HTML><BODY>"); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4037 | data = g_string_new("<BINARY>"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4038 | last = message; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4039 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4040 | /* for each valid IMG tag... */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4041 | while (last && *last && gaim_markup_find_tag("img", last, &start, &end, &attribs)) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4042 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4043 | GaimStoredImage *image = NULL; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4044 | const char *id; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4045 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4046 | if (start - last) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4047 | g_string_append_len(msg, last, start - last); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4048 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4049 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4050 | id = g_datalist_get_data(&attribs, "id"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4051 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4052 | /* ... if it refers to a valid gaim image ... */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4053 | if (id && (image = gaim_imgstore_get(atoi(id)))) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4054 | /* ... append the message from start to the tag ... */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4055 | unsigned long size = gaim_imgstore_get_size(image); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4056 | const char *filename = gaim_imgstore_get_filename(image); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4057 | gpointer imgdata = gaim_imgstore_get_data(image); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4058 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4059 | oscar_id++; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4060 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4061 | /* ... insert a new img tag with the oscar id ... */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4062 | if (filename) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4063 | g_string_append_printf(msg, |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4064 | "<IMG SRC=\"%s\" ID=\"%d\" DATASIZE=\"%lu\">", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4065 | filename, oscar_id, size); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4066 | else |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4067 | g_string_append_printf(msg, |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4068 | "<IMG ID=\"%d\" DATASIZE=\"%lu\">", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4069 | oscar_id, size); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4070 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4071 | /* ... and append the data to the binary section ... */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4072 | g_string_append_printf(data, "<DATA ID=\"%d\" SIZE=\"%lu\">", |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4073 | oscar_id, size); |
|
13602
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4074 | g_string_append_len(data, imgdata, size); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4075 | g_string_append(data, "</DATA>"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4076 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4077 | /* If the tag is invalid, skip it, thus no else here */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4078 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4079 | g_datalist_clear(&attribs); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4080 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4081 | /* continue from the end of the tag */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4082 | last = end + 1; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4083 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4084 | |
|
13602
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4085 | /* append any remaining message data */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4086 | if (last && *last) |
|
13602
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4087 | g_string_append(msg, last); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4088 | |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4089 | g_string_append(msg, "</BODY></HTML>"); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4090 | |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4091 | /* Convert the message to a good encoding */ |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4092 | gaim_plugin_oscar_convert_to_best_encoding(conn->od->gc, |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4093 | conn->sn, msg->str, &tmp, &tmplen, &charset, &charsubset); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4094 | g_string_free(msg, TRUE); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4095 | msg = g_string_new_len(tmp, tmplen); |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4096 | |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4097 | /* Append any binary data that we may have */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4098 | if (oscar_id) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4099 | msg = g_string_append_len(msg, data->str, data->len); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4100 | msg = g_string_append(msg, "</BINARY>"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4101 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4102 | g_string_free(data, TRUE); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4103 | |
|
13602
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4104 | peer_odc_send_im(conn, msg->str, msg->len, charset, |
|
6a1cf9b5c913
[gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents:
13601
diff
changeset
|
4105 | imflags & GAIM_MESSAGE_AUTO_RESP); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4106 | g_string_free(msg, TRUE); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4107 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4108 | |
| 15030 | 4109 | int |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4110 | oscar_send_im(GaimConnection *gc, const char *name, const char *message, GaimMessageFlags imflags) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4111 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4112 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4113 | GaimAccount *account; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4114 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4115 | int ret; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4116 | char *iconfile; |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4117 | char *tmp1, *tmp2; |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4118 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4119 | od = (OscarData *)gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4120 | account = gaim_connection_get_account(gc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4121 | ret = 0; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4122 | iconfile = gaim_buddy_icons_get_full_path(gaim_account_get_buddy_icon(account)); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4123 | |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4124 | if (imflags & GAIM_MESSAGE_AUTO_RESP) |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4125 | tmp1 = gaim_str_sub_away_formatters(message, name); |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4126 | else |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4127 | tmp1 = g_strdup(message); |
|
3458
6140a920776b
[gaim-migrate @ 3506]
Mark Doliner <markdoliner@pidgin.im>
parents:
3456
diff
changeset
|
4128 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4129 | conn = peer_connection_find_by_type(od, name, OSCAR_CAPABILITY_DIRECTIM); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4130 | if ((conn != NULL) && (conn->ready)) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4131 | { |
|
4838
653f06ff2acf
[gaim-migrate @ 5163]
Mark Doliner <markdoliner@pidgin.im>
parents:
4834
diff
changeset
|
4132 | /* If we're directly connected, send a direct IM */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4133 | gaim_odc_send_im(conn, tmp1, imflags); |
| 2086 | 4134 | } else { |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4135 | struct buddyinfo *bi; |
| 3008 | 4136 | struct aim_sendimext_args args; |
| 4137 | struct stat st; | |
|
6478
2c3fe7c8659b
[gaim-migrate @ 6991]
Robert McQueen <robot101@debian.org>
parents:
6465
diff
changeset
|
4138 | gsize len; |
|
10246
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10240
diff
changeset
|
4139 | GaimConversation *conv; |
|
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10240
diff
changeset
|
4140 | |
|
11338
1a3663ac9b05
[gaim-migrate @ 13551]
Mark Doliner <markdoliner@pidgin.im>
parents:
11303
diff
changeset
|
4141 | conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, name, account); |
| 8962 | 4142 | |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4143 | if (strstr(tmp1, "<IMG ")) |
| 8962 | 4144 | gaim_conversation_write(conv, "", |
| 4145 | _("Your IM Image was not sent. " | |
| 4146 | "You must be Direct Connected to send IM Images."), | |
| 4147 | GAIM_MESSAGE_ERROR, time(NULL)); | |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4148 | |
|
10246
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10240
diff
changeset
|
4149 | bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(account, name)); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4150 | if (!bi) { |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4151 | bi = g_new0(struct buddyinfo, 1); |
|
10246
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10240
diff
changeset
|
4152 | g_hash_table_insert(od->buddyinfo, g_strdup(gaim_normalize(account, name)), bi); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4153 | } |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4154 | |
| 3008 | 4155 | args.flags = AIM_IMFLAGS_ACK | AIM_IMFLAGS_CUSTOMFEATURES; |
|
4665
d417f1b1a61b
[gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents:
4664
diff
changeset
|
4156 | if (od->icq) { |
|
11185
b8bfd357e6cf
[gaim-migrate @ 13297]
Mark Doliner <markdoliner@pidgin.im>
parents:
11172
diff
changeset
|
4157 | /* We have to present different "features" (whose meaning |
| 11172 | 4158 | is unclear and are merely a result of protocol inspection) |
| 4159 | to offline ICQ buddies. Otherwise, the official | |
| 4160 | ICQ client doesn't treat those messages as being "ANSI- | |
| 4161 | encoded" (and instead, assumes them to be UTF-8). | |
| 4162 | For more details, see SF issue 1179452. | |
| 4163 | */ | |
| 4164 | GaimBuddy *buddy = gaim_find_buddy(gc->account, name); | |
| 11910 | 4165 | if (buddy && GAIM_BUDDY_IS_ONLINE(buddy)) { |
| 11172 | 4166 | args.features = features_icq; |
| 4167 | args.featureslen = sizeof(features_icq); | |
| 4168 | } else { | |
| 4169 | args.features = features_icq_offline; | |
| 4170 | args.featureslen = sizeof(features_icq_offline); | |
| 4171 | } | |
| 3008 | 4172 | args.flags |= AIM_IMFLAGS_OFFLINE; |
|
4665
d417f1b1a61b
[gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents:
4664
diff
changeset
|
4173 | } else { |
|
d417f1b1a61b
[gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents:
4664
diff
changeset
|
4174 | args.features = features_aim; |
|
d417f1b1a61b
[gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents:
4664
diff
changeset
|
4175 | args.featureslen = sizeof(features_aim); |
|
4972
3dd342b21444
[gaim-migrate @ 5306]
Mark Doliner <markdoliner@pidgin.im>
parents:
4969
diff
changeset
|
4176 | |
|
12216
d80739091a63
[gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
12189
diff
changeset
|
4177 | if (imflags & GAIM_MESSAGE_AUTO_RESP) |
|
4972
3dd342b21444
[gaim-migrate @ 5306]
Mark Doliner <markdoliner@pidgin.im>
parents:
4969
diff
changeset
|
4178 | args.flags |= AIM_IMFLAGS_AWAY; |
|
4665
d417f1b1a61b
[gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents:
4664
diff
changeset
|
4179 | } |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4180 | |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4181 | if (bi->ico_need) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4182 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4183 | "Sending buddy icon request with message\n"); |
| 3008 | 4184 | args.flags |= AIM_IMFLAGS_BUDDYREQ; |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4185 | bi->ico_need = FALSE; |
| 3008 | 4186 | } |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4187 | |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
4188 | if (iconfile && !g_stat(iconfile, &st)) { |
|
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
4189 | FILE *file = g_fopen(iconfile, "rb"); |
| 3008 | 4190 | if (file) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
4191 | guchar *buf = g_malloc(st.st_size); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4192 | /* TODO: Use g_file_get_contents()? */ |
| 3008 | 4193 | fread(buf, 1, st.st_size, file); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
4194 | fclose(file); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4195 | |
| 3008 | 4196 | args.iconlen = st.st_size; |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
4197 | args.iconsum = aimutil_iconsum(buf, st.st_size); |
| 3008 | 4198 | args.iconstamp = st.st_mtime; |
| 4199 | ||
| 7406 | 4200 | if ((args.iconlen != bi->ico_me_len) || (args.iconsum != bi->ico_me_csum) || (args.iconstamp != bi->ico_me_time)) { |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4201 | bi->ico_informed = FALSE; |
| 7406 | 4202 | bi->ico_sent = FALSE; |
| 4203 | } | |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4204 | |
|
14344
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4205 | /* |
|
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4206 | * TODO: |
|
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4207 | * For some reason sending our icon to people only works |
|
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4208 | * when we're the ones who initiated the conversation. If |
|
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4209 | * the other person sends the first IM then they never get |
|
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4210 | * the icon. We should fix that. |
|
0bded1510670
[gaim-migrate @ 16967]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
4211 | */ |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4212 | if (!bi->ico_informed) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4213 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4214 | "Claiming to have a buddy icon\n"); |
|
4738
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4215 | args.flags |= AIM_IMFLAGS_HASICON; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4216 | bi->ico_me_len = args.iconlen; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4217 | bi->ico_me_csum = args.iconsum; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4218 | bi->ico_me_time = args.iconstamp; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4219 | bi->ico_informed = TRUE; |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4220 | } |
|
934125d7450e
[gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents:
4734
diff
changeset
|
4221 | |
| 3008 | 4222 | g_free(buf); |
| 2086 | 4223 | } |
| 4224 | } | |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
4225 | g_free(iconfile); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4226 | |
| 3008 | 4227 | args.destsn = name; |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4228 | |
|
8985
5045635e6d86
[gaim-migrate @ 9760]
Mark Doliner <markdoliner@pidgin.im>
parents:
8984
diff
changeset
|
4229 | /* |
|
13166
2724be46f443
[gaim-migrate @ 15528]
Evan Schoenberg <evands@pidgin.im>
parents:
13159
diff
changeset
|
4230 | * If we're IMing an SMS user or an ICQ user from an ICQ account, then strip HTML. |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
4231 | */ |
|
13169
c09d2d5dba91
[gaim-migrate @ 15531]
Evan Schoenberg <evands@pidgin.im>
parents:
13166
diff
changeset
|
4232 | if (aim_sn_is_sms(name)) { |
|
13166
2724be46f443
[gaim-migrate @ 15528]
Evan Schoenberg <evands@pidgin.im>
parents:
13159
diff
changeset
|
4233 | /* Messaging an SMS (mobile) user */ |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
4234 | tmp2 = gaim_unescape_html(tmp1); |
|
13166
2724be46f443
[gaim-migrate @ 15528]
Evan Schoenberg <evands@pidgin.im>
parents:
13159
diff
changeset
|
4235 | } else if (aim_sn_is_icq(gaim_account_get_username(account))) { |
|
10781
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
4236 | if (aim_sn_is_icq(name)) |
|
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
4237 | /* From ICQ to ICQ */ |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4238 | tmp2 = gaim_unescape_html(tmp1); |
|
10781
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
4239 | else |
|
0685b98c081c
[gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents:
10753
diff
changeset
|
4240 | /* From ICQ to AIM */ |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4241 | tmp2 = g_strdup(tmp1); |
| 8995 | 4242 | } else { |
|
10785
dddaac60f963
[gaim-migrate @ 12423]
Mark Doliner <markdoliner@pidgin.im>
parents:
10783
diff
changeset
|
4243 | /* From AIM to AIM and AIM to ICQ */ |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4244 | tmp2 = g_strdup(tmp1); |
| 8995 | 4245 | } |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4246 | g_free(tmp1); |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4247 | tmp1 = tmp2; |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4248 | len = strlen(tmp1); |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4249 | |
|
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4250 | gaim_plugin_oscar_convert_to_best_encoding(gc, name, tmp1, (char **)&args.msg, &args.msglen, &args.charset, &args.charsubset); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
4251 | gaim_debug_info("oscar", "Sending IM, charset=0x%04hx, charsubset=0x%04hx, length=%d\n", |
|
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
4252 | args.charset, args.charsubset, args.msglen); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4253 | ret = aim_im_sendch1_ext(od, &args); |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
4254 | g_free((char *)args.msg); |
| 2086 | 4255 | } |
|
4838
653f06ff2acf
[gaim-migrate @ 5163]
Mark Doliner <markdoliner@pidgin.im>
parents:
4834
diff
changeset
|
4256 | |
|
12677
61ea89a83849
[gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents:
12675
diff
changeset
|
4257 | g_free(tmp1); |
|
6310
efd8a4cbff53
[gaim-migrate @ 6809]
Mark Doliner <markdoliner@pidgin.im>
parents:
6308
diff
changeset
|
4258 | |
|
2303
18171aa8cd37
[gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2297
diff
changeset
|
4259 | if (ret >= 0) |
|
18171aa8cd37
[gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2297
diff
changeset
|
4260 | return 1; |
|
6310
efd8a4cbff53
[gaim-migrate @ 6809]
Mark Doliner <markdoliner@pidgin.im>
parents:
6308
diff
changeset
|
4261 | |
|
2303
18171aa8cd37
[gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2297
diff
changeset
|
4262 | return ret; |
| 2086 | 4263 | } |
| 4264 | ||
|
13937
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
4265 | /* |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
4266 | * As of 26 June 2006, ICQ users can request AIM info from |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
4267 | * everyone, and can request ICQ info from ICQ users, and |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
4268 | * AIM users can only request AIM info. |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
4269 | */ |
| 15030 | 4270 | void oscar_get_info(GaimConnection *gc, const char *name) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4271 | OscarData *od = (OscarData *)gc->proto_data; |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
4272 | |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
4273 | if (od->icq && aim_sn_is_icq(name)) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4274 | aim_icq_getallinfo(od, name); |
|
2742
2ffd839888a5
[gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2734
diff
changeset
|
4275 | else |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4276 | aim_locate_getinfoshort(od, name, 0x00000003); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
4277 | } |
|
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
4278 | |
|
8950
1b90ece5fb4f
[gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents:
8907
diff
changeset
|
4279 | #if 0 |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
4280 | static void oscar_set_dir(GaimConnection *gc, const char *first, const char *middle, const char *last, |
| 3466 | 4281 | const char *maiden, const char *city, const char *state, const char *country, int web) { |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
4282 | /* XXX - some of these things are wrong, but i'm lazy */ |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4283 | OscarData *od = (OscarData *)gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4284 | aim_locate_setdirinfo(od, first, middle, last, |
| 2086 | 4285 | maiden, NULL, NULL, city, state, NULL, 0, web); |
| 4286 | } | |
|
8950
1b90ece5fb4f
[gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents:
8907
diff
changeset
|
4287 | #endif |
| 2086 | 4288 | |
| 15030 | 4289 | void oscar_set_idle(GaimConnection *gc, int time) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4290 | OscarData *od = (OscarData *)gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4291 | aim_srv_setidle(od, time); |
| 2086 | 4292 | } |
| 4293 | ||
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4294 | static |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4295 | gchar *gaim_prpl_oscar_convert_to_infotext(const gchar *str, gsize *ret_len, char **encoding) |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4296 | { |
|
9807
ff713acc7204
[gaim-migrate @ 10675]
Mark Doliner <markdoliner@pidgin.im>
parents:
9806
diff
changeset
|
4297 | int charset = 0; |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4298 | char *encoded = NULL; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4299 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4300 | charset = oscar_charset_check(str); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4301 | if (charset == AIM_CHARSET_UNICODE) { |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4302 | encoded = g_convert(str, strlen(str), "UCS-2BE", "UTF-8", NULL, ret_len, NULL); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4303 | *encoding = "unicode-2-0"; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4304 | } else if (charset == AIM_CHARSET_CUSTOM) { |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4305 | encoded = g_convert(str, strlen(str), "ISO-8859-1", "UTF-8", NULL, ret_len, NULL); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4306 | *encoding = "iso-8859-1"; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4307 | } else { |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4308 | encoded = g_strdup(str); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4309 | *ret_len = strlen(str); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4310 | *encoding = "us-ascii"; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4311 | } |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4312 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4313 | return encoded; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4314 | } |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4315 | |
| 15030 | 4316 | void |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4317 | oscar_set_info(GaimConnection *gc, const char *rawinfo) |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4318 | { |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4319 | GaimAccount *account; |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4320 | GaimStatus *status; |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4321 | |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4322 | account = gaim_connection_get_account(gc); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4323 | status = gaim_account_get_active_status(account); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4324 | oscar_set_info_and_status(account, TRUE, rawinfo, FALSE, status); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4325 | } |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4326 | |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4327 | static void |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4328 | oscar_set_extendedstatus(GaimConnection *gc) |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4329 | { |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4330 | OscarData *od; |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4331 | GaimAccount *account; |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4332 | GaimStatus *status; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4333 | const gchar *status_id; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4334 | guint32 data = 0x00000000; |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4335 | |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4336 | od = gc->proto_data; |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4337 | account = gaim_connection_get_account(gc); |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4338 | status = gaim_account_get_active_status(account); |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4339 | status_id = gaim_status_get_id(status); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4340 | |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
4341 | data |= AIM_ICQ_STATE_HIDEIP; |
|
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
4342 | if (gaim_account_get_bool(account, "web_aware", OSCAR_DEFAULT_WEB_AWARE)) |
|
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
4343 | data |= AIM_ICQ_STATE_WEBAWARE; |
|
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
4344 | |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4345 | if (!strcmp(status_id, OSCAR_STATUS_ID_AVAILABLE) || !strcmp(status_id, OSCAR_STATUS_ID_AVAILABLE)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4346 | data |= AIM_ICQ_STATE_NORMAL; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4347 | else if (!strcmp(status_id, OSCAR_STATUS_ID_AWAY)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4348 | data |= AIM_ICQ_STATE_AWAY; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4349 | else if (!strcmp(status_id, OSCAR_STATUS_ID_DND)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4350 | data |= AIM_ICQ_STATE_AWAY | AIM_ICQ_STATE_DND | AIM_ICQ_STATE_BUSY; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4351 | else if (!strcmp(status_id, OSCAR_STATUS_ID_NA)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4352 | data |= AIM_ICQ_STATE_OUT | AIM_ICQ_STATE_AWAY; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4353 | else if (!strcmp(status_id, OSCAR_STATUS_ID_OCCUPIED)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4354 | data |= AIM_ICQ_STATE_AWAY | AIM_ICQ_STATE_BUSY; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4355 | else if (!strcmp(status_id, OSCAR_STATUS_ID_FREE4CHAT)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4356 | data |= AIM_ICQ_STATE_CHAT; |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4357 | else if (!strcmp(status_id, OSCAR_STATUS_ID_INVISIBLE)) |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
4358 | data |= AIM_ICQ_STATE_INVISIBLE; |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4359 | else if (!strcmp(status_id, OSCAR_STATUS_ID_CUSTOM)) |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4360 | data |= AIM_ICQ_STATE_OUT | AIM_ICQ_STATE_AWAY; |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
4361 | |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
4362 | aim_srv_setextstatus(od, data); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4363 | } |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4364 | |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4365 | static void |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4366 | oscar_set_info_and_status(GaimAccount *account, gboolean setinfo, const char *rawinfo, |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4367 | gboolean setstatus, GaimStatus *status) |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4368 | { |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4369 | GaimConnection *gc = gaim_account_get_connection(account); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4370 | OscarData *od = gc->proto_data; |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4371 | GaimPresence *presence; |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4372 | GaimStatusType *status_type; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4373 | GaimStatusPrimitive primitive; |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4374 | gboolean invisible; |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4375 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4376 | char *htmlinfo; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4377 | char *info_encoding = NULL; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4378 | char *info = NULL; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4379 | gsize infolen = 0; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4380 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4381 | const char *htmlaway; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4382 | char *away_encoding = NULL; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4383 | char *away = NULL; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4384 | gsize awaylen = 0; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4385 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4386 | status_type = gaim_status_get_type(status); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4387 | primitive = gaim_status_type_get_primitive(status_type); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4388 | presence = gaim_account_get_presence(account); |
|
12595
8108c22aa723
[gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents:
12588
diff
changeset
|
4389 | invisible = gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_INVISIBLE); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4390 | |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4391 | if (!setinfo) |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4392 | { |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4393 | /* Do nothing! */ |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4394 | } |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4395 | else if (od->rights.maxsiglen == 0) |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4396 | { |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
4397 | gaim_notify_warning(gc, NULL, _("Unable to set AIM profile."), |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
4398 | _("You have probably requested to set your " |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
4399 | "profile before the login procedure completed. " |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
4400 | "Your profile remains unset; try setting it " |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
4401 | "again when you are fully connected.")); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4402 | } |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4403 | else if (rawinfo != NULL) |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4404 | { |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4405 | htmlinfo = gaim_strdup_withhtml(rawinfo); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4406 | info = gaim_prpl_oscar_convert_to_infotext(htmlinfo, &infolen, &info_encoding); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4407 | g_free(htmlinfo); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4408 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4409 | if (infolen > od->rights.maxsiglen) |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4410 | { |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4411 | gchar *errstr; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4412 | errstr = g_strdup_printf(ngettext("The maximum profile length of %d byte " |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4413 | "has been exceeded. Gaim has truncated it for you.", |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4414 | "The maximum profile length of %d bytes " |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4415 | "has been exceeded. Gaim has truncated it for you.", |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4416 | od->rights.maxsiglen), od->rights.maxsiglen); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4417 | gaim_notify_warning(gc, NULL, _("Profile too long."), errstr); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4418 | g_free(errstr); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4419 | } |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4420 | } |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4421 | |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4422 | if (!setstatus) |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4423 | { |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4424 | /* Do nothing! */ |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4425 | } |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4426 | else if (primitive == GAIM_STATUS_AVAILABLE) |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4427 | { |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
4428 | const char *status_html; |
| 13802 | 4429 | char *status_text = NULL; |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
4430 | |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
4431 | status_html = gaim_status_get_attr_string(status, "message"); |
|
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
4432 | if (status_html != NULL) |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4433 | { |
|
12349
212226bfabe2
[gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents:
12347
diff
changeset
|
4434 | status_text = gaim_markup_strip_html(status_html); |
|
12617
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
4435 | /* If the status_text is longer than 60 character then truncate it */ |
|
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
4436 | if (strlen(status_text) > 60) |
|
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
4437 | { |
|
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
4438 | char *tmp = g_utf8_find_prev_char(status_text, &status_text[58]); |
|
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
4439 | strcpy(tmp, "..."); |
|
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
4440 | } |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4441 | } |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4442 | |
| 13802 | 4443 | aim_srv_setstatusmsg(od, status_text); |
| 4444 | g_free(status_text); | |
| 4445 | ||
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4446 | /* This is needed for us to un-set any previous away message. */ |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4447 | away = g_strdup(""); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4448 | } |
|
14209
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
4449 | else if ((primitive == GAIM_STATUS_AWAY) || |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
4450 | (primitive == GAIM_STATUS_EXTENDED_AWAY)) |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4451 | { |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4452 | htmlaway = gaim_status_get_attr_string(status, "message"); |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4453 | if ((htmlaway == NULL) || (*htmlaway == '\0')) |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4454 | htmlaway = _("Away"); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4455 | away = gaim_prpl_oscar_convert_to_infotext(htmlaway, &awaylen, &away_encoding); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4456 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4457 | if (awaylen > od->rights.maxawaymsglen) |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4458 | { |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4459 | gchar *errstr; |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4460 | |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4461 | errstr = g_strdup_printf(ngettext("The maximum away message length of %d byte " |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4462 | "has been exceeded. Gaim has truncated it for you.", |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4463 | "The maximum away message length of %d bytes " |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4464 | "has been exceeded. Gaim has truncated it for you.", |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4465 | od->rights.maxawaymsglen), od->rights.maxawaymsglen); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4466 | gaim_notify_warning(gc, NULL, _("Away message too long."), errstr); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4467 | g_free(errstr); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4468 | } |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4469 | } |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4470 | |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4471 | if (setstatus) |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4472 | oscar_set_extendedstatus(gc); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4473 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4474 | aim_locate_setprofile(od, info_encoding, info, MIN(infolen, od->rights.maxsiglen), |
|
11347
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4475 | away_encoding, away, MIN(awaylen, od->rights.maxawaymsglen)); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4476 | g_free(info); |
|
5b88acc51c32
[gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents:
11338
diff
changeset
|
4477 | g_free(away); |
| 2086 | 4478 | } |
| 4479 | ||
|
9991
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4480 | static void |
|
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4481 | oscar_set_status_icq(GaimAccount *account, GaimStatus *status) |
| 2993 | 4482 | { |
|
9991
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4483 | GaimConnection *gc = gaim_account_get_connection(account); |
| 10646 | 4484 | OscarData *od = NULL; |
|
9991
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4485 | |
| 10646 | 4486 | if (gc) |
| 4487 | od = (OscarData *)gc->proto_data; | |
| 4488 | if (!od) | |
| 4489 | return; | |
| 4490 | ||
|
12595
8108c22aa723
[gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents:
12588
diff
changeset
|
4491 | if (gaim_status_type_get_primitive(gaim_status_get_type(status)) == GAIM_STATUS_INVISIBLE) |
|
11766
1a2e988316e9
[gaim-migrate @ 14057]
Mark Doliner <markdoliner@pidgin.im>
parents:
11718
diff
changeset
|
4492 | account->perm_deny = GAIM_PRIVACY_ALLOW_USERS; |
|
8265
ff840ad070be
[gaim-migrate @ 8988]
Mark Doliner <markdoliner@pidgin.im>
parents:
8257
diff
changeset
|
4493 | else |
|
11766
1a2e988316e9
[gaim-migrate @ 14057]
Mark Doliner <markdoliner@pidgin.im>
parents:
11718
diff
changeset
|
4494 | account->perm_deny = GAIM_PRIVACY_DENY_USERS; |
|
9991
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4495 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4496 | if ((od->ssi.received_data) && (aim_ssi_getpermdeny(od->ssi.local) != account->perm_deny)) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4497 | aim_ssi_setpermdeny(od, account->perm_deny, 0xffffffff); |
| 4342 | 4498 | |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4499 | oscar_set_extendedstatus(gc); |
| 2993 | 4500 | } |
| 4501 | ||
| 15030 | 4502 | void |
|
9991
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4503 | oscar_set_status(GaimAccount *account, GaimStatus *status) |
| 2993 | 4504 | { |
|
10747
aff9c0803189
[gaim-migrate @ 12349]
Mark Doliner <markdoliner@pidgin.im>
parents:
10740
diff
changeset
|
4505 | gaim_debug_info("oscar", "Set status to %s\n", gaim_status_get_name(status)); |
|
aff9c0803189
[gaim-migrate @ 12349]
Mark Doliner <markdoliner@pidgin.im>
parents:
10740
diff
changeset
|
4506 | |
|
10498
aff389ee45f3
[gaim-migrate @ 11790]
Mark Doliner <markdoliner@pidgin.im>
parents:
10487
diff
changeset
|
4507 | if (!gaim_status_is_active(status)) |
| 10485 | 4508 | return; |
| 4509 | ||
|
11718
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11670
diff
changeset
|
4510 | if (!gaim_account_is_connected(account)) |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11670
diff
changeset
|
4511 | return; |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11670
diff
changeset
|
4512 | |
|
12653
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4513 | /* Set the AIM-style away message for both AIM and ICQ accounts */ |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4514 | oscar_set_info_and_status(account, FALSE, NULL, TRUE, status); |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4515 | |
|
47cfcc8e8c48
[gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents:
12652
diff
changeset
|
4516 | /* Set the ICQ status for ICQ accounts only */ |
|
11718
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11670
diff
changeset
|
4517 | if (aim_sn_is_icq(gaim_account_get_username(account))) |
|
90804d019837
[gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents:
11670
diff
changeset
|
4518 | oscar_set_status_icq(account, status); |
| 2086 | 4519 | } |
| 4520 | ||
|
11285
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
4521 | #ifdef CRAZY_WARN |
| 15030 | 4522 | void |
|
9991
a02e6b4e0959
[gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents:
9988
diff
changeset
|
4523 | oscar_warn(GaimConnection *gc, const char *name, gboolean anonymous) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4524 | OscarData *od = (OscarData *)gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4525 | aim_im_warn(od, od->conn, name, anonymous ? AIM_WARN_ANON : 0); |
| 2086 | 4526 | } |
|
11285
f6fff36607b1
[gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents:
11257
diff
changeset
|
4527 | #endif |
| 2086 | 4528 | |
| 15030 | 4529 | void |
|
10747
aff9c0803189
[gaim-migrate @ 12349]
Mark Doliner <markdoliner@pidgin.im>
parents:
10740
diff
changeset
|
4530 | oscar_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4531 | OscarData *od = (OscarData *)gc->proto_data; |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4532 | |
|
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4533 | if (!aim_snvalid(buddy->name)) { |
|
8092
ba92ce841814
[gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents:
8077
diff
changeset
|
4534 | gchar *buf; |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
4535 | buf = g_strdup_printf(_("Could not add the buddy %s because the screen name is invalid. Screen names must either start with a letter and contain only letters, numbers and spaces, or contain only numbers."), buddy->name); |
| 9627 | 4536 | if (!gaim_conv_present_error(buddy->name, gaim_connection_get_account(gc), buf)) |
| 4537 | gaim_notify_error(gc, NULL, _("Unable To Add"), buf); | |
|
8092
ba92ce841814
[gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents:
8077
diff
changeset
|
4538 | g_free(buf); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4539 | |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4540 | /* Remove from local list */ |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4541 | gaim_blist_remove_buddy(buddy); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4542 | |
|
8092
ba92ce841814
[gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents:
8077
diff
changeset
|
4543 | return; |
|
ba92ce841814
[gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents:
8077
diff
changeset
|
4544 | } |
|
ba92ce841814
[gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents:
8077
diff
changeset
|
4545 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4546 | if ((od->ssi.received_data) && !(aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY))) { |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
4547 | gaim_debug_info("oscar", |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
4548 | "ssi: adding buddy %s to group %s\n", buddy->name, group->name); |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
4549 | aim_ssi_addbuddy(od, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 0); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4550 | } |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4551 | |
|
10157
650fd69090cd
[gaim-migrate @ 11237]
Mark Doliner <markdoliner@pidgin.im>
parents:
10152
diff
changeset
|
4552 | /* XXX - Should this be done from AIM accounts, as well? */ |
|
4759
5a8c326b49b3
[gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents:
4754
diff
changeset
|
4553 | if (od->icq) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4554 | aim_icq_getalias(od, buddy->name); |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4555 | } |
|
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4556 | |
| 15030 | 4557 | void oscar_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4558 | OscarData *od = (OscarData *)gc->proto_data; |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4559 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4560 | if (od->ssi.received_data) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4561 | gaim_debug_info("oscar", |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4562 | "ssi: deleting buddy %s from group %s\n", buddy->name, group->name); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4563 | aim_ssi_delbuddy(od, buddy->name, group->name); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4564 | } |
|
10866
40eab743e22b
[gaim-migrate @ 12552]
Mark Doliner <markdoliner@pidgin.im>
parents:
10860
diff
changeset
|
4565 | } |
|
40eab743e22b
[gaim-migrate @ 12552]
Mark Doliner <markdoliner@pidgin.im>
parents:
10860
diff
changeset
|
4566 | |
| 15030 | 4567 | void oscar_move_buddy(GaimConnection *gc, const char *name, const char *old_group, const char *new_group) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4568 | OscarData *od = (OscarData *)gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4569 | if (od->ssi.received_data && strcmp(old_group, new_group)) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4570 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4571 | "ssi: moving buddy %s from group %s to group %s\n", name, old_group, new_group); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4572 | aim_ssi_movebuddy(od, old_group, new_group, name); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4573 | } |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4574 | } |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4575 | |
| 15030 | 4576 | void oscar_alias_buddy(GaimConnection *gc, const char *name, const char *alias) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
4577 | OscarData *od = (OscarData *)gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4578 | if (od->ssi.received_data) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4579 | char *gname = aim_ssi_itemlist_findparentname(od->ssi.local, name); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4580 | if (gname) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4581 | gaim_debug_info("oscar", |
|
9586
cb4e6ae1f4b1
[gaim-migrate @ 10429]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9554
diff
changeset
|
4582 | "ssi: changing the alias for buddy %s to %s\n", name, alias ? alias : "(none)"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4583 | aim_ssi_aliasbuddy(od, gname, name, alias); |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4584 | } |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4585 | } |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4586 | } |
|
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4587 | |
|
11005
06c22b605323
[gaim-migrate @ 12864]
Mark Doliner <markdoliner@pidgin.im>
parents:
11002
diff
changeset
|
4588 | /* |
|
06c22b605323
[gaim-migrate @ 12864]
Mark Doliner <markdoliner@pidgin.im>
parents:
11002
diff
changeset
|
4589 | * FYI, the OSCAR SSI code removes empty groups automatically. |
|
06c22b605323
[gaim-migrate @ 12864]
Mark Doliner <markdoliner@pidgin.im>
parents:
11002
diff
changeset
|
4590 | */ |
| 15030 | 4591 | void oscar_rename_group(GaimConnection *gc, const char *old_name, GaimGroup *group, GList *moved_buddies) { |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
4592 | OscarData *od = (OscarData *)gc->proto_data; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4593 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4594 | if (od->ssi.received_data) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4595 | if (aim_ssi_itemlist_finditem(od->ssi.local, group->name, NULL, AIM_SSI_TYPE_GROUP)) { |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4596 | GList *cur, *groups = NULL; |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11623
diff
changeset
|
4597 | GaimAccount *account = gaim_connection_get_account(gc); |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4598 | |
|
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4599 | /* Make a list of what the groups each buddy is in */ |
|
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4600 | for (cur = moved_buddies; cur != NULL; cur = cur->next) { |
|
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4601 | GaimBlistNode *node = cur->data; |
|
11002
0be28aa755ab
[gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents:
10949
diff
changeset
|
4602 | /* node is GaimBuddy, parent is a GaimContact. |
|
0be28aa755ab
[gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents:
10949
diff
changeset
|
4603 | * We must go two levels up to get the Group */ |
|
0be28aa755ab
[gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents:
10949
diff
changeset
|
4604 | groups = g_list_append(groups, |
|
0be28aa755ab
[gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents:
10949
diff
changeset
|
4605 | node->parent->parent); |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4606 | } |
|
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4607 | |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11623
diff
changeset
|
4608 | gaim_account_remove_buddies(account, moved_buddies, groups); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11623
diff
changeset
|
4609 | gaim_account_add_buddies(account, moved_buddies); |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4610 | g_list_free(groups); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4611 | gaim_debug_info("oscar", |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4612 | "ssi: moved all buddies from group %s to %s\n", old_name, group->name); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4613 | } else { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4614 | aim_ssi_rename_group(od, old_name, group->name); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4615 | gaim_debug_info("oscar", |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4616 | "ssi: renamed group %s to %s\n", old_name, group->name); |
|
2995
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2994
diff
changeset
|
4617 | } |
|
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2994
diff
changeset
|
4618 | } |
|
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2994
diff
changeset
|
4619 | } |
|
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2994
diff
changeset
|
4620 | |
|
5968
f3e4bc7bd718
[gaim-migrate @ 6415]
Mark Doliner <markdoliner@pidgin.im>
parents:
5954
diff
changeset
|
4621 | static gboolean gaim_ssi_rerequestdata(gpointer data) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4622 | OscarData *od = data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4623 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4624 | aim_ssi_reqdata(od); |
|
12663
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4625 | |
|
13060
255a68fe8471
[gaim-migrate @ 15422]
Mark Doliner <markdoliner@pidgin.im>
parents:
13008
diff
changeset
|
4626 | return TRUE; |
|
5968
f3e4bc7bd718
[gaim-migrate @ 6415]
Mark Doliner <markdoliner@pidgin.im>
parents:
5954
diff
changeset
|
4627 | } |
|
f3e4bc7bd718
[gaim-migrate @ 6415]
Mark Doliner <markdoliner@pidgin.im>
parents:
5954
diff
changeset
|
4628 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4629 | static int gaim_ssi_parseerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4630 | GaimConnection *gc = od->gc; |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4631 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4632 | guint16 reason; |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4633 | |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4634 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4635 | reason = (guint16)va_arg(ap, unsigned int); |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4636 | va_end(ap); |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4637 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4638 | gaim_debug_error("oscar", "ssi: SNAC error %hu\n", reason); |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4639 | |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4640 | if (reason == 0x0005) { |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
4641 | gaim_notify_error(gc, NULL, _("Unable To Retrieve Buddy List"), |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
4642 | _("Gaim was temporarily unable to retrieve your buddy list from the AIM servers. Your buddy list is not lost, and will probably become available in a few hours.")); |
|
12663
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4643 | if (od->getblisttimer > 0) |
|
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4644 | gaim_timeout_remove(od->getblisttimer); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4645 | od->getblisttimer = gaim_timeout_add(30000, gaim_ssi_rerequestdata, od); |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4646 | } |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4647 | |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4648 | oscar_set_extendedstatus(gc); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4649 | |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4650 | /* Activate SSI */ |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4651 | /* Sending the enable causes other people to be able to see you, and you to see them */ |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4652 | /* Make sure your privacy setting/invisibility is set how you want it before this! */ |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4653 | gaim_debug_info("oscar", "ssi: activating server-stored buddy list\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4654 | aim_ssi_enable(od); |
|
4642
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4655 | |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4656 | return 1; |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4657 | } |
|
a491791dc1a1
[gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents:
4641
diff
changeset
|
4658 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4659 | static int gaim_ssi_parserights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
9982
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
4660 | int i; |
|
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
4661 | va_list ap; |
|
4f35c5d13c8c
[gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents:
9976
diff
changeset
|
4662 | int numtypes; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4663 | guint16 *maxitems; |
| 2991 | 4664 | |
| 4665 | va_start(ap, fr); | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4666 | numtypes = va_arg(ap, int); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4667 | maxitems = va_arg(ap, guint16 *); |
| 2991 | 4668 | va_end(ap); |
| 4669 | ||
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4670 | gaim_debug_misc("oscar", "ssi rights:"); |
|
5211
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5208
diff
changeset
|
4671 | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4672 | for (i=0; i<numtypes; i++) |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4673 | gaim_debug_misc(NULL, " max type 0x%04x=%hd,", |
|
5211
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5208
diff
changeset
|
4674 | i, maxitems[i]); |
|
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5208
diff
changeset
|
4675 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4676 | gaim_debug_misc(NULL, "\n"); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4677 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4678 | if (numtypes >= 0) |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4679 | od->rights.maxbuddies = maxitems[0]; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4680 | if (numtypes >= 1) |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4681 | od->rights.maxgroups = maxitems[1]; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4682 | if (numtypes >= 2) |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4683 | od->rights.maxpermits = maxitems[2]; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4684 | if (numtypes >= 3) |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4685 | od->rights.maxdenies = maxitems[3]; |
| 2991 | 4686 | |
| 4687 | return 1; | |
| 4688 | } | |
| 4689 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4690 | static int gaim_ssi_parselist(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4691 | { |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4692 | GaimConnection *gc; |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4693 | GaimAccount *account; |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4694 | GaimGroup *g; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4695 | GaimBuddy *b; |
|
2995
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2994
diff
changeset
|
4696 | struct aim_ssi_item *curitem; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4697 | guint32 tmp; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4698 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4699 | guint16 fmtver, numitems; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4700 | guint32 timestamp; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4701 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4702 | gc = od->gc; |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4703 | od = gc->proto_data; |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4704 | account = gaim_connection_get_account(gc); |
|
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4705 | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4706 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4707 | fmtver = (guint16)va_arg(ap, int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4708 | numitems = (guint16)va_arg(ap, int); |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4709 | timestamp = va_arg(ap, guint32); |
| 8219 | 4710 | va_end(ap); |
| 2991 | 4711 | |
|
12663
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4712 | /* Don't attempt to re-request our buddy list later */ |
|
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4713 | if (od->getblisttimer != 0) |
|
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4714 | gaim_timeout_remove(od->getblisttimer); |
|
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4715 | od->getblisttimer = 0; |
|
0e72aaa59cf5
[gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents:
12662
diff
changeset
|
4716 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4717 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4718 | "ssi: syncing local list and server list\n"); |
| 2991 | 4719 | |
| 8219 | 4720 | if ((timestamp == 0) || (numitems == 0)) { |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
4721 | gaim_debug_info("oscar", "Got AIM SSI with a 0 timestamp or 0 numitems--not syncing. This probably means your buddy list is empty.", NULL); |
| 8219 | 4722 | return 1; |
| 4723 | } | |
| 4724 | ||
| 2991 | 4725 | /* Clean the buddy list */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4726 | aim_ssi_cleanlist(od); |
| 2991 | 4727 | |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4728 | { /* If not in server list then prune from local list */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4729 | GaimBlistNode *gnode, *cnode, *bnode; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4730 | GaimBuddyList *blist; |
|
9539
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4731 | GSList *cur, *next; |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4732 | |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4733 | /* Buddies */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4734 | cur = NULL; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4735 | if ((blist = gaim_get_blist()) != NULL) { |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4736 | for (gnode = blist->root; gnode; gnode = gnode->next) { |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4737 | if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4738 | continue; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4739 | g = (GaimGroup *)gnode; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4740 | for (cnode = gnode->child; cnode; cnode = cnode->next) { |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4741 | if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4742 | continue; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4743 | for (bnode = cnode->child; bnode; bnode = bnode->next) { |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4744 | if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4745 | continue; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4746 | b = (GaimBuddy *)bnode; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4747 | if (b->account == gc->account) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4748 | if (aim_ssi_itemlist_exists(od->ssi.local, b->name)) { |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4749 | /* If the buddy is an ICQ user then load his nickname */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4750 | const char *servernick = gaim_blist_node_get_string((GaimBlistNode*)b, "servernick"); |
| 8214 | 4751 | char *alias; |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4752 | if (servernick) |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4753 | serv_got_alias(gc, b->name, servernick); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4754 | |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4755 | /* Store local alias on server */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4756 | alias = aim_ssi_getalias(od->ssi.local, g->name, b->name); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4757 | if (!alias && b->alias && strlen(b->alias)) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4758 | aim_ssi_aliasbuddy(od, g->name, b->name, b->alias); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4759 | g_free(alias); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4760 | } else { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4761 | gaim_debug_info("oscar", |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4762 | "ssi: removing buddy %s from local list\n", b->name); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4763 | /* We can't actually remove now because it will screw up our looping */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4764 | cur = g_slist_prepend(cur, b); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4765 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4766 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4767 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4768 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4769 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4770 | } |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
4771 | |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4772 | while (cur != NULL) { |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4773 | b = cur->data; |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4774 | cur = g_slist_remove(cur, b); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4775 | gaim_blist_remove_buddy(b); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4776 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4777 | |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4778 | /* Permit list */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4779 | if (gc->account->permit) { |
|
9539
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4780 | next = gc->account->permit; |
|
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4781 | while (next != NULL) { |
|
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4782 | cur = next; |
|
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4783 | next = next->next; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4784 | if (!aim_ssi_itemlist_finditem(od->ssi.local, NULL, cur->data, AIM_SSI_TYPE_PERMIT)) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4785 | gaim_debug_info("oscar", |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4786 | "ssi: removing permit %s from local list\n", (const char *)cur->data); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4787 | gaim_privacy_permit_remove(account, cur->data, TRUE); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4788 | } |
|
9539
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4789 | } |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4790 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4791 | |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4792 | /* Deny list */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4793 | if (gc->account->deny) { |
|
9539
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4794 | next = gc->account->deny; |
|
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4795 | while (next != NULL) { |
|
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4796 | cur = next; |
|
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4797 | next = next->next; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4798 | if (!aim_ssi_itemlist_finditem(od->ssi.local, NULL, cur->data, AIM_SSI_TYPE_DENY)) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4799 | gaim_debug_info("oscar", |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4800 | "ssi: removing deny %s from local list\n", (const char *)cur->data); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4801 | gaim_privacy_deny_remove(account, cur->data, TRUE); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4802 | } |
|
9539
5528f58dea4d
[gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents:
9532
diff
changeset
|
4803 | } |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4804 | } |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4805 | /* Presence settings (idle time visibility) */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4806 | if ((tmp = aim_ssi_getpresence(od->ssi.local)) != 0xFFFFFFFF) |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4807 | if (!(tmp & 0x400)) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4808 | aim_ssi_setpresence(od, tmp | 0x400); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4809 | } /* end pruning buddies from local list */ |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4810 | |
| 2991 | 4811 | /* Add from server list to local list */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4812 | for (curitem=od->ssi.local; curitem; curitem=curitem->next) { |
|
7328
978db7a49075
[gaim-migrate @ 7914]
Mark Doliner <markdoliner@pidgin.im>
parents:
7313
diff
changeset
|
4813 | if ((curitem->name == NULL) || (g_utf8_validate(curitem->name, -1, NULL))) |
| 2991 | 4814 | switch (curitem->type) { |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4815 | case 0x0000: { /* Buddy */ |
|
4251
7d62db57d86a
[gaim-migrate @ 4501]
Mark Doliner <markdoliner@pidgin.im>
parents:
4249
diff
changeset
|
4816 | if (curitem->name) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4817 | char *gname = aim_ssi_itemlist_findparentname(od->ssi.local, curitem->name); |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
4818 | char *gname_utf8 = gname ? oscar_utf8_try_convert(gc->account, gname) : NULL; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4819 | char *alias = aim_ssi_getalias(od->ssi.local, gname, curitem->name); |
|
14088
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4820 | char *alias_utf8; |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4821 | |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4822 | if (alias != NULL) |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4823 | { |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4824 | if (g_utf8_validate(alias, -1, NULL)) |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4825 | alias_utf8 = g_strdup(alias); |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4826 | else |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4827 | alias_utf8 = oscar_utf8_try_convert(account, alias); |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4828 | } |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4829 | else |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4830 | alias_utf8 = NULL; |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4831 | |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4832 | b = gaim_find_buddy(gc->account, curitem->name); |
| 4458 | 4833 | /* Should gname be freed here? -- elb */ |
|
4754
216cd548ad68
[gaim-migrate @ 5071]
Mark Doliner <markdoliner@pidgin.im>
parents:
4744
diff
changeset
|
4834 | /* Not with the current code, but that might be cleaner -- med */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4835 | g_free(alias); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4836 | if (b) { |
|
4292
249d89e1b14c
[gaim-migrate @ 4545]
Mark Doliner <markdoliner@pidgin.im>
parents:
4282
diff
changeset
|
4837 | /* Get server stored alias */ |
| 4705 | 4838 | if (alias_utf8) { |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4839 | g_free(b->alias); |
|
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4840 | b->alias = g_strdup(alias_utf8); |
| 4705 | 4841 | } |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
4842 | } else { |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4843 | b = gaim_buddy_new(gc->account, curitem->name, alias_utf8); |
|
5146
56b1615ba288
[gaim-migrate @ 5510]
Mark Doliner <markdoliner@pidgin.im>
parents:
5136
diff
changeset
|
4844 | |
|
4754
216cd548ad68
[gaim-migrate @ 5071]
Mark Doliner <markdoliner@pidgin.im>
parents:
4744
diff
changeset
|
4845 | if (!(g = gaim_find_group(gname_utf8 ? gname_utf8 : _("Orphans")))) { |
| 4687 | 4846 | g = gaim_group_new(gname_utf8 ? gname_utf8 : _("Orphans")); |
|
4754
216cd548ad68
[gaim-migrate @ 5071]
Mark Doliner <markdoliner@pidgin.im>
parents:
4744
diff
changeset
|
4847 | gaim_blist_add_group(g, NULL); |
|
216cd548ad68
[gaim-migrate @ 5071]
Mark Doliner <markdoliner@pidgin.im>
parents:
4744
diff
changeset
|
4848 | } |
|
5146
56b1615ba288
[gaim-migrate @ 5510]
Mark Doliner <markdoliner@pidgin.im>
parents:
5136
diff
changeset
|
4849 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4850 | gaim_debug_info("oscar", |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
4851 | "ssi: adding buddy %s to group %s to local list\n", curitem->name, gname_utf8 ? gname_utf8 : _("Orphans")); |
|
8150
1b48c11a456e
[gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents:
8143
diff
changeset
|
4852 | gaim_blist_add_buddy(b, NULL, g, NULL); |
|
4251
7d62db57d86a
[gaim-migrate @ 4501]
Mark Doliner <markdoliner@pidgin.im>
parents:
4249
diff
changeset
|
4853 | } |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
4854 | if (!aim_sncmp(curitem->name, account->username)) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4855 | char *comment = aim_ssi_getcomment(od->ssi.local, gname, curitem->name); |
|
14614
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
4856 | if (comment != NULL) |
|
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
4857 | { |
|
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
4858 | gaim_check_comment(od, comment); |
|
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
4859 | g_free(comment); |
|
3ed1753cc08a
[gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents:
14604
diff
changeset
|
4860 | } |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
4861 | } |
| 7162 | 4862 | g_free(gname_utf8); |
| 4863 | g_free(alias_utf8); | |
| 2991 | 4864 | } |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4865 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4866 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4867 | case 0x0001: { /* Group */ |
|
4282
93cc9fb8e29f
[gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents:
4276
diff
changeset
|
4868 | /* Shouldn't add empty groups */ |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4869 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4870 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4871 | case 0x0002: { /* Permit buddy */ |
| 2991 | 4872 | if (curitem->name) { |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4873 | /* if (!find_permdeny_by_name(gc->permit, curitem->name)) { AAA */ |
| 2991 | 4874 | GSList *list; |
| 5575 | 4875 | for (list=account->permit; (list && aim_sncmp(curitem->name, list->data)); list=list->next); |
| 2991 | 4876 | if (!list) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4877 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4878 | "ssi: adding permit buddy %s to local list\n", curitem->name); |
|
6400
fc73d6446a5b
[gaim-migrate @ 6905]
Christian Hammond <chipx86@chipx86.com>
parents:
6378
diff
changeset
|
4879 | gaim_privacy_permit_add(account, curitem->name, TRUE); |
| 2991 | 4880 | } |
| 4881 | } | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4882 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4883 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4884 | case 0x0003: { /* Deny buddy */ |
| 2991 | 4885 | if (curitem->name) { |
| 4886 | GSList *list; | |
| 5575 | 4887 | for (list=account->deny; (list && aim_sncmp(curitem->name, list->data)); list=list->next); |
| 2991 | 4888 | if (!list) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4889 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4890 | "ssi: adding deny buddy %s to local list\n", curitem->name); |
|
6400
fc73d6446a5b
[gaim-migrate @ 6905]
Christian Hammond <chipx86@chipx86.com>
parents:
6378
diff
changeset
|
4891 | gaim_privacy_deny_add(account, curitem->name, TRUE); |
| 2991 | 4892 | } |
| 4893 | } | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4894 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4895 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4896 | case 0x0004: { /* Permit/deny setting */ |
| 2991 | 4897 | if (curitem->data) { |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4898 | guint8 permdeny; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4899 | if ((permdeny = aim_ssi_getpermdeny(od->ssi.local)) && (permdeny != account->perm_deny)) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4900 | gaim_debug_info("oscar", |
| 5575 | 4901 | "ssi: changing permdeny from %d to %hhu\n", account->perm_deny, permdeny); |
| 4902 | account->perm_deny = permdeny; | |
|
11766
1a2e988316e9
[gaim-migrate @ 14057]
Mark Doliner <markdoliner@pidgin.im>
parents:
11718
diff
changeset
|
4903 | if (od->icq && account->perm_deny == GAIM_PRIVACY_ALLOW_USERS) { |
|
1a2e988316e9
[gaim-migrate @ 14057]
Mark Doliner <markdoliner@pidgin.im>
parents:
11718
diff
changeset
|
4904 | gaim_presence_set_status_active(account->presence, OSCAR_STATUS_ID_INVISIBLE, TRUE); |
| 4342 | 4905 | } |
| 2991 | 4906 | } |
| 4907 | } | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4908 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4909 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4910 | case 0x0005: { /* Presence setting */ |
|
3109
c193eb9c1c30
[gaim-migrate @ 3123]
Mark Doliner <markdoliner@pidgin.im>
parents:
3106
diff
changeset
|
4911 | /* We don't want to change Gaim's setting because it applies to all accounts */ |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4912 | } break; |
| 2991 | 4913 | } /* End of switch on curitem->type */ |
| 4914 | } /* End of for loop */ | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4915 | |
|
11965
0b8d4950b68a
[gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
4916 | oscar_set_extendedstatus(gc); |
|
4901
8a9aebd9897f
[gaim-migrate @ 5235]
Mark Doliner <markdoliner@pidgin.im>
parents:
4898
diff
changeset
|
4917 | |
| 4342 | 4918 | /* Activate SSI */ |
| 4919 | /* Sending the enable causes other people to be able to see you, and you to see them */ | |
| 4920 | /* Make sure your privacy setting/invisibility is set how you want it before this! */ | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4921 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4922 | "ssi: activating server-stored buddy list\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4923 | aim_ssi_enable(od); |
| 4342 | 4924 | |
| 2991 | 4925 | return 1; |
| 2086 | 4926 | } |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4927 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4928 | static int gaim_ssi_parseack(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4929 | GaimConnection *gc = od->gc; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4930 | va_list ap; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4931 | struct aim_ssi_tmp *retval; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4932 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4933 | va_start(ap, fr); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4934 | retval = va_arg(ap, struct aim_ssi_tmp *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4935 | va_end(ap); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4936 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4937 | while (retval) { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4938 | gaim_debug_misc("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
4939 | "ssi: status is 0x%04hx for a 0x%04hx action with name %s\n", retval->ack, retval->action, retval->item ? (retval->item->name ? retval->item->name : "no name") : "no item"); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4940 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4941 | if (retval->ack != 0xffff) |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4942 | switch (retval->ack) { |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4943 | case 0x0000: { /* added successfully */ |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4944 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4945 | |
|
4829
9dd8fea5795e
[gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents:
4828
diff
changeset
|
4946 | case 0x000c: { /* you are over the limit, the cheat is to the limit, come on fhqwhgads */ |
|
9dd8fea5795e
[gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents:
4828
diff
changeset
|
4947 | gchar *buf; |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
4948 | buf = g_strdup_printf(_("Could not add the buddy %s because you have too many buddies in your buddy list. Please remove one and try again."), (retval->name ? retval->name : _("(no name)"))); |
|
9758
bad4efbbfbf5
[gaim-migrate @ 10625]
Mark Doliner <markdoliner@pidgin.im>
parents:
9754
diff
changeset
|
4949 | if ((retval->name != NULL) && !gaim_conv_present_error(retval->name, gaim_connection_get_account(gc), buf)) |
| 9627 | 4950 | gaim_notify_error(gc, NULL, _("Unable To Add"), buf); |
|
4829
9dd8fea5795e
[gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents:
4828
diff
changeset
|
4951 | g_free(buf); |
|
9dd8fea5795e
[gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents:
4828
diff
changeset
|
4952 | } |
|
9dd8fea5795e
[gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents:
4828
diff
changeset
|
4953 | |
| 7023 | 4954 | case 0x000e: { /* buddy requires authorization */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4955 | if ((retval->action == SNAC_SUBTYPE_FEEDBAG_ADD) && (retval->name)) |
|
4269
c716bd9eee3c
[gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents:
4251
diff
changeset
|
4956 | gaim_auth_sendrequest(gc, retval->name); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4957 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4958 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4959 | default: { /* La la la */ |
|
5197
ab4d919050d7
[gaim-migrate @ 5563]
Mark Doliner <markdoliner@pidgin.im>
parents:
5167
diff
changeset
|
4960 | gchar *buf; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
4961 | gaim_debug_error("oscar", "ssi: Action 0x%04hx was unsuccessful with error 0x%04hx\n", retval->action, retval->ack); |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
4962 | buf = g_strdup_printf(_("Could not add the buddy %s for an unknown reason. The most common reason for this is that you have the maximum number of allowed buddies in your buddy list."), (retval->name ? retval->name : _("(no name)"))); |
|
9758
bad4efbbfbf5
[gaim-migrate @ 10625]
Mark Doliner <markdoliner@pidgin.im>
parents:
9754
diff
changeset
|
4963 | if ((retval->name != NULL) && !gaim_conv_present_error(retval->name, gaim_connection_get_account(gc), buf)) |
| 9627 | 4964 | gaim_notify_error(gc, NULL, _("Unable To Add"), buf); |
|
5197
ab4d919050d7
[gaim-migrate @ 5563]
Mark Doliner <markdoliner@pidgin.im>
parents:
5167
diff
changeset
|
4965 | g_free(buf); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4966 | } break; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4967 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4968 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4969 | retval = retval->next; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4970 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4971 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4972 | return 1; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4973 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
4974 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4975 | static int gaim_ssi_parseadd(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4976 | GaimConnection *gc = od->gc; |
|
8227
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4977 | char *gname, *gname_utf8, *alias, *alias_utf8; |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4978 | GaimBuddy *b; |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4979 | GaimGroup *g; |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4980 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4981 | guint16 type; |
|
8227
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4982 | const char *name; |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4983 | |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4984 | va_start(ap, fr); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
4985 | type = (guint16)va_arg(ap, int); |
|
8227
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4986 | name = va_arg(ap, char *); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4987 | va_end(ap); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4988 | |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4989 | if ((type != 0x0000) || (name == NULL)) |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4990 | return 1; |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
4991 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4992 | gname = aim_ssi_itemlist_findparentname(od->ssi.local, name); |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
4993 | gname_utf8 = gname ? oscar_utf8_try_convert(gc->account, gname) : NULL; |
|
14088
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4994 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
4995 | alias = aim_ssi_getalias(od->ssi.local, gname, name); |
|
14088
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4996 | if (alias != NULL) |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4997 | { |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4998 | if (g_utf8_validate(alias, -1, NULL)) |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
4999 | alias_utf8 = g_strdup(alias); |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
5000 | else |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
5001 | alias_utf8 = oscar_utf8_try_convert(gaim_connection_get_account(gc), alias); |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
5002 | } |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
5003 | else |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
5004 | alias_utf8 = NULL; |
|
877eda665ce4
[gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents:
14030
diff
changeset
|
5005 | |
|
8227
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5006 | b = gaim_find_buddy(gc->account, name); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5007 | g_free(alias); |
|
8227
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5008 | |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5009 | if (b) { |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5010 | /* Get server stored alias */ |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5011 | if (alias_utf8) { |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5012 | g_free(b->alias); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5013 | b->alias = g_strdup(alias_utf8); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5014 | } |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5015 | } else { |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5016 | b = gaim_buddy_new(gc->account, name, alias_utf8); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5017 | |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5018 | if (!(g = gaim_find_group(gname_utf8 ? gname_utf8 : _("Orphans")))) { |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5019 | g = gaim_group_new(gname_utf8 ? gname_utf8 : _("Orphans")); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5020 | gaim_blist_add_group(g, NULL); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5021 | } |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5022 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5023 | gaim_debug_info("oscar", |
|
9285
9cedf5d26577
[gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents:
9244
diff
changeset
|
5024 | "ssi: adding buddy %s to group %s to local list\n", name, gname_utf8 ? gname_utf8 : _("Orphans")); |
|
8227
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5025 | gaim_blist_add_buddy(b, NULL, g, NULL); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5026 | } |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5027 | g_free(gname_utf8); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5028 | g_free(alias_utf8); |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5029 | |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5030 | return 1; |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5031 | } |
|
07e453e04577
[gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents:
8225
diff
changeset
|
5032 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5033 | static int gaim_ssi_authgiven(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5034 | GaimConnection *gc = od->gc; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5035 | va_list ap; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5036 | char *sn, *msg; |
| 4236 | 5037 | gchar *dialog_msg, *nombre; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5038 | struct name_data *data; |
| 6695 | 5039 | GaimBuddy *buddy; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5040 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5041 | va_start(ap, fr); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5042 | sn = va_arg(ap, char *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5043 | msg = va_arg(ap, char *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5044 | va_end(ap); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5045 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5046 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
5047 | "ssi: %s has given you permission to add him to your buddy list\n", sn); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5048 | |
| 4687 | 5049 | buddy = gaim_find_buddy(gc->account, sn); |
|
9620
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
5050 | if (buddy && (gaim_buddy_get_alias_only(buddy))) |
|
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
5051 | nombre = g_strdup_printf("%s (%s)", sn, gaim_buddy_get_alias_only(buddy)); |
| 4236 | 5052 | else |
| 5053 | nombre = g_strdup(sn); | |
| 5054 | ||
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
5055 | dialog_msg = g_strdup_printf(_("The user %s has given you permission to add you to their buddy list. Do you want to add them?"), nombre); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5056 | data = g_new(struct name_data, 1); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5057 | data->gc = gc; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5058 | data->name = g_strdup(sn); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5059 | data->nick = NULL; |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5497
diff
changeset
|
5060 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5497
diff
changeset
|
5061 | gaim_request_yes_no(gc, NULL, _("Authorization Given"), dialog_msg, |
|
10116
054b064145a1
[gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10111
diff
changeset
|
5062 | GAIM_DEFAULT_ACTION_NONE, data, |
| 7023 | 5063 | G_CALLBACK(gaim_icq_buddyadd), |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
5064 | G_CALLBACK(oscar_free_name_data)); |
| 4236 | 5065 | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5066 | g_free(dialog_msg); |
| 4236 | 5067 | g_free(nombre); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5068 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5069 | return 1; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5070 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5071 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5072 | static int gaim_ssi_authrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5073 | GaimConnection *gc = od->gc; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5074 | va_list ap; |
|
11102
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5075 | char *sn; |
|
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5076 | char *msg; |
|
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5077 | GaimAccount *account = gaim_connection_get_account(gc); |
|
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5078 | gchar *nombre; |
|
11567
14ffd9c34829
[gaim-migrate @ 13834]
Daniel Atallah <datallah@pidgin.im>
parents:
11537
diff
changeset
|
5079 | gchar *reason = NULL; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5080 | struct name_data *data; |
| 6695 | 5081 | GaimBuddy *buddy; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5082 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5083 | va_start(ap, fr); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5084 | sn = va_arg(ap, char *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5085 | msg = va_arg(ap, char *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5086 | va_end(ap); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5087 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5088 | gaim_debug_info("oscar", |
|
5219
49255563aa61
[gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
5089 | "ssi: received authorization request from %s\n", sn); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5090 | |
|
11102
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5091 | buddy = gaim_find_buddy(account, sn); |
|
9620
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
5092 | if (buddy && (gaim_buddy_get_alias_only(buddy))) |
|
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
5093 | nombre = g_strdup_printf("%s (%s)", sn, gaim_buddy_get_alias_only(buddy)); |
| 4236 | 5094 | else |
| 5095 | nombre = g_strdup(sn); | |
| 5096 | ||
|
11102
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5097 | if (msg != NULL) |
|
8f750ca03455
[gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents:
11084
diff
changeset
|
5098 | reason = gaim_plugin_oscar_decode_im_part(account, sn, AIM_CHARSET_CUSTOM, 0x0000, msg, strlen(msg)); |
|
11567
14ffd9c34829
[gaim-migrate @ 13834]
Daniel Atallah <datallah@pidgin.im>
parents:
11537
diff
changeset
|
5099 | |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5100 | data = g_new(struct name_data, 1); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5101 | data->gc = gc; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5102 | data->name = g_strdup(sn); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5103 | data->nick = NULL; |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5497
diff
changeset
|
5104 | |
|
15204
6775ac53169c
[gaim-migrate @ 17928]
Mark Doliner <markdoliner@pidgin.im>
parents:
15197
diff
changeset
|
5105 | gaim_account_request_authorization(account, nombre, NULL, NULL, |
|
6775ac53169c
[gaim-migrate @ 17928]
Mark Doliner <markdoliner@pidgin.im>
parents:
15197
diff
changeset
|
5106 | reason, buddy != NULL, G_CALLBACK(gaim_auth_grant), |
|
15142
32b4b0750b6c
[gaim-migrate @ 17866]
Mark Doliner <markdoliner@pidgin.im>
parents:
15139
diff
changeset
|
5107 | G_CALLBACK(gaim_auth_dontgrant_msgprompt), data); |
| 4236 | 5108 | g_free(nombre); |
| 15119 | 5109 | g_free(reason); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5110 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5111 | return 1; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5112 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5113 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5114 | static int gaim_ssi_authreply(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5115 | GaimConnection *gc = od->gc; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5116 | va_list ap; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5117 | char *sn, *msg; |
| 4236 | 5118 | gchar *dialog_msg, *nombre; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
5119 | guint8 reply; |
| 6695 | 5120 | GaimBuddy *buddy; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5121 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5122 | va_start(ap, fr); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5123 | sn = va_arg(ap, char *); |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
5124 | reply = (guint8)va_arg(ap, int); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5125 | msg = va_arg(ap, char *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5126 | va_end(ap); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5127 | |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5128 | gaim_debug_info("oscar", |
|
10816
ba2657f4c157
[gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents:
10812
diff
changeset
|
5129 | "ssi: received authorization reply from %s. Reply is 0x%04hhx\n", sn, reply); |
| 4236 | 5130 | |
| 4687 | 5131 | buddy = gaim_find_buddy(gc->account, sn); |
|
9620
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
5132 | if (buddy && (gaim_buddy_get_alias_only(buddy))) |
|
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
5133 | nombre = g_strdup_printf("%s (%s)", sn, gaim_buddy_get_alias_only(buddy)); |
| 4236 | 5134 | else |
| 5135 | nombre = g_strdup(sn); | |
| 5136 | ||
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5137 | if (reply) { |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5138 | /* Granted */ |
| 7023 | 5139 | dialog_msg = g_strdup_printf(_("The user %s has granted your request to add them to your buddy list."), nombre); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
5140 | gaim_notify_info(gc, NULL, _("Authorization Granted"), dialog_msg); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5141 | } else { |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5142 | /* Denied */ |
| 7023 | 5143 | dialog_msg = g_strdup_printf(_("The user %s has denied your request to add them to your buddy list for the following reason:\n%s"), nombre, msg ? msg : _("No reason given.")); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
5144 | gaim_notify_info(gc, NULL, _("Authorization Denied"), dialog_msg); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5145 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5146 | g_free(dialog_msg); |
| 4236 | 5147 | g_free(nombre); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5148 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5149 | return 1; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5150 | } |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5151 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5152 | static int gaim_ssi_gotadded(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5153 | GaimConnection *gc = od->gc; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5154 | va_list ap; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5155 | char *sn; |
| 6695 | 5156 | GaimBuddy *buddy; |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5157 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5158 | va_start(ap, fr); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5159 | sn = va_arg(ap, char *); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5160 | va_end(ap); |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5161 | |
| 4687 | 5162 | buddy = gaim_find_buddy(gc->account, sn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5163 | gaim_debug_info("oscar", "ssi: %s added you to their buddy list\n", sn); |
|
13751
23e348cf5a99
[gaim-migrate @ 16160]
Mark Doliner <markdoliner@pidgin.im>
parents:
13734
diff
changeset
|
5164 | gaim_account_notify_added(gc->account, sn, NULL, (buddy ? gaim_buddy_get_alias_only(buddy) : NULL), NULL); |
|
4230
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5165 | |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5166 | return 1; |
|
b5393db78439
[gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents:
4212
diff
changeset
|
5167 | } |
| 2086 | 5168 | |
| 15030 | 5169 | GList *oscar_chat_info(GaimConnection *gc) { |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5170 | GList *m = NULL; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5171 | struct proto_chat_entry *pce; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5172 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5173 | pce = g_new0(struct proto_chat_entry, 1); |
|
9770
d61fe8dcb6d9
[gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9758
diff
changeset
|
5174 | pce->label = _("_Room:"); |
| 5234 | 5175 | pce->identifier = "room"; |
|
10475
1b7fe16233f3
[gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents:
10472
diff
changeset
|
5176 | pce->required = TRUE; |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5177 | m = g_list_append(m, pce); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5178 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5179 | pce = g_new0(struct proto_chat_entry, 1); |
|
7841
0000a4c68bf8
[gaim-migrate @ 8494]
Mark Doliner <markdoliner@pidgin.im>
parents:
7805
diff
changeset
|
5180 | pce->label = _("_Exchange:"); |
| 5234 | 5181 | pce->identifier = "exchange"; |
|
10475
1b7fe16233f3
[gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents:
10472
diff
changeset
|
5182 | pce->required = TRUE; |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5183 | pce->is_int = TRUE; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5184 | pce->min = 4; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5185 | pce->max = 20; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5186 | m = g_list_append(m, pce); |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5187 | |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5188 | return m; |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5189 | } |
|
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5190 | |
| 15030 | 5191 | GHashTable *oscar_chat_info_defaults(GaimConnection *gc, const char *chat_name) |
|
9754
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5192 | { |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5193 | GHashTable *defaults; |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5194 | |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5195 | defaults = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free); |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5196 | |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5197 | if (chat_name != NULL) |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5198 | g_hash_table_insert(defaults, "room", g_strdup(chat_name)); |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5199 | |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5200 | return defaults; |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5201 | } |
|
3a17eee239b2
[gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents:
9753
diff
changeset
|
5202 | |
| 15030 | 5203 | char * |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5204 | oscar_get_chat_name(GHashTable *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5205 | { |
|
9917
2fbb3c9fab2b
[gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents:
9914
diff
changeset
|
5206 | return g_strdup(g_hash_table_lookup(data, "room")); |
|
2fbb3c9fab2b
[gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents:
9914
diff
changeset
|
5207 | } |
|
2fbb3c9fab2b
[gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents:
9914
diff
changeset
|
5208 | |
| 15030 | 5209 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5210 | oscar_join_chat(GaimConnection *gc, GHashTable *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5211 | { |
|
8308
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5212 | OscarData *od = (OscarData *)gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5213 | FlapConnection *conn; |
| 5234 | 5214 | char *name, *exchange; |
| 5215 | ||
| 5216 | name = g_hash_table_lookup(data, "room"); | |
| 5217 | exchange = g_hash_table_lookup(data, "exchange"); | |
|
2205
68c42ce8eba6
[gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2197
diff
changeset
|
5218 | |
|
8308
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5219 | if ((name == NULL) || (*name == '\0')) { |
|
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5220 | gaim_notify_error(gc, NULL, _("Invalid chat name specified."), NULL); |
|
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5221 | return; |
|
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5222 | } |
|
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5223 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5224 | gaim_debug_info("oscar", "Attempting to join chat room %s.\n", name); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5225 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5226 | if ((conn = flap_connection_getbytype(od, SNAC_FAMILY_CHATNAV))) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5227 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5228 | gaim_debug_info("oscar", "chatnav exists, creating room\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5229 | aim_chatnav_createroom(od, conn, name, atoi(exchange)); |
| 2086 | 5230 | } else { |
| 5231 | /* this gets tricky */ | |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
5232 | struct create_room *cr = g_new0(struct create_room, 1); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5233 | gaim_debug_info("oscar", "chatnav does not exist, opening chatnav\n"); |
| 5234 | 5234 | cr->exchange = atoi(exchange); |
|
2822
a1ddcd96da44
[gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2821
diff
changeset
|
5235 | cr->name = g_strdup(name); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5236 | od->create_rooms = g_slist_prepend(od->create_rooms, cr); |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
5237 | aim_srv_requestnew(od, SNAC_FAMILY_CHATNAV); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5238 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5239 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5240 | |
| 15030 | 5241 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5242 | oscar_chat_invite(GaimConnection *gc, int id, const char *message, const char *name) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5243 | { |
|
8308
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5244 | OscarData *od = (OscarData *)gc->proto_data; |
|
88f1dc8588a8
[gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents:
8287
diff
changeset
|
5245 | struct chat_connection *ccon = find_oscar_chat(gc, id); |
|
10404
9d66d897e96d
[gaim-migrate @ 11649]
Mark Doliner <markdoliner@pidgin.im>
parents:
10401
diff
changeset
|
5246 | |
|
9d66d897e96d
[gaim-migrate @ 11649]
Mark Doliner <markdoliner@pidgin.im>
parents:
10401
diff
changeset
|
5247 | if (ccon == NULL) |
| 2086 | 5248 | return; |
|
10404
9d66d897e96d
[gaim-migrate @ 11649]
Mark Doliner <markdoliner@pidgin.im>
parents:
10401
diff
changeset
|
5249 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5250 | aim_im_sendch2_chatinvite(od, name, message ? message : "", |
| 2086 | 5251 | ccon->exchange, ccon->name, 0x0); |
| 5252 | } | |
| 5253 | ||
| 15030 | 5254 | void |
|
10458
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5255 | oscar_chat_leave(GaimConnection *gc, int id) |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5256 | { |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5257 | GaimConversation *conv; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5258 | struct chat_connection *cc; |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5259 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5260 | conv = gaim_find_chat(gc, id); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5261 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5262 | g_return_if_fail(conv != NULL); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5263 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5264 | gaim_debug_info("oscar", "Leaving chat room %s\n", conv->name); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5265 | |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5266 | cc = find_oscar_chat(gc, gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv))); |
|
76fb2df916af
[gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents:
10444
diff
changeset
|
5267 | oscar_chat_kill(gc, cc); |
| 2086 | 5268 | } |
| 5269 | ||
| 15030 | 5270 | int oscar_send_chat(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags) { |
| 8219 | 5271 | OscarData *od = (OscarData *)gc->proto_data; |
| 5272 | GaimConversation *conv = NULL; | |
| 2086 | 5273 | struct chat_connection *c = NULL; |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
5274 | char *buf, *buf2; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
5275 | guint16 charset, charsubset; |
|
9807
ff713acc7204
[gaim-migrate @ 10675]
Mark Doliner <markdoliner@pidgin.im>
parents:
9806
diff
changeset
|
5276 | char *charsetstr = NULL; |
| 10111 | 5277 | int len; |
| 8219 | 5278 | |
| 5279 | if (!(conv = gaim_find_chat(gc, id))) | |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
5280 | return -EINVAL; |
| 2086 | 5281 | |
| 8219 | 5282 | if (!(c = find_oscar_chat_by_conv(gc, conv))) |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
5283 | return -EINVAL; |
| 2086 | 5284 | |
| 8219 | 5285 | buf = gaim_strdup_withhtml(message); |
| 5286 | len = strlen(buf); | |
| 5287 | ||
| 8962 | 5288 | if (strstr(buf, "<IMG ")) |
| 5289 | gaim_conversation_write(conv, "", | |
|
13227
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
5290 | _("Your IM Image was not sent. " |
|
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
5291 | "You cannot send IM Images in AIM chats."), |
|
f011e198f246
[gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents:
13201
diff
changeset
|
5292 | GAIM_MESSAGE_ERROR, time(NULL)); |
| 8962 | 5293 | |
|
9830
a4c47fa6b462
[gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents:
9826
diff
changeset
|
5294 | gaim_plugin_oscar_convert_to_best_encoding(gc, NULL, buf, &buf2, &len, &charset, &charsubset); |
|
13697
9c6e76398a20
[gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents:
13674
diff
changeset
|
5295 | /* |
|
9c6e76398a20
[gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents:
13674
diff
changeset
|
5296 | * Evan S. suggested that maxvis really does mean "number of |
|
9c6e76398a20
[gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents:
13674
diff
changeset
|
5297 | * visible characters" and not "number of bytes" |
|
9c6e76398a20
[gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents:
13674
diff
changeset
|
5298 | */ |
|
8359
3c62ea91eba8
[gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents:
8353
diff
changeset
|
5299 | if ((len > c->maxlen) || (len > c->maxvis)) { |
|
3c62ea91eba8
[gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents:
8353
diff
changeset
|
5300 | g_free(buf2); |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
5301 | return -E2BIG; |
|
8359
3c62ea91eba8
[gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents:
8353
diff
changeset
|
5302 | } |
|
3c62ea91eba8
[gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents:
8353
diff
changeset
|
5303 | |
|
9831
dfebe1c6bffe
[gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents:
9830
diff
changeset
|
5304 | if (charset == AIM_CHARSET_ASCII) |
|
dfebe1c6bffe
[gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents:
9830
diff
changeset
|
5305 | charsetstr = "us-ascii"; |
|
dfebe1c6bffe
[gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents:
9830
diff
changeset
|
5306 | else if (charset == AIM_CHARSET_UNICODE) |
|
dfebe1c6bffe
[gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents:
9830
diff
changeset
|
5307 | charsetstr = "unicode-2-0"; |
|
dfebe1c6bffe
[gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents:
9830
diff
changeset
|
5308 | else if (charset == AIM_CHARSET_CUSTOM) |
|
dfebe1c6bffe
[gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents:
9830
diff
changeset
|
5309 | charsetstr = "iso-8859-1"; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5310 | aim_chat_send_im(od, c->conn, 0, buf2, len, charsetstr, "en"); |
| 8219 | 5311 | g_free(buf2); |
|
8359
3c62ea91eba8
[gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents:
8353
diff
changeset
|
5312 | |
|
2167
cbb558585911
[gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2162
diff
changeset
|
5313 | return 0; |
| 2086 | 5314 | } |
| 5315 | ||
| 15030 | 5316 | const char *oscar_list_icon_icq(GaimAccount *a, GaimBuddy *b) |
| 5317 | { | |
| 5318 | if ((b == NULL) || (b->name == NULL) || aim_sn_is_sms(b->name)) | |
| 5319 | { | |
| 5320 | if (a == NULL || aim_sn_is_icq(gaim_account_get_username(a))) | |
| 5321 | return "icq"; | |
| 5322 | else | |
| 5323 | return "aim"; | |
| 5324 | } | |
| 5325 | ||
| 5326 | if (aim_sn_is_icq(b->name)) | |
| 5327 | return "icq"; | |
| 5328 | return "aim"; | |
| 5329 | } | |
| 5330 | ||
| 5331 | const char *oscar_list_icon_aim(GaimAccount *a, GaimBuddy *b) | |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5332 | { |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
5333 | if ((b == NULL) || (b->name == NULL) || aim_sn_is_sms(b->name)) |
|
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
5334 | { |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
5335 | if (a != NULL && aim_sn_is_icq(gaim_account_get_username(a))) |
| 4687 | 5336 | return "icq"; |
| 5337 | else | |
| 5338 | return "aim"; | |
| 5339 | } | |
|
5646
0aa637549d87
[gaim-migrate @ 6060]
Christian Hammond <chipx86@chipx86.com>
parents:
5638
diff
changeset
|
5340 | |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
5341 | if (aim_sn_is_icq(b->name)) |
| 4687 | 5342 | return "icq"; |
| 5343 | return "aim"; | |
| 5344 | } | |
| 5345 | ||
| 15030 | 5346 | void oscar_list_emblems(GaimBuddy *b, const char **se, const char **sw, const char **nw, const char **ne) |
| 4687 | 5347 | { |
|
7334
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5348 | GaimConnection *gc = NULL; |
|
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5349 | OscarData *od = NULL; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5350 | GaimAccount *account = NULL; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5351 | GaimPresence *presence; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5352 | GaimStatus *status; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5353 | const char *status_id; |
| 4687 | 5354 | char *emblems[4] = {NULL,NULL,NULL,NULL}; |
| 5355 | int i = 0; | |
|
7334
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5356 | aim_userinfo_t *userinfo = NULL; |
|
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5357 | |
|
13655
b8dda7d78514
[gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents:
13641
diff
changeset
|
5358 | account = b->account; |
|
7334
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5359 | if (account != NULL) |
|
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5360 | gc = account->gc; |
|
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5361 | if (gc != NULL) |
|
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5362 | od = gc->proto_data; |
|
7945
7270cd25f841
[gaim-migrate @ 8619]
Mark Doliner <markdoliner@pidgin.im>
parents:
7880
diff
changeset
|
5363 | if (od != NULL) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5364 | userinfo = aim_locate_finduserinfo(od, b->name); |
| 4687 | 5365 | |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5366 | presence = gaim_buddy_get_presence(b); |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5367 | status = gaim_presence_get_active_status(presence); |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5368 | status_id = gaim_status_get_id(status); |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5369 | |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5370 | if (gaim_presence_is_online(presence) == FALSE) { |
|
5131
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5371 | char *gname; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5372 | if ((b->name) && (od) && (od->ssi.received_data) && |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5373 | (gname = aim_ssi_itemlist_findparentname(od->ssi.local, b->name)) && |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5374 | (aim_ssi_waitingforauth(od->ssi.local, gname, b->name))) { |
|
5131
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5375 | emblems[i++] = "notauthorized"; |
|
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5376 | } else { |
|
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5377 | emblems[i++] = "offline"; |
|
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5378 | } |
|
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5379 | } |
| 4916 | 5380 | |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5381 | if (b->name && aim_sn_is_icq(b->name)) { |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5382 | if (!strcmp(status_id, OSCAR_STATUS_ID_INVISIBLE)) |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5383 | emblems[i++] = "invisible"; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5384 | else if (!strcmp(status_id, OSCAR_STATUS_ID_FREE4CHAT)) |
|
4960
65bf67b7600f
[gaim-migrate @ 5294]
Mark Doliner <markdoliner@pidgin.im>
parents:
4959
diff
changeset
|
5385 | emblems[i++] = "freeforchat"; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5386 | else if (!strcmp(status_id, OSCAR_STATUS_ID_DND)) |
|
4960
65bf67b7600f
[gaim-migrate @ 5294]
Mark Doliner <markdoliner@pidgin.im>
parents:
4959
diff
changeset
|
5387 | emblems[i++] = "dnd"; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5388 | else if (!strcmp(status_id, OSCAR_STATUS_ID_NA)) |
|
12595
8108c22aa723
[gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents:
12588
diff
changeset
|
5389 | emblems[i++] = "unavailable"; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5390 | else if (!strcmp(status_id, OSCAR_STATUS_ID_OCCUPIED)) |
|
4960
65bf67b7600f
[gaim-migrate @ 5294]
Mark Doliner <markdoliner@pidgin.im>
parents:
4959
diff
changeset
|
5391 | emblems[i++] = "occupied"; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5392 | else if (!strcmp(status_id, OSCAR_STATUS_ID_AWAY)) |
|
4766
4fa5a774d200
[gaim-migrate @ 5084]
Mark Doliner <markdoliner@pidgin.im>
parents:
4763
diff
changeset
|
5393 | emblems[i++] = "away"; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5394 | } else if (!strcmp(status_id, OSCAR_STATUS_ID_AWAY)) { |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5395 | emblems[i++] = "away"; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5396 | } |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5397 | |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5398 | if (userinfo != NULL ) { |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5399 | /* if (userinfo->flags & AIM_FLAG_UNCONFIRMED) |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5400 | emblems[i++] = "unconfirmed"; */ |
|
11873
943281cbde02
[gaim-migrate @ 14164]
Casey Harkins <charkins@pidgin.im>
parents:
11837
diff
changeset
|
5401 | if ((i < 4) && userinfo->flags & AIM_FLAG_ADMINISTRATOR) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5402 | emblems[i++] = "admin"; |
|
11873
943281cbde02
[gaim-migrate @ 14164]
Casey Harkins <charkins@pidgin.im>
parents:
11837
diff
changeset
|
5403 | if ((i < 4) && userinfo->flags & AIM_FLAG_AOL) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5404 | emblems[i++] = "aol"; |
|
11873
943281cbde02
[gaim-migrate @ 14164]
Casey Harkins <charkins@pidgin.im>
parents:
11837
diff
changeset
|
5405 | if ((i < 4) && userinfo->flags & AIM_FLAG_WIRELESS) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5406 | emblems[i++] = "wireless"; |
|
11873
943281cbde02
[gaim-migrate @ 14164]
Casey Harkins <charkins@pidgin.im>
parents:
11837
diff
changeset
|
5407 | if ((i < 4) && userinfo->flags & AIM_FLAG_ACTIVEBUDDY) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5408 | emblems[i++] = "activebuddy"; |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5409 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5410 | if ((i < 4) && (userinfo->capabilities & OSCAR_CAPABILITY_HIPTOP)) |
|
7945
7270cd25f841
[gaim-migrate @ 8619]
Mark Doliner <markdoliner@pidgin.im>
parents:
7880
diff
changeset
|
5411 | emblems[i++] = "hiptop"; |
|
7270cd25f841
[gaim-migrate @ 8619]
Mark Doliner <markdoliner@pidgin.im>
parents:
7880
diff
changeset
|
5412 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5413 | if ((i < 4) && (userinfo->capabilities & OSCAR_CAPABILITY_SECUREIM)) |
|
7334
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5414 | emblems[i++] = "secure"; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5415 | } |
|
7334
4d1a7f313b70
[gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents:
7328
diff
changeset
|
5416 | |
| 4687 | 5417 | *se = emblems[0]; |
| 5418 | *sw = emblems[1]; | |
| 5419 | *nw = emblems[2]; | |
| 5420 | *ne = emblems[3]; | |
| 5421 | } | |
| 5422 | ||
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
5423 | void oscar_tooltip_text(GaimBuddy *b, GaimNotifyUserInfo *user_info, gboolean full) { |
| 5575 | 5424 | GaimConnection *gc = b->account->gc; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5425 | OscarData *od = gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5426 | aim_userinfo_t *userinfo = aim_locate_finduserinfo(od, b->name); |
|
5131
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5427 | |
|
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5428 | if (GAIM_BUDDY_IS_ONLINE(b)) { |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5429 | GaimPresence *presence; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5430 | GaimStatus *status; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5431 | const char *message; |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5432 | |
|
12948
0867a553ed26
[gaim-migrate @ 15301]
Richard Laager <rlaager@pidgin.im>
parents:
12946
diff
changeset
|
5433 | if (full) |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
5434 | oscar_string_append_info(gc, user_info, b, userinfo); |
|
7011
00f405d9922b
[gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents:
6982
diff
changeset
|
5435 | |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5436 | presence = gaim_buddy_get_presence(b); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5437 | status = gaim_presence_get_active_status(presence); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5438 | message = gaim_status_get_attr_string(status, "message"); |
|
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5439 | |
|
12433
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5440 | if (gaim_status_is_available(status)) |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5441 | { |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5442 | if (message != NULL) |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5443 | { |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5444 | /* Available status messages are plain text */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5445 | gchar *tmp; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5446 | tmp = g_markup_escape_text(message, -1); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
5447 | gaim_notify_user_info_add_pair(user_info, _("Message"), tmp); |
|
13452
1aeb81a13082
[gaim-migrate @ 15826]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
13382
diff
changeset
|
5448 | g_free(tmp); |
|
12433
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5449 | } |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5450 | } |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5451 | else |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5452 | { |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5453 | if (message != NULL) |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5454 | { |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5455 | /* Away messages are HTML */ |
|
7091
4430f44e86ad
[gaim-migrate @ 7656]
Mark Doliner <markdoliner@pidgin.im>
parents:
7083
diff
changeset
|
5456 | gchar *tmp1, *tmp2; |
|
12189
34cdc686d8cb
[gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents:
12143
diff
changeset
|
5457 | tmp2 = gaim_markup_strip_html(message); |
|
10732
5e314ab498bf
[gaim-migrate @ 12334]
Richard Laager <rlaager@pidgin.im>
parents:
10715
diff
changeset
|
5458 | tmp1 = g_markup_escape_text(tmp2, -1); |
|
7091
4430f44e86ad
[gaim-migrate @ 7656]
Mark Doliner <markdoliner@pidgin.im>
parents:
7083
diff
changeset
|
5459 | g_free(tmp2); |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
5460 | tmp2 = gaim_str_sub_away_formatters(tmp1, gaim_account_get_username(gaim_connection_get_account(gc))); |
|
8461
920171a59e45
[gaim-migrate @ 9191]
Mark Doliner <markdoliner@pidgin.im>
parents:
8446
diff
changeset
|
5461 | g_free(tmp1); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
5462 | gaim_notify_user_info_add_pair(user_info, _("Away Message"), tmp2); |
|
8700
0c9288c5e40e
[gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents:
8697
diff
changeset
|
5463 | g_free(tmp2); |
|
5836
88819e4cc840
[gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents:
5828
diff
changeset
|
5464 | } |
|
12433
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5465 | else |
|
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5466 | { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15204
diff
changeset
|
5467 | gaim_notify_user_info_add_pair(user_info, _("Away Message"), _("<i>(retrieving)</i>")); |
|
12433
d2ad67babd06
[gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents:
12430
diff
changeset
|
5468 | } |
|
5131
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5469 | } |
|
8701
333da120f414
[gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents:
8700
diff
changeset
|
5470 | } |
|
5131
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5471 | } |
|
ce6d77bc4102
[gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents:
5129
diff
changeset
|
5472 | |
| 15030 | 5473 | char *oscar_status_text(GaimBuddy *b) |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5474 | { |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5475 | GaimConnection *gc; |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5476 | GaimAccount *account; |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5477 | OscarData *od; |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5478 | const GaimPresence *presence; |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5479 | const GaimStatus *status; |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5480 | const char *id; |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5481 | const char *message; |
|
5167
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5482 | gchar *ret = NULL; |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5483 | |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5484 | gc = gaim_account_get_connection(gaim_buddy_get_account(b)); |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5485 | account = gaim_connection_get_account(gc); |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5486 | od = gc->proto_data; |
|
11248
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5487 | presence = gaim_buddy_get_presence(b); |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5488 | status = gaim_presence_get_active_status(presence); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5489 | id = gaim_status_get_id(status); |
|
11248
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5490 | |
|
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5491 | if (!gaim_presence_is_online(presence)) |
|
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5492 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5493 | char *gname = aim_ssi_itemlist_findparentname(od->ssi.local, b->name); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5494 | if (aim_ssi_waitingforauth(od->ssi.local, gname, b->name)) |
|
5167
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5495 | ret = g_strdup(_("Not Authorized")); |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5496 | else |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5497 | ret = g_strdup(_("Offline")); |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5498 | } |
|
12365
69cf8ac53d5a
[gaim-migrate @ 14669]
Mark Doliner <markdoliner@pidgin.im>
parents:
12361
diff
changeset
|
5499 | else if (gaim_status_is_available(status) && !strcmp(id, OSCAR_STATUS_ID_AVAILABLE)) |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5500 | { |
|
12365
69cf8ac53d5a
[gaim-migrate @ 14669]
Mark Doliner <markdoliner@pidgin.im>
parents:
12361
diff
changeset
|
5501 | /* Available */ |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5502 | message = gaim_status_get_attr_string(status, "message"); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5503 | if (message != NULL) |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5504 | { |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5505 | ret = g_markup_escape_text(message, -1); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5506 | gaim_util_chrreplace(ret, '\n', ' '); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5507 | } |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5508 | } |
|
12365
69cf8ac53d5a
[gaim-migrate @ 14669]
Mark Doliner <markdoliner@pidgin.im>
parents:
12361
diff
changeset
|
5509 | else if (!gaim_status_is_available(status) && !strcmp(id, OSCAR_STATUS_ID_AWAY)) |
|
11248
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5510 | { |
|
12365
69cf8ac53d5a
[gaim-migrate @ 14669]
Mark Doliner <markdoliner@pidgin.im>
parents:
12361
diff
changeset
|
5511 | /* Away */ |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5512 | message = gaim_status_get_attr_string(status, "message"); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5513 | if (message != NULL) |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5514 | { |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5515 | gchar *tmp1, *tmp2; |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5516 | tmp1 = gaim_markup_strip_html(message); |
|
12361
9d2adb3258a8
[gaim-migrate @ 14665]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12350
diff
changeset
|
5517 | gaim_util_chrreplace(tmp1, '\n', ' '); |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5518 | tmp2 = g_markup_escape_text(tmp1, -1); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5519 | ret = gaim_str_sub_away_formatters(tmp2, gaim_account_get_username(account)); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5520 | g_free(tmp1); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5521 | g_free(tmp2); |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5522 | } |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5523 | else |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5524 | { |
|
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5525 | ret = g_strdup(_("Away")); |
|
11510
8f618fb35bd3
[gaim-migrate @ 13755]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11495
diff
changeset
|
5526 | } |
|
11248
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5527 | } |
|
18bdab55515d
[gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11238
diff
changeset
|
5528 | else |
|
12347
5b3fea126c69
[gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents:
12344
diff
changeset
|
5529 | ret = g_strdup(gaim_status_get_name(status)); |
|
5167
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5530 | |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5531 | return ret; |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5532 | } |
|
e6674b684b55
[gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents:
5163
diff
changeset
|
5533 | |
| 5842 | 5534 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5535 | static int oscar_icon_req(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5536 | GaimConnection *gc = od->gc; |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5537 | va_list ap; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
5538 | guint16 type; |
|
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
5539 | guint8 flags = 0, length = 0; |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
5540 | guchar *md5 = NULL; |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5541 | |
| 5842 | 5542 | va_start(ap, fr); |
| 5543 | type = va_arg(ap, int); | |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5544 | |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5545 | switch(type) { |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5546 | case 0x0000: |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5547 | case 0x0001: { |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5548 | flags = va_arg(ap, int); |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5549 | length = va_arg(ap, int); |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
5550 | md5 = va_arg(ap, guchar *); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5551 | |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5552 | if (flags == 0x41) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5553 | if (!flap_connection_getbytype(od, SNAC_FAMILY_BART) && !od->iconconnecting) { |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5554 | od->iconconnecting = TRUE; |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5555 | od->set_icon = TRUE; |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
5556 | aim_srv_requestnew(od, SNAC_FAMILY_BART); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5557 | } else { |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5558 | struct stat st; |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
5559 | char *iconfile = gaim_buddy_icons_get_full_path(gaim_account_get_buddy_icon(gaim_connection_get_account(gc))); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5560 | if (iconfile == NULL) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5561 | aim_ssi_delicon(od); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
5562 | } else if (!g_stat(iconfile, &st)) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
5563 | guchar *buf = g_malloc(st.st_size); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
5564 | FILE *file = g_fopen(iconfile, "rb"); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5565 | if (file) { |
|
9532
32470c5a1d58
[gaim-migrate @ 10359]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
9481
diff
changeset
|
5566 | /* XXX - Use g_file_get_contents()? */ |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5567 | fread(buf, 1, st.st_size, file); |
|
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5568 | fclose(file); |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5569 | gaim_debug_info("oscar", |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5570 | "Uploading icon to icon server\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5571 | aim_bart_upload(od, buf, st.st_size); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5572 | } else |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5573 | gaim_debug_error("oscar", |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5574 | "Can't open buddy icon file!\n"); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5575 | g_free(buf); |
|
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
5576 | } else { |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5577 | gaim_debug_error("oscar", |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5578 | "Can't stat buddy icon file!\n"); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5579 | } |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
5580 | g_free(iconfile); |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5581 | } |
| 8363 | 5582 | } else if (flags == 0x81) { |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
5583 | char *iconfile = gaim_buddy_icons_get_full_path(gaim_account_get_buddy_icon(gaim_connection_get_account(gc))); |
| 8363 | 5584 | if (iconfile == NULL) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5585 | aim_ssi_delicon(od); |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
5586 | else { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5587 | aim_ssi_seticon(od, md5, length); |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
5588 | g_free(iconfile); |
|
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11285
diff
changeset
|
5589 | } |
| 8363 | 5590 | } |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5591 | } break; |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5592 | |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5593 | case 0x0002: { /* We just set an "available" message? */ |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5594 | } break; |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5595 | } |
|
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5596 | |
| 5842 | 5597 | va_end(ap); |
|
5844
a0f8b06669e7
[gaim-migrate @ 6275]
Mark Doliner <markdoliner@pidgin.im>
parents:
5842
diff
changeset
|
5598 | |
|
a0f8b06669e7
[gaim-migrate @ 6275]
Mark Doliner <markdoliner@pidgin.im>
parents:
5842
diff
changeset
|
5599 | return 0; |
| 5842 | 5600 | } |
|
5892
fe6738e57d73
[gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
5601 | |
| 15030 | 5602 | void oscar_set_permit_deny(GaimConnection *gc) { |
| 5575 | 5603 | GaimAccount *account = gaim_connection_get_account(gc); |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5604 | OscarData *od = (OscarData *)gc->proto_data; |
|
10866
40eab743e22b
[gaim-migrate @ 12552]
Mark Doliner <markdoliner@pidgin.im>
parents:
10860
diff
changeset
|
5605 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5606 | if (od->ssi.received_data) { |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5607 | switch (account->perm_deny) { |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5608 | case GAIM_PRIVACY_ALLOW_ALL: |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5609 | aim_ssi_setpermdeny(od, 0x01, 0xffffffff); |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5610 | break; |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5611 | case GAIM_PRIVACY_ALLOW_BUDDYLIST: |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5612 | aim_ssi_setpermdeny(od, 0x05, 0xffffffff); |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5613 | break; |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5614 | case GAIM_PRIVACY_ALLOW_USERS: |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5615 | aim_ssi_setpermdeny(od, 0x03, 0xffffffff); |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5616 | break; |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5617 | case GAIM_PRIVACY_DENY_ALL: |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5618 | aim_ssi_setpermdeny(od, 0x02, 0xffffffff); |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5619 | break; |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5620 | case GAIM_PRIVACY_DENY_USERS: |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5621 | aim_ssi_setpermdeny(od, 0x04, 0xffffffff); |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5622 | break; |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5623 | default: |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5624 | aim_ssi_setpermdeny(od, 0x01, 0xffffffff); |
|
8175
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5625 | break; |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5626 | } |
|
4e79974d452c
[gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents:
8170
diff
changeset
|
5627 | } |
| 2086 | 5628 | } |
| 5629 | ||
| 15030 | 5630 | void oscar_add_permit(GaimConnection *gc, const char *who) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5631 | OscarData *od = (OscarData *)gc->proto_data; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5632 | gaim_debug_info("oscar", "ssi: About to add a permit\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5633 | if (od->ssi.received_data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5634 | aim_ssi_addpermit(od, who); |
| 2086 | 5635 | } |
| 5636 | ||
| 15030 | 5637 | void oscar_add_deny(GaimConnection *gc, const char *who) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5638 | OscarData *od = (OscarData *)gc->proto_data; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5639 | gaim_debug_info("oscar", "ssi: About to add a deny\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5640 | if (od->ssi.received_data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5641 | aim_ssi_adddeny(od, who); |
| 2086 | 5642 | } |
| 5643 | ||
| 15030 | 5644 | void oscar_rem_permit(GaimConnection *gc, const char *who) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5645 | OscarData *od = (OscarData *)gc->proto_data; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5646 | gaim_debug_info("oscar", "ssi: About to delete a permit\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5647 | if (od->ssi.received_data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5648 | aim_ssi_delpermit(od, who); |
| 2086 | 5649 | } |
| 5650 | ||
| 15030 | 5651 | void oscar_rem_deny(GaimConnection *gc, const char *who) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5652 | OscarData *od = (OscarData *)gc->proto_data; |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
5653 | gaim_debug_info("oscar", "ssi: About to delete a deny\n"); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5654 | if (od->ssi.received_data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5655 | aim_ssi_deldeny(od, who); |
| 2086 | 5656 | } |
| 5657 | ||
| 15030 | 5658 | GList * |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
5659 | oscar_status_types(GaimAccount *account) |
| 2086 | 5660 | { |
|
12662
061eb8a9e421
[gaim-migrate @ 15005]
Mark Doliner <markdoliner@pidgin.im>
parents:
12661
diff
changeset
|
5661 | gboolean is_icq; |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
5662 | GList *status_types = NULL; |
|
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
5663 | GaimStatusType *type; |
|
2501
5e1fa4926c93
[gaim-migrate @ 2514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2432
diff
changeset
|
5664 | |
|
9973
e163f8e7e8a4
[gaim-migrate @ 10884]
Mark Doliner <markdoliner@pidgin.im>
parents:
9972
diff
changeset
|
5665 | g_return_val_if_fail(account != NULL, NULL); |
|
e163f8e7e8a4
[gaim-migrate @ 10884]
Mark Doliner <markdoliner@pidgin.im>
parents:
9972
diff
changeset
|
5666 | |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5667 | /* Used to flag some statuses as "user settable" or not */ |
|
12662
061eb8a9e421
[gaim-migrate @ 15005]
Mark Doliner <markdoliner@pidgin.im>
parents:
12661
diff
changeset
|
5668 | is_icq = aim_sn_is_icq(gaim_account_get_username(account)); |
|
061eb8a9e421
[gaim-migrate @ 15005]
Mark Doliner <markdoliner@pidgin.im>
parents:
12661
diff
changeset
|
5669 | |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5670 | /* Common status types */ |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5671 | /* Really the available message should only be settable for AIM accounts */ |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5672 | type = gaim_status_type_new_with_attrs(GAIM_STATUS_AVAILABLE, |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5673 | OSCAR_STATUS_ID_AVAILABLE, |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5674 | NULL, TRUE, TRUE, FALSE, |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5675 | "message", _("Message"), |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5676 | gaim_value_new(GAIM_TYPE_STRING), NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5677 | status_types = g_list_prepend(status_types, type); |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5678 | |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5679 | type = gaim_status_type_new_full(GAIM_STATUS_AVAILABLE, |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5680 | OSCAR_STATUS_ID_FREE4CHAT, |
|
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5681 | _("Free For Chat"), TRUE, is_icq, FALSE); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5682 | status_types = g_list_prepend(status_types, type); |
|
9976
5fceb5de48b8
[gaim-migrate @ 10887]
Dave West <kat@users.sourceforge.net>
parents:
9975
diff
changeset
|
5683 | |
|
10195
18379f7920fa
[gaim-migrate @ 11310]
Mark Doliner <markdoliner@pidgin.im>
parents:
10157
diff
changeset
|
5684 | type = gaim_status_type_new_with_attrs(GAIM_STATUS_AWAY, |
|
18379f7920fa
[gaim-migrate @ 11310]
Mark Doliner <markdoliner@pidgin.im>
parents:
10157
diff
changeset
|
5685 | OSCAR_STATUS_ID_AWAY, |
|
12595
8108c22aa723
[gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents:
12588
diff
changeset
|
5686 | NULL, TRUE, TRUE, FALSE, |
|
10195
18379f7920fa
[gaim-migrate @ 11310]
Mark Doliner <markdoliner@pidgin.im>
parents:
10157
diff
changeset
|
5687 | "message", _("Message"), |
|
18379f7920fa
[gaim-migrate @ 11310]
Mark Doliner <markdoliner@pidgin.im>
parents:
10157
diff
changeset
|
5688 | gaim_value_new(GAIM_TYPE_STRING), NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5689 | status_types = g_list_prepend(status_types, type); |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5690 | |
|
12595
8108c22aa723
[gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents:
12588
diff
changeset
|
5691 | type = gaim_status_type_new_full(GAIM_STATUS_INVISIBLE, |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5692 | OSCAR_STATUS_ID_INVISIBLE, |
|
12595
8108c22aa723
[gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents:
12588
diff
changeset
|
5693 | NULL, TRUE, TRUE, FALSE); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5694 | status_types = g_list_prepend(status_types, type); |
|
10042
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5695 | |
|
b9091ec2b708
[gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents:
10039
diff
changeset
|
5696 | /* ICQ-specific status types */ |
|
14209
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5697 | type = gaim_status_type_new_with_attrs(GAIM_STATUS_UNAVAILABLE, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5698 | OSCAR_STATUS_ID_OCCUPIED, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5699 | _("Occupied"), TRUE, is_icq, FALSE, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5700 | "message", _("Message"), |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5701 | gaim_value_new(GAIM_TYPE_STRING), NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5702 | status_types = g_list_prepend(status_types, type); |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5703 | |
|
14209
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5704 | type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5705 | OSCAR_STATUS_ID_DND, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5706 | _("Do Not Disturb"), TRUE, is_icq, FALSE, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5707 | "message", _("Message"), |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5708 | gaim_value_new(GAIM_TYPE_STRING), NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5709 | status_types = g_list_prepend(status_types, type); |
|
13007
8878d47d3595
[gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents:
12970
diff
changeset
|
5710 | |
|
14209
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5711 | type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5712 | OSCAR_STATUS_ID_NA, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5713 | _("Not Available"), TRUE, is_icq, FALSE, |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5714 | "message", _("Message"), |
|
f629f12af598
[gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents:
14171
diff
changeset
|
5715 | gaim_value_new(GAIM_TYPE_STRING), NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5716 | status_types = g_list_prepend(status_types, type); |
|
12658
4aa7a873628d
[gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents:
12655
diff
changeset
|
5717 | |
|
4aa7a873628d
[gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents:
12655
diff
changeset
|
5718 | type = gaim_status_type_new_full(GAIM_STATUS_OFFLINE, |
|
4aa7a873628d
[gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents:
12655
diff
changeset
|
5719 | OSCAR_STATUS_ID_OFFLINE, |
|
4aa7a873628d
[gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents:
12655
diff
changeset
|
5720 | NULL, TRUE, TRUE, FALSE); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5721 | status_types = g_list_prepend(status_types, type); |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5722 | |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5723 | status_types = g_list_reverse(status_types); |
|
9975
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
5724 | |
|
ea6d503b89cb
[gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents:
9973
diff
changeset
|
5725 | return status_types; |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5726 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5727 | |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5728 | static void oscar_ssi_editcomment(struct name_data *data, const char *text) { |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
5729 | GaimConnection *gc = data->gc; |
|
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
5730 | OscarData *od = gc->proto_data; |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5731 | GaimBuddy *b; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5732 | GaimGroup *g; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5733 | |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5734 | if (!(b = gaim_find_buddy(gaim_connection_get_account(data->gc), data->name))) { |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5735 | oscar_free_name_data(data); |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5736 | return; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5737 | } |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5738 | |
| 12088 | 5739 | if (!(g = gaim_buddy_get_group(b))) { |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5740 | oscar_free_name_data(data); |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5741 | return; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5742 | } |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5743 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5744 | aim_ssi_editcomment(od, g->name, data->name, text); |
|
8341
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
5745 | |
|
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
5746 | if (!aim_sncmp(data->name, gc->account->username)) |
|
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
5747 | gaim_check_comment(od, text); |
|
dc43b1acfc1a
[gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents:
8308
diff
changeset
|
5748 | |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5749 | oscar_free_name_data(data); |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5750 | } |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5751 | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5752 | static void oscar_buddycb_edit_comment(GaimBlistNode *node, gpointer ignore) { |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5753 | |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5754 | GaimBuddy *buddy; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5755 | GaimConnection *gc; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5756 | OscarData *od; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5757 | struct name_data *data; |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5758 | GaimGroup *g; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5759 | char *comment; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5760 | gchar *comment_utf8; |
| 9631 | 5761 | gchar *title; |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5762 | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5763 | g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5764 | |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5765 | buddy = (GaimBuddy *) node; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5766 | gc = gaim_account_get_connection(buddy->account); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5767 | od = gc->proto_data; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5768 | |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5769 | data = g_new(struct name_data, 1); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5770 | |
| 12088 | 5771 | if (!(g = gaim_buddy_get_group(buddy))) |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5772 | return; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5773 | comment = aim_ssi_getcomment(od->ssi.local, g->name, buddy->name); |
|
12608
6223da35dc2f
[gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents:
12603
diff
changeset
|
5774 | comment_utf8 = comment ? oscar_utf8_try_convert(gc->account, comment) : NULL; |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5775 | |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5776 | data->gc = gc; |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5777 | data->name = g_strdup(buddy->name); |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5778 | data->nick = NULL; |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5779 | |
| 9631 | 5780 | title = g_strdup_printf(_("Buddy Comment for %s"), data->name); |
| 5781 | gaim_request_input(gc, title, _("Buddy Comment:"), NULL, | |
| 8697 | 5782 | comment_utf8, TRUE, FALSE, NULL, |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5783 | _("OK"), G_CALLBACK(oscar_ssi_editcomment), |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5784 | _("Cancel"), G_CALLBACK(oscar_free_name_data), |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5785 | data); |
| 9631 | 5786 | g_free(title); |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5787 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5788 | g_free(comment); |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5789 | g_free(comment_utf8); |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5790 | } |
|
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5791 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5792 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5793 | oscar_ask_directim_yes_cb(struct oscar_ask_directim_data *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5794 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5795 | peer_connection_propose(data->od, OSCAR_CAPABILITY_DIRECTIM, data->who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5796 | g_free(data->who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5797 | g_free(data); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5798 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5799 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5800 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5801 | oscar_ask_directim_no_cb(struct oscar_ask_directim_data *data) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5802 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5803 | g_free(data->who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5804 | g_free(data); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5805 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5806 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5807 | /* This is called from right-click menu on a buddy node. */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5808 | static void |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5809 | oscar_ask_directim(gpointer object, gpointer ignored) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5810 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5811 | GaimBlistNode *node; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5812 | GaimBuddy *buddy; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5813 | GaimConnection *gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5814 | gchar *buf; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5815 | struct oscar_ask_directim_data *data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5816 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5817 | node = object; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5818 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5819 | g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5820 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5821 | buddy = (GaimBuddy *)node; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5822 | gc = gaim_account_get_connection(buddy->account); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5823 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5824 | data = g_new0(struct oscar_ask_directim_data, 1); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5825 | data->who = g_strdup(buddy->name); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5826 | data->od = gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5827 | buf = g_strdup_printf(_("You have selected to open a Direct IM connection with %s."), |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5828 | buddy->name); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5829 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5830 | gaim_request_action(gc, NULL, buf, |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5831 | _("Because this reveals your IP address, it " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5832 | "may be considered a security risk. Do you " |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5833 | "wish to continue?"), |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5834 | 0, data, 2, |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5835 | _("_Connect"), G_CALLBACK(oscar_ask_directim_yes_cb), |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5836 | _("Cancel"), G_CALLBACK(oscar_ask_directim_no_cb)); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5837 | g_free(buf); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5838 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5839 | |
|
13937
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5840 | static void |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5841 | oscar_get_aim_info_cb(GaimBlistNode *node, gpointer ignore) |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5842 | { |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5843 | GaimBuddy *buddy; |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5844 | GaimConnection *gc; |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5845 | |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5846 | g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5847 | |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5848 | buddy = (GaimBuddy *)node; |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5849 | gc = gaim_account_get_connection(buddy->account); |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5850 | |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5851 | aim_locate_getinfoshort(gc->proto_data, gaim_buddy_get_name(buddy), 0x00000003); |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5852 | } |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5853 | |
|
15115
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
5854 | static GList * |
|
6233e27145ee
[gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents:
15074
diff
changeset
|
5855 | oscar_buddy_menu(GaimBuddy *buddy) { |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5856 | |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5857 | GaimConnection *gc; |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5858 | OscarData *od; |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5859 | GList *menu; |
| 12919 | 5860 | GaimMenuAction *act; |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5861 | aim_userinfo_t *userinfo; |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5862 | |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5863 | gc = gaim_account_get_connection(buddy->account); |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5864 | od = gc->proto_data; |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5865 | userinfo = aim_locate_finduserinfo(od, buddy->name); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5866 | menu = NULL; |
| 12919 | 5867 | |
|
13937
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5868 | if (od->icq && aim_sn_is_icq(gaim_buddy_get_name(buddy))) |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5869 | { |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5870 | act = gaim_menu_action_new(_("Get AIM Info"), |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5871 | GAIM_CALLBACK(oscar_get_aim_info_cb), |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5872 | NULL, NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5873 | menu = g_list_prepend(menu, act); |
|
13937
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5874 | } |
|
d5606a63400f
[gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents:
13935
diff
changeset
|
5875 | |
| 12919 | 5876 | act = gaim_menu_action_new(_("Edit Buddy Comment"), |
| 5877 | GAIM_CALLBACK(oscar_buddycb_edit_comment), | |
| 5878 | NULL, NULL); | |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5879 | menu = g_list_prepend(menu, act); |
|
7172
cf6ed52de3c7
[gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents:
7166
diff
changeset
|
5880 | |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
5881 | #if 0 |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5882 | if (od->icq) |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5883 | { |
| 12919 | 5884 | act = gaim_menu_action_new(_("Get Status Msg"), |
| 5885 | GAIM_CALLBACK(oscar_get_icqstatusmsg), | |
| 5886 | NULL, NULL); | |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5887 | menu = g_list_prepend(menu, act); |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5888 | } |
|
4624
8bf85f27e60c
[gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents:
4617
diff
changeset
|
5889 | #endif |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5890 | |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5891 | if (userinfo && |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5892 | aim_sncmp(gaim_account_get_username(buddy->account), buddy->name) && |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5893 | GAIM_BUDDY_IS_ONLINE(buddy)) |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5894 | { |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5895 | if (userinfo->capabilities & OSCAR_CAPABILITY_DIRECTIM) |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5896 | { |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5897 | act = gaim_menu_action_new(_("Direct IM"), |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5898 | GAIM_CALLBACK(oscar_ask_directim), |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5899 | NULL, NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5900 | menu = g_list_prepend(menu, act); |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5901 | } |
|
9466
b6425eab60ca
[gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents:
9463
diff
changeset
|
5902 | #if 0 |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5903 | /* TODO: This menu item should be added by the core */ |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5904 | if (userinfo->capabilities & OSCAR_CAPABILITY_GETFILE) { |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5905 | act = gaim_menu_action_new(_("Get File"), |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5906 | GAIM_CALLBACK(oscar_ask_getfile), |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5907 | NULL, NULL); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5908 | menu = g_list_prepend(menu, act); |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5909 | } |
|
4826
ce211ce6a336
[gaim-migrate @ 5151]
Mark Doliner <markdoliner@pidgin.im>
parents:
4825
diff
changeset
|
5910 | #endif |
|
13606
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5911 | } |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5912 | |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5913 | if (od->ssi.received_data) |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5914 | { |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5915 | char *gname; |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5916 | gname = aim_ssi_itemlist_findparentname(od->ssi.local, buddy->name); |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5917 | if (gname && aim_ssi_waitingforauth(od->ssi.local, gname, buddy->name)) |
|
edf40f4c8b77
[gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents:
13605
diff
changeset
|
5918 | { |
| 12919 | 5919 | act = gaim_menu_action_new(_("Re-request Authorization"), |
| 5920 | GAIM_CALLBACK(gaim_auth_sendrequest_menu), | |
| 5921 | NULL, NULL); | |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5922 | menu = g_list_prepend(menu, act); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5923 | } |
| 4916 | 5924 | } |
|
10157
650fd69090cd
[gaim-migrate @ 11237]
Mark Doliner <markdoliner@pidgin.im>
parents:
10152
diff
changeset
|
5925 | |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5926 | menu = g_list_reverse(menu); |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5927 | |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
5928 | return menu; |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5929 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5930 | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5931 | |
| 15030 | 5932 | GList *oscar_blist_node_menu(GaimBlistNode *node) { |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5933 | if(GAIM_BLIST_NODE_IS_BUDDY(node)) { |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5934 | return oscar_buddy_menu((GaimBuddy *) node); |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5935 | } else { |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5936 | return NULL; |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5937 | } |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5938 | } |
|
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5939 | |
| 10570 | 5940 | static void |
| 5941 | oscar_icq_privacy_opts(GaimConnection *gc, GaimRequestFields *fields) | |
| 5942 | { | |
| 5943 | OscarData *od = gc->proto_data; | |
| 5944 | GaimAccount *account = gaim_connection_get_account(gc); | |
| 5945 | GaimRequestField *f; | |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
5946 | gboolean auth, web_aware; |
| 10570 | 5947 | |
| 5948 | f = gaim_request_fields_get_field(fields, "authorization"); | |
| 5949 | auth = gaim_request_field_bool_get_value(f); | |
| 5950 | ||
| 5951 | f = gaim_request_fields_get_field(fields, "web_aware"); | |
| 5952 | web_aware = gaim_request_field_bool_get_value(f); | |
| 5953 | ||
| 5954 | gaim_account_set_bool(account, "authorization", auth); | |
| 5955 | gaim_account_set_bool(account, "web_aware", web_aware); | |
| 5956 | ||
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
5957 | oscar_set_extendedstatus(gc); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5958 | aim_icq_setsecurity(od, auth, web_aware); |
| 10570 | 5959 | } |
| 5960 | ||
| 5961 | static void | |
| 5962 | oscar_show_icq_privacy_opts(GaimPluginAction *action) | |
| 5963 | { | |
| 5964 | GaimConnection *gc = (GaimConnection *) action->context; | |
| 5965 | GaimAccount *account = gaim_connection_get_account(gc); | |
| 5966 | GaimRequestFields *fields; | |
| 5967 | GaimRequestFieldGroup *g; | |
| 5968 | GaimRequestField *f; | |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
5969 | gboolean auth, web_aware; |
| 10570 | 5970 | |
| 5971 | auth = gaim_account_get_bool(account, "authorization", OSCAR_DEFAULT_AUTHORIZATION); | |
| 5972 | web_aware = gaim_account_get_bool(account, "web_aware", OSCAR_DEFAULT_WEB_AWARE); | |
| 5973 | ||
| 5974 | fields = gaim_request_fields_new(); | |
| 5975 | ||
| 5976 | g = gaim_request_field_group_new(NULL); | |
| 5977 | ||
| 5978 | f = gaim_request_field_bool_new("authorization", _("Require authorization"), auth); | |
| 5979 | gaim_request_field_group_add_field(g, f); | |
| 5980 | ||
|
12617
a9be8855baad
[gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents:
12608
diff
changeset
|
5981 | f = gaim_request_field_bool_new("web_aware", _("Web aware (enabling this will cause you to receive SPAM!)"), web_aware); |
| 10570 | 5982 | gaim_request_field_group_add_field(g, f); |
| 5983 | ||
| 5984 | gaim_request_fields_add_group(fields, g); | |
| 5985 | ||
| 5986 | gaim_request_fields(gc, _("ICQ Privacy Options"), _("ICQ Privacy Options"), | |
| 5987 | NULL, fields, | |
| 5988 | _("OK"), G_CALLBACK(oscar_icq_privacy_opts), | |
| 5989 | _("Cancel"), NULL, gc); | |
| 5990 | } | |
|
9030
7b574a641391
[gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents:
9016
diff
changeset
|
5991 | |
| 5575 | 5992 | static void oscar_format_screenname(GaimConnection *gc, const char *nick) { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
5993 | OscarData *od = gc->proto_data; |
| 5575 | 5994 | if (!aim_sncmp(gaim_account_get_username(gaim_connection_get_account(gc)), nick)) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
5995 | if (!flap_connection_getbytype(od, SNAC_FAMILY_ADMIN)) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5996 | od->setnick = TRUE; |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5997 | od->newsn = g_strdup(nick); |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
5998 | aim_srv_requestnew(od, SNAC_FAMILY_ADMIN); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
5999 | } else { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6000 | aim_admin_setnick(od, flap_connection_getbytype(od, SNAC_FAMILY_ADMIN), nick); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6001 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6002 | } else { |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5435
diff
changeset
|
6003 | gaim_notify_error(gc, NULL, _("The new formatting is invalid."), |
|
8152
f26c9406b4b3
[gaim-migrate @ 8864]
Mark Doliner <markdoliner@pidgin.im>
parents:
8151
diff
changeset
|
6004 | _("Screen name formatting can change only capitalization and whitespace.")); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6005 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6006 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6007 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6008 | static void oscar_show_format_screenname(GaimPluginAction *action) |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6009 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6010 | GaimConnection *gc = (GaimConnection *) action->context; |
|
8152
f26c9406b4b3
[gaim-migrate @ 8864]
Mark Doliner <markdoliner@pidgin.im>
parents:
8151
diff
changeset
|
6011 | gaim_request_input(gc, NULL, _("New screen name formatting:"), NULL, |
| 8697 | 6012 | gaim_connection_get_display_name(gc), FALSE, FALSE, NULL, |
|
5493
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
6013 | _("OK"), G_CALLBACK(oscar_format_screenname), |
|
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
6014 | _("Cancel"), NULL, |
|
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
6015 | gc); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6016 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6017 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6018 | static void oscar_confirm_account(GaimPluginAction *action) |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6019 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6020 | GaimConnection *gc; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6021 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6022 | FlapConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6023 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6024 | gc = (GaimConnection *)action->context; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6025 | od = gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6026 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6027 | conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6028 | if (conn != NULL) { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6029 | aim_admin_reqconfirm(od, conn); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6030 | } else { |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6031 | od->conf = TRUE; |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
6032 | aim_srv_requestnew(od, SNAC_FAMILY_ADMIN); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6033 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6034 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6035 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6036 | static void oscar_show_email(GaimPluginAction *action) |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6037 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6038 | GaimConnection *gc = (GaimConnection *) action->context; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6039 | OscarData *od = gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6040 | FlapConnection *conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6041 | |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6042 | if (conn) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6043 | aim_admin_getinfo(od, conn, 0x11); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6044 | } else { |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6045 | od->reqemail = TRUE; |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
6046 | aim_srv_requestnew(od, SNAC_FAMILY_ADMIN); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6047 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6048 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6049 | |
| 5575 | 6050 | static void oscar_change_email(GaimConnection *gc, const char *email) |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6051 | { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6052 | OscarData *od = gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6053 | FlapConnection *conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN); |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6054 | |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6055 | if (conn) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6056 | aim_admin_setemail(od, conn, email); |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6057 | } else { |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6058 | od->setemail = TRUE; |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6059 | od->email = g_strdup(email); |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
6060 | aim_srv_requestnew(od, SNAC_FAMILY_ADMIN); |
|
2768
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6061 | } |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6062 | } |
|
908aa476ee73
[gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2762
diff
changeset
|
6063 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6064 | static void oscar_show_change_email(GaimPluginAction *action) |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6065 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6066 | GaimConnection *gc = (GaimConnection *) action->context; |
|
6035
b245be9cbe3b
[gaim-migrate @ 6485]
Christian Hammond <chipx86@chipx86.com>
parents:
6029
diff
changeset
|
6067 | gaim_request_input(gc, NULL, _("Change Address To:"), NULL, NULL, |
| 8697 | 6068 | FALSE, FALSE, NULL, |
|
5493
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
6069 | _("OK"), G_CALLBACK(oscar_change_email), |
|
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
6070 | _("Cancel"), NULL, |
|
f30de3b116ea
[gaim-migrate @ 5889]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
6071 | gc); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6072 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6073 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6074 | static void oscar_show_awaitingauth(GaimPluginAction *action) |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6075 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6076 | GaimConnection *gc = (GaimConnection *) action->context; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6077 | OscarData *od = gc->proto_data; |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6078 | gchar *nombre, *text, *tmp; |
| 6695 | 6079 | GaimBlistNode *gnode, *cnode, *bnode; |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6080 | int num=0; |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6081 | |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6082 | text = g_strdup(""); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6083 | |
| 4785 | 6084 | for (gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
| 6695 | 6085 | GaimGroup *group = (GaimGroup *)gnode; |
| 4785 | 6086 | if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 6087 | continue; | |
| 6695 | 6088 | for (cnode = gnode->child; cnode; cnode = cnode->next) { |
| 6089 | if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) | |
| 4785 | 6090 | continue; |
| 6695 | 6091 | for (bnode = cnode->child; bnode; bnode = bnode->next) { |
| 6092 | GaimBuddy *buddy = (GaimBuddy *)bnode; | |
| 6093 | if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | |
| 6094 | continue; | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6095 | if (buddy->account == gc->account && aim_ssi_waitingforauth(od->ssi.local, group->name, buddy->name)) { |
|
9620
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
6096 | if (gaim_buddy_get_alias_only(buddy)) |
|
fe99fcea5c1c
[gaim-migrate @ 10464]
Christopher O'Brien <siege@pidgin.im>
parents:
9595
diff
changeset
|
6097 | nombre = g_strdup_printf(" %s (%s)", buddy->name, gaim_buddy_get_alias_only(buddy)); |
| 6695 | 6098 | else |
| 6099 | nombre = g_strdup_printf(" %s", buddy->name); | |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6100 | tmp = g_strdup_printf("%s%s<br>", text, nombre); |
| 6695 | 6101 | g_free(text); |
| 6102 | text = tmp; | |
| 6103 | g_free(nombre); | |
| 6104 | num++; | |
| 6105 | } | |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6106 | } |
| 2979 | 6107 | } |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6108 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6109 | |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6110 | if (!num) { |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6111 | g_free(text); |
|
6873
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6112 | text = g_strdup(_("<i>you are not waiting for authorization</i>")); |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6113 | } |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6114 | |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6115 | gaim_notify_formatted(gc, NULL, _("You are awaiting authorization from " |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6116 | "the following buddies"), _("You can re-request " |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6117 | "authorization from these buddies by " |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6118 | "right-clicking on them and selecting " |
|
70cc4cd04196
[gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents:
6871
diff
changeset
|
6119 | "\"Re-request Authorization.\""), text, NULL, NULL); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6120 | g_free(text); |
| 2979 | 6121 | } |
| 6122 | ||
|
7080
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6123 | static void search_by_email_cb(GaimConnection *gc, const char *email) |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6124 | { |
|
8950
1b90ece5fb4f
[gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents:
8907
diff
changeset
|
6125 | OscarData *od = (OscarData *)gc->proto_data; |
|
1b90ece5fb4f
[gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents:
8907
diff
changeset
|
6126 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6127 | aim_search_address(od, email); |
|
7080
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6128 | } |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6129 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6130 | static void oscar_show_find_email(GaimPluginAction *action) |
|
7080
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6131 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6132 | GaimConnection *gc = (GaimConnection *) action->context; |
|
13546
0700f0c29e14
[gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents:
13478
diff
changeset
|
6133 | gaim_request_input(gc, _("Find Buddy by E-Mail"), |
|
7080
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6134 | _("Search for a buddy by e-mail address"), |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6135 | _("Type the e-mail address of the buddy you are " |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6136 | "searching for."), |
| 8697 | 6137 | NULL, FALSE, FALSE, NULL, |
|
7080
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6138 | _("Search"), G_CALLBACK(search_by_email_cb), |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6139 | _("Cancel"), NULL, gc); |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6140 | } |
|
a443c1992270
[gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents:
7067
diff
changeset
|
6141 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6142 | static void oscar_show_set_info(GaimPluginAction *action) |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
6143 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6144 | GaimConnection *gc = (GaimConnection *) action->context; |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
6145 | gaim_account_request_change_user_info(gaim_connection_get_account(gc)); |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
6146 | } |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
6147 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6148 | static void oscar_show_set_info_icqurl(GaimPluginAction *action) |
| 8576 | 6149 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6150 | GaimConnection *gc = (GaimConnection *) action->context; |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10209
diff
changeset
|
6151 | gaim_notify_uri(gc, "http://www.icq.com/whitepages/user_details.php"); |
| 8576 | 6152 | } |
| 6153 | ||
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6154 | static void oscar_change_pass(GaimPluginAction *action) |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7060
diff
changeset
|
6155 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6156 | GaimConnection *gc = (GaimConnection *) action->context; |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7060
diff
changeset
|
6157 | gaim_account_request_change_password(gaim_connection_get_account(gc)); |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7060
diff
changeset
|
6158 | } |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7060
diff
changeset
|
6159 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6160 | static void oscar_show_chpassurl(GaimPluginAction *action) |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6161 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6162 | GaimConnection *gc = (GaimConnection *) action->context; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6163 | OscarData *od = gc->proto_data; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6164 | gchar *substituted = gaim_strreplace(od->authinfo->chpassurl, "%s", gaim_account_get_username(gaim_connection_get_account(gc))); |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10209
diff
changeset
|
6165 | gaim_notify_uri(gc, substituted); |
|
5517
1d7b99ac846c
[gaim-migrate @ 5916]
Mark Doliner <markdoliner@pidgin.im>
parents:
5498
diff
changeset
|
6166 | g_free(substituted); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6167 | } |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6168 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6169 | static void oscar_show_imforwardingurl(GaimPluginAction *action) |
|
7026
7828abff32da
[gaim-migrate @ 7589]
Mark Doliner <markdoliner@pidgin.im>
parents:
7023
diff
changeset
|
6170 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6171 | GaimConnection *gc = (GaimConnection *) action->context; |
|
10240
09342bc554d9
[gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents:
10209
diff
changeset
|
6172 | gaim_notify_uri(gc, "http://mymobile.aol.com/dbreg/register?action=imf&clientID=1"); |
|
7026
7828abff32da
[gaim-migrate @ 7589]
Mark Doliner <markdoliner@pidgin.im>
parents:
7023
diff
changeset
|
6173 | } |
|
7828abff32da
[gaim-migrate @ 7589]
Mark Doliner <markdoliner@pidgin.im>
parents:
7023
diff
changeset
|
6174 | |
| 15030 | 6175 | void oscar_set_icon(GaimConnection *gc, const char *iconfile) |
| 5842 | 6176 | { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6177 | OscarData *od = gc->proto_data; |
| 5842 | 6178 | FILE *file; |
| 6179 | struct stat st; | |
|
5844
a0f8b06669e7
[gaim-migrate @ 6275]
Mark Doliner <markdoliner@pidgin.im>
parents:
5842
diff
changeset
|
6180 | |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
6181 | if (iconfile == NULL) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6182 | aim_ssi_delicon(od); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
6183 | } else if (!g_stat(iconfile, &st)) { |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
6184 | guchar *buf = g_malloc(st.st_size); |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10574
diff
changeset
|
6185 | file = g_fopen(iconfile, "rb"); |
|
11404
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6186 | if (file) |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6187 | { |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6188 | GaimCipher *cipher; |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6189 | GaimCipherContext *context; |
|
11159
76ef02141bcb
[gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents:
11155
diff
changeset
|
6190 | guchar md5[16]; |
|
11404
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6191 | int len; |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6192 | |
|
9532
32470c5a1d58
[gaim-migrate @ 10359]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
9481
diff
changeset
|
6193 | /* XXX - Use g_file_get_contents()? */ |
|
11404
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6194 | len = fread(buf, 1, st.st_size, file); |
|
6039
0d9378194f65
[gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents:
6037
diff
changeset
|
6195 | fclose(file); |
|
11404
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6196 | |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6197 | cipher = gaim_ciphers_find_cipher("md5"); |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6198 | context = gaim_cipher_context_new(cipher, NULL); |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6199 | gaim_cipher_context_append(context, buf, len); |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6200 | gaim_cipher_context_digest(context, 16, md5, NULL); |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6201 | gaim_cipher_context_destroy(context); |
|
45cde074735d
[gaim-migrate @ 13639]
Mark Doliner <markdoliner@pidgin.im>
parents:
11401
diff
changeset
|
6202 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6203 | aim_ssi_seticon(od, md5, 16); |
| 5842 | 6204 | } else |
|
8660
db1625f0f9d1
[gaim-migrate @ 9412]
Mark Doliner <markdoliner@pidgin.im>
parents:
8623
diff
changeset
|
6205 | gaim_debug_error("oscar", |
| 5842 | 6206 | "Can't open buddy icon file!\n"); |
| 6207 | g_free(buf); | |
| 6208 | } else | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6209 | gaim_debug_error("oscar", "Can't stat buddy icon file!\n"); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6210 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6211 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6212 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6213 | * Called by the Gaim core to determine whether or not we're |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6214 | * allowed to send a file to this user. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6215 | */ |
| 15030 | 6216 | gboolean |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6217 | oscar_can_receive_file(GaimConnection *gc, const char *who) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6218 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6219 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6220 | GaimAccount *account; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6221 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6222 | od = gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6223 | account = gaim_connection_get_account(gc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6224 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6225 | if (od != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6226 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6227 | aim_userinfo_t *userinfo; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6228 | userinfo = aim_locate_finduserinfo(od, who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6229 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6230 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6231 | * Don't allowing sending a file to a user that does not support |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6232 | * file transfer, and don't allow sending to ourselves. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6233 | */ |
|
13970
0d9441d1cfea
[gaim-migrate @ 16404]
Mark Doliner <markdoliner@pidgin.im>
parents:
13937
diff
changeset
|
6234 | if (((userinfo == NULL) || |
|
0d9441d1cfea
[gaim-migrate @ 16404]
Mark Doliner <markdoliner@pidgin.im>
parents:
13937
diff
changeset
|
6235 | (userinfo->capabilities & OSCAR_CAPABILITY_SENDFILE)) && |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6236 | aim_sncmp(who, gaim_account_get_username(account))) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6237 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6238 | return TRUE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6239 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6240 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6241 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6242 | return FALSE; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6243 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6244 | |
| 15030 | 6245 | GaimXfer * |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6246 | oscar_new_xfer(GaimConnection *gc, const char *who) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6247 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6248 | GaimXfer *xfer; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6249 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6250 | GaimAccount *account; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6251 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6252 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6253 | od = gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6254 | account = gaim_connection_get_account(gc); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6255 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6256 | xfer = gaim_xfer_new(account, GAIM_XFER_SEND, who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6257 | gaim_xfer_ref(xfer); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6258 | gaim_xfer_set_init_fnc(xfer, peer_oft_sendcb_init); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6259 | gaim_xfer_set_cancel_send_fnc(xfer, peer_oft_cb_generic_cancel); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6260 | gaim_xfer_set_request_denied_fnc(xfer, peer_oft_cb_generic_cancel); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6261 | gaim_xfer_set_ack_fnc(xfer, peer_oft_sendcb_ack); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6262 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6263 | conn = peer_connection_new(od, OSCAR_CAPABILITY_SENDFILE, who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6264 | conn->flags |= PEER_CONNECTION_FLAG_INITIATED_BY_ME; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6265 | conn->flags |= PEER_CONNECTION_FLAG_APPROVED; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6266 | aim_icbm_makecookie(conn->cookie); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6267 | conn->xfer = xfer; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6268 | xfer->data = conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6269 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6270 | return xfer; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6271 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6272 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6273 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6274 | * Called by the Gaim core when the user indicates that a |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6275 | * file is to be sent to a special someone. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6276 | */ |
| 15030 | 6277 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6278 | oscar_send_file(GaimConnection *gc, const char *who, const char *file) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6279 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6280 | GaimXfer *xfer; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6281 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6282 | xfer = oscar_new_xfer(gc, who); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6283 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6284 | if (file != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6285 | gaim_xfer_request_accepted(xfer, file); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6286 | else |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6287 | gaim_xfer_request(xfer); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6288 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6289 | |
| 15030 | 6290 | GList * |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6291 | oscar_actions(GaimPlugin *plugin, gpointer context) |
| 2086 | 6292 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6293 | GaimConnection *gc = (GaimConnection *) context; |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6294 | OscarData *od = gc->proto_data; |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6295 | GList *menu = NULL; |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6296 | GaimPluginAction *act; |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6297 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6298 | act = gaim_plugin_action_new(_("Set User Info..."), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6299 | oscar_show_set_info); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6300 | menu = g_list_prepend(menu, act); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6301 | |
| 10570 | 6302 | if (od->icq) |
| 6303 | { | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6304 | act = gaim_plugin_action_new(_("Set User Info (URL)..."), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6305 | oscar_show_set_info_icqurl); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6306 | menu = g_list_prepend(menu, act); |
| 8576 | 6307 | } |
| 6308 | ||
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6309 | act = gaim_plugin_action_new(_("Change Password..."), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6310 | oscar_change_pass); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6311 | menu = g_list_prepend(menu, act); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6312 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6313 | if (od->authinfo->chpassurl != NULL) |
| 10570 | 6314 | { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6315 | act = gaim_plugin_action_new(_("Change Password (URL)"), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6316 | oscar_show_chpassurl); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6317 | menu = g_list_prepend(menu, act); |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6318 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6319 | act = gaim_plugin_action_new(_("Configure IM Forwarding (URL)"), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6320 | oscar_show_imforwardingurl); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6321 | menu = g_list_prepend(menu, act); |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6322 | } |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6323 | |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6324 | menu = g_list_prepend(menu, NULL); |
| 10570 | 6325 | |
| 6326 | if (od->icq) | |
| 6327 | { | |
| 6328 | /* ICQ actions */ | |
|
12652
363cd78076e0
[gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents:
12645
diff
changeset
|
6329 | act = gaim_plugin_action_new(_("Set Privacy Options..."), |
| 10570 | 6330 | oscar_show_icq_privacy_opts); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6331 | menu = g_list_prepend(menu, act); |
| 10570 | 6332 | } |
| 6333 | else | |
| 6334 | { | |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6335 | /* AIM actions */ |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6336 | act = gaim_plugin_action_new(_("Format Screen Name..."), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6337 | oscar_show_format_screenname); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6338 | menu = g_list_prepend(menu, act); |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6339 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6340 | act = gaim_plugin_action_new(_("Confirm Account"), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6341 | oscar_confirm_account); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6342 | menu = g_list_prepend(menu, act); |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6343 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6344 | act = gaim_plugin_action_new(_("Display Currently Registered E-Mail Address"), |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6345 | oscar_show_email); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6346 | menu = g_list_prepend(menu, act); |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6347 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6348 | act = gaim_plugin_action_new(_("Change Currently Registered E-Mail Address..."), |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6349 | oscar_show_change_email); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6350 | menu = g_list_prepend(menu, act); |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6351 | } |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6352 | |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6353 | menu = g_list_prepend(menu, NULL); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6354 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6355 | act = gaim_plugin_action_new(_("Show Buddies Awaiting Authorization"), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6356 | oscar_show_awaitingauth); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6357 | menu = g_list_prepend(menu, act); |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6358 | |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6359 | menu = g_list_prepend(menu, NULL); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6360 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6361 | act = gaim_plugin_action_new(_("Search for Buddy by E-Mail Address..."), |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6362 | oscar_show_find_email); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6363 | menu = g_list_prepend(menu, act); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4317
diff
changeset
|
6364 | |
|
8591
ae42ad1cd127
[gaim-migrate @ 9342]
Mark Doliner <markdoliner@pidgin.im>
parents:
8590
diff
changeset
|
6365 | #if 0 |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6366 | act = gaim_plugin_action_new(_("Search for Buddy by Information"), |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8995
diff
changeset
|
6367 | show_find_info); |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6368 | menu = g_list_prepend(menu, act); |
|
8591
ae42ad1cd127
[gaim-migrate @ 9342]
Mark Doliner <markdoliner@pidgin.im>
parents:
8590
diff
changeset
|
6369 | #endif |
| 2086 | 6370 | |
|
14410
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6371 | menu = g_list_reverse(menu); |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6372 | |
|
a5ae93474db6
[gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents:
14344
diff
changeset
|
6373 | return menu; |
| 2086 | 6374 | } |
| 6375 | ||
| 15030 | 6376 | void oscar_change_passwd(GaimConnection *gc, const char *old, const char *new) |
| 2086 | 6377 | { |
|
7283
aa76f7c93746
[gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents:
7282
diff
changeset
|
6378 | OscarData *od = gc->proto_data; |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6379 | |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6380 | if (od->icq) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6381 | aim_icq_changepasswd(od, new); |
| 2086 | 6382 | } else { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6383 | FlapConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6384 | conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6385 | if (conn) { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6386 | aim_admin_changepasswd(od, conn, new, old); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6387 | } else { |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6388 | od->chpass = TRUE; |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6389 | od->oldp = g_strdup(old); |
|
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6390 | od->newp = g_strdup(new); |
|
15147
101192282f5d
[gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents:
15142
diff
changeset
|
6391 | aim_srv_requestnew(od, SNAC_FAMILY_ADMIN); |
|
4617
35d860860593
[gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents:
4608
diff
changeset
|
6392 | } |
| 2086 | 6393 | } |
| 6394 | } | |
| 6395 | ||
| 15030 | 6396 | void |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6397 | oscar_convo_closed(GaimConnection *gc, const char *who) |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
6398 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6399 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6400 | PeerConnection *conn; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6401 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6402 | od = gc->proto_data; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6403 | conn = peer_connection_find_by_type(od, who, OSCAR_CAPABILITY_DIRECTIM); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6404 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6405 | if (conn != NULL) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6406 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6407 | if (!conn->ready) |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6408 | aim_im_sendch2_cancel(conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6409 | |
|
14464
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14454
diff
changeset
|
6410 | peer_connection_destroy(conn, OSCAR_DISCONNECT_LOCAL_CLOSED, NULL); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6411 | } |
|
2246
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
6412 | } |
|
8ade8b7421af
[gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2235
diff
changeset
|
6413 | |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6414 | static void |
|
12816
5f93e09fa9a6
[gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents:
12730
diff
changeset
|
6415 | recent_buddies_cb(const char *name, GaimPrefType type, |
|
5f93e09fa9a6
[gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents:
12730
diff
changeset
|
6416 | gconstpointer value, gpointer data) |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6417 | { |
|
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6418 | GaimConnection *gc = data; |
|
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6419 | OscarData *od = gc->proto_data; |
|
13235
72bddc689630
[gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents:
13232
diff
changeset
|
6420 | guint32 presence; |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6421 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6422 | presence = aim_ssi_getpresence(od->ssi.local); |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6423 | |
|
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6424 | if (value) { |
|
12486
58a4a7b22512
[gaim-migrate @ 14798]
Mark Doliner <markdoliner@pidgin.im>
parents:
12454
diff
changeset
|
6425 | presence &= ~AIM_SSI_PRESENCE_FLAG_NORECENTBUDDIES; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6426 | aim_ssi_setpresence(od, presence); |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6427 | } else { |
|
12486
58a4a7b22512
[gaim-migrate @ 14798]
Mark Doliner <markdoliner@pidgin.im>
parents:
12454
diff
changeset
|
6428 | presence |= AIM_SSI_PRESENCE_FLAG_NORECENTBUDDIES; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6429 | aim_ssi_setpresence(od, presence); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6430 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6431 | } |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6432 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6433 | #ifdef USE_PRPL_PREFERENCES |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6434 | ppref = gaim_plugin_pref_new_with_name_and_label("/plugins/prpl/oscar/recent_buddies", _("Use recent buddies group")); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6435 | gaim_plugin_pref_frame_add(frame, ppref); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6436 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6437 | ppref = gaim_plugin_pref_new_with_name_and_label("/plugins/prpl/oscar/show_idle", _("Show how long you have been idle")); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6438 | gaim_plugin_pref_frame_add(frame, ppref); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6439 | #endif |
|
9935
45473da3a39b
[gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents:
9933
diff
changeset
|
6440 | |
| 15030 | 6441 | const char * |
|
11153
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6442 | oscar_normalize(const GaimAccount *account, const char *str) |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6443 | { |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6444 | static char buf[BUF_LEN]; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6445 | char *tmp1, *tmp2; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6446 | int i, j; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6447 | |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6448 | g_return_val_if_fail(str != NULL, NULL); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6449 | |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6450 | strncpy(buf, str, BUF_LEN); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6451 | for (i=0, j=0; buf[j]; i++, j++) |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6452 | { |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6453 | while (buf[j] == ' ') |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6454 | j++; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6455 | buf[i] = buf[j]; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6456 | } |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6457 | buf[i] = '\0'; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6458 | |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6459 | tmp1 = g_utf8_strdown(buf, -1); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6460 | tmp2 = g_utf8_normalize(tmp1, -1, G_NORMALIZE_DEFAULT); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6461 | g_snprintf(buf, sizeof(buf), "%s", tmp2); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6462 | g_free(tmp2); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6463 | g_free(tmp1); |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6464 | |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6465 | return buf; |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6466 | } |
|
b5c721366f2d
[gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents:
11102
diff
changeset
|
6467 | |
| 15030 | 6468 | gboolean |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13572
diff
changeset
|
6469 | oscar_offline_message(const GaimBuddy *buddy) |
|
12645
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6470 | { |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6471 | OscarData *od; |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6472 | GaimAccount *account; |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6473 | GaimConnection *gc; |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6474 | |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6475 | account = gaim_buddy_get_account(buddy); |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6476 | gc = gaim_account_get_connection(account); |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6477 | od = (OscarData *)gc->proto_data; |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6478 | |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6479 | return (od->icq && aim_sn_is_icq(gaim_account_get_username(account))); |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6480 | } |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12624
diff
changeset
|
6481 |