libpurple/protocols/oscar/oscar.c

Sat, 22 Sep 2007 16:19:34 +0000

author
Gabriel Schulhof <nix@go-nix.ca>
date
Sat, 22 Sep 2007 16:19:34 +0000
changeset 20685
039aef89faf6
parent 20684
4daaf3284863
child 21162
8359073125ba
permissions
-rw-r--r--

Updated hinting to be less invasive

2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2 * purple
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 * Some code copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
6302
94b9c158969c [gaim-migrate @ 6801]
Brian Tarricon
parents: 6292
diff changeset
5 * Some code copyright (C) 1999-2001, Eric Warmenhoven
94b9c158969c [gaim-migrate @ 6801]
Brian Tarricon
parents: 6292
diff changeset
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
94b9c158969c [gaim-migrate @ 6801]
Brian Tarricon
parents: 6292
diff changeset
9 *
94b9c158969c [gaim-migrate @ 6801]
Brian Tarricon
parents: 6292
diff changeset
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
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13 * This program is free software; you can redistribute it and/or modify
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
14 * it under the terms of the GNU General Public License as published by
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15 * the Free Software Foundation; either version 2 of the License, or
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16 * (at your option) any later version.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
17 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 * This program is distributed in the hope that it will be useful,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10485
1a05903a3e83 [gaim-migrate @ 11775]
Nathan Walp <nwalp@pidgin.im>
parents: 10475
diff changeset
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
21 * GNU General Public License for more details.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
22 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
23 * You should have received a copy of the GNU General Public License
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
24 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19832
diff changeset
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
26 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27 */
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
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
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8227
diff changeset
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
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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
b54a762f60fa [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9942
diff changeset
46 #include "version.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5868
diff changeset
47
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
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
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
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"
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
61 #define OSCAR_STATUS_ID_MOBILE "mobile"
9975
ea6d503b89cb [gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents: 9973
diff changeset
62
15927
009137ac8bb8 I don't know if the OSCAR checksum stuff will be copied to pidgin.im, but it certainly won't be at a website that's not ours (wrong because of the sed).
Richard Laager <rlaager@pidgin.im>
parents: 15926
diff changeset
63 #define AIMHASHDATA "http://pidgin.im/aim_data.php3"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
64
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
65 #define OSCAR_CONNECT_STEPS 6
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
66
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
67 static OscarCapability purple_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
68
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
69 static guint8 features_aim[] = {0x01, 0x01, 0x01, 0x02};
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
70 static guint8 features_icq[] = {0x01, 0x06};
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
71 static guint8 features_icq_offline[] = {0x01};
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
72 static guint8 ck[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
73
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
74 struct create_room {
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
75 char *name;
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
76 int exchange;
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
77 };
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
78
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
79 struct oscar_ask_directim_data
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
80 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
81 OscarData *od;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
82 char *who;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
83 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
84
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
85 /*
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
86 * 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
87 * 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
88 * the rest of this to libfaim, mostly im.c
11651
02f366130354 [gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents: 11643
diff changeset
89 *
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
90 * TODO: More of this should use the status API.
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
91 */
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
92 struct buddyinfo {
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
93 gboolean typingnot;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
94 guint32 ipaddr;
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
95
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
96 unsigned long ico_me_len;
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
97 unsigned long ico_me_csum;
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
98 time_t ico_me_time;
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
99 gboolean ico_informed;
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
100
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
101 unsigned long ico_len;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
102 unsigned long ico_csum;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
103 time_t ico_time;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
104 gboolean ico_need;
7406
b0e59cabc315 [gaim-migrate @ 8006]
Sean Egan <seanegan@pidgin.im>
parents: 7389
diff changeset
105 gboolean ico_sent;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
106 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
107
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
108 struct name_data {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
109 PurpleConnection *gc;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
110 gchar *name;
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
111 gchar *nick;
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
112 };
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
113
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
114 static char *msgerrreason[] = {
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
115 N_("Invalid error"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
116 N_("Invalid SNAC"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
117 N_("Rate to host"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
118 N_("Rate to client"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
119 N_("Not logged in"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
120 N_("Service unavailable"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
121 N_("Service not defined"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
122 N_("Obsolete SNAC"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
123 N_("Not supported by host"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
124 N_("Not supported by client"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
125 N_("Refused by client"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
126 N_("Reply too big"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
127 N_("Responses lost"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
128 N_("Request denied"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
129 N_("Busted SNAC payload"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
130 N_("Insufficient rights"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
131 N_("In local permit/deny"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
132 N_("Too evil (sender)"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
133 N_("Too evil (receiver)"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
134 N_("User temporarily unavailable"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
135 N_("No match"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
136 N_("List overflow"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
137 N_("Request ambiguous"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
138 N_("Queue full"),
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
139 N_("Not while on AOL")
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
140 };
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
141 static int msgerrreasonlen = 25;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
142
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
143 /* All the libfaim->purple callback functions */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
144 static int purple_parse_auth_resp (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
145 static int purple_parse_login (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
146 static int purple_parse_auth_securid_request(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
147 static int purple_handle_redirect (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
148 static int purple_info_change (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
149 static int purple_account_confirm (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
150 static int purple_parse_oncoming (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
151 static int purple_parse_offgoing (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
152 static int purple_parse_incoming_im(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
153 static int purple_parse_misses (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
154 static int purple_parse_clientauto (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
155 static int purple_parse_userinfo (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
156 static int purple_got_infoblock (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
157 static int purple_parse_motd (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
158 static int purple_chatnav_info (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
159 static int purple_conv_chat_join (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
160 static int purple_conv_chat_leave (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
161 static int purple_conv_chat_info_update (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
162 static int purple_conv_chat_incoming_msg(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
163 static int purple_email_parseupdate(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
164 static int purple_icon_parseicon (OscarData *, FlapConnection *, FlapFrame *, ...);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
165 static int oscar_icon_req (OscarData *, FlapConnection *, FlapFrame *, ...);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
166 static int purple_parse_msgack (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
167 static int purple_parse_ratechange (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
168 static int purple_parse_evilnotify (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
169 static int purple_parse_searcherror(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
170 static int purple_parse_searchreply(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
171 static int purple_bosrights (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
172 static int purple_connerr (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
173 static int purple_parse_msgerr (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
174 static int purple_parse_mtn (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
175 static int purple_parse_locaterights(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
176 static int purple_parse_buddyrights(OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
177 static int purple_parse_locerr (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
178 static int purple_icbm_param_info (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
179 static int purple_parse_genericerr (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
180 static int purple_memrequest (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
181 static int purple_selfinfo (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
182 static int purple_offlinemsg (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
183 static int purple_offlinemsgdone (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
184 static int purple_icqalias (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
185 static int purple_icqinfo (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
186 static int purple_popup (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
187 static int purple_ssi_parseerr (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
188 static int purple_ssi_parserights (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
189 static int purple_ssi_parselist (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
190 static int purple_ssi_parseack (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
191 static int purple_ssi_parseadd (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
192 static int purple_ssi_authgiven (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
193 static int purple_ssi_authrequest (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
194 static int purple_ssi_authreply (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
195 static int purple_ssi_gotadded (OscarData *, FlapConnection *, FlapFrame *, ...);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
196
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
197 static void purple_icons_fetch(PurpleConnection *gc);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
198
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
199 static void recent_buddies_cb(const char *name, PurplePrefType type, gconstpointer value, gpointer data);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
200 void oscar_set_info(PurpleConnection *gc, const char *info);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
201 static void oscar_set_info_and_status(PurpleAccount *account, gboolean setinfo, const char *rawinfo, gboolean setstatus, PurpleStatus *status);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
202 static void oscar_set_extendedstatus(PurpleConnection *gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
203 static void oscar_format_screenname(PurpleConnection *gc, const char *nick);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
204 static gboolean purple_ssi_rerequestdata(gpointer data);
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
205
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
206 static void oscar_free_name_data(struct name_data *data) {
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
207 g_free(data->name);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
208 g_free(data->nick);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
209 g_free(data);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
210 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
211
15122
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
212 #ifdef _WIN32
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
213 const char *oscar_get_locale_charset(void) {
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
214 static const char *charset = NULL;
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
215 if (charset == NULL)
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
216 g_get_charset(&charset);
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
217 return charset;
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
218 }
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
219 #endif
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
220
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
221 /**
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
222 * Determine how we can send this message. Per the warnings elsewhere
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
223 * in this file, these little checks determine the simplest encoding
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
224 * we can use for a given message send using it.
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
225 */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
226 static guint32
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
227 oscar_charset_check(const char *utf8)
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
228 {
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
229 int i = 0;
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
230 int charset = AIM_CHARSET_ASCII;
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
231
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
232 /*
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
233 * Can we get away with using our custom encoding?
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
234 */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
235 while (utf8[i])
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
236 {
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
237 if ((unsigned char)utf8[i] > 0x7f) {
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
238 /* not ASCII! */
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
239 charset = AIM_CHARSET_CUSTOM;
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
240 break;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
241 }
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
242 i++;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
243 }
13593
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 /*
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
246 * 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
247 */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
248 while (utf8[i])
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
249 {
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
250 /* ISO-8859-1 is 0x00-0xbf in the first byte
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
251 * followed by 0xc0-0xc3 in the second */
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
252 if ((unsigned char)utf8[i] < 0x80) {
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
253 i++;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
254 continue;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
255 } else if (((unsigned char)utf8[i] & 0xfc) == 0xc0 &&
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
256 ((unsigned char)utf8[i + 1] & 0xc0) == 0x80) {
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
257 i += 2;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
258 continue;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
259 }
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
260 charset = AIM_CHARSET_UNICODE;
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
261 break;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
262 }
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
263
9807
ff713acc7204 [gaim-migrate @ 10675]
Mark Doliner <markdoliner@pidgin.im>
parents: 9806
diff changeset
264 return charset;
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
265 }
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
266
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
267 /**
8225
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
268 * 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
269 * 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
270 * return a newly allocated string containing bleh.
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
271 */
15193
faaef2307bf0 [gaim-migrate @ 17917]
Evan Schoenberg <evands@pidgin.im>
parents: 15147
diff changeset
272 gchar *
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
273 oscar_encoding_extract(const char *encoding)
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
274 {
8225
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
275 gchar *ret = NULL;
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
276 char *begin, *end;
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
277
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
278 g_return_val_if_fail(encoding != NULL, NULL);
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
279
8735
01248ea222d3 [gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 8733
diff changeset
280 /* Make sure encoding begins with charset= */
10540
f127566cc91c [gaim-migrate @ 11903]
Magnus Hult
parents: 10517
diff changeset
281 if (strncmp(encoding, "text/aolrtf; charset=", 21) &&
16876
49905718edb8 If we're sent text/plain by an AIM client and it specifies a charset, we can now use that charset via oscar_encoding_extract() instead of ignoring it and therefore assuming UTF-8
Evan Schoenberg <evands@pidgin.im>
parents: 16862
diff changeset
282 strncmp(encoding, "text/x-aolrtf; charset=", 23) &&
49905718edb8 If we're sent text/plain by an AIM client and it specifies a charset, we can now use that charset via oscar_encoding_extract() instead of ignoring it and therefore assuming UTF-8
Evan Schoenberg <evands@pidgin.im>
parents: 16862
diff changeset
283 strncmp(encoding, "text/plain; charset=", 20))
10540
f127566cc91c [gaim-migrate @ 11903]
Magnus Hult
parents: 10517
diff changeset
284 {
8225
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
285 return NULL;
10540
f127566cc91c [gaim-migrate @ 11903]
Magnus Hult
parents: 10517
diff changeset
286 }
8225
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
287
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
288 begin = strchr(encoding, '"');
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
289 end = strrchr(encoding, '"');
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
290
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
291 if ((begin == NULL) || (end == NULL) || (begin >= end))
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
292 return NULL;
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 ret = g_strndup(begin+1, (end-1) - begin);
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 return ret;
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
297 }
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
298
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
299 gchar *
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
300 oscar_encoding_to_utf8(PurpleAccount *account, const char *encoding, const char *text, int textlen)
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
301 {
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
302 gchar *utf8 = NULL;
9595
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
303
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
304 if ((encoding == NULL) || encoding[0] == '\0') {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
305 purple_debug_info("oscar", "Empty encoding, assuming UTF-8\n");
17155
143ff2796376 Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents: 17003
diff changeset
306 } else if (!g_ascii_strcasecmp(encoding, "iso-8859-1")) {
10376
55a66fe5f524 [gaim-migrate @ 11601]
Sean Egan <seanegan@pidgin.im>
parents: 10375
diff changeset
307 utf8 = g_convert(text, textlen, "UTF-8", "iso-8859-1", NULL, NULL, NULL);
17155
143ff2796376 Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents: 17003
diff changeset
308 } else if (!g_ascii_strcasecmp(encoding, "ISO-8859-1-Windows-3.1-Latin-1") ||
143ff2796376 Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents: 17003
diff changeset
309 !g_ascii_strcasecmp(encoding, "us-ascii"))
15232
b86d8eb29842 [gaim-migrate @ 17956]
Mark Doliner <markdoliner@pidgin.im>
parents: 15223
diff changeset
310 {
10375
54a5d7c57286 [gaim-migrate @ 11600]
Sean Egan <seanegan@pidgin.im>
parents: 10329
diff changeset
311 utf8 = g_convert(text, textlen, "UTF-8", "Windows-1252", NULL, NULL, NULL);
17155
143ff2796376 Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents: 17003
diff changeset
312 } else if (!g_ascii_strcasecmp(encoding, "unicode-2-0")) {
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
313 /* Some official ICQ clients are apparently total crack,
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
314 * and have been known to save a UTF-8 string converted
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
315 * from the locale character set to UCS-2 (not from UTF-8
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
316 * to UCS-2!) in the away message. This hack should find
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
317 * and do something (un)reasonable with that, and not
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
318 * mess up too much else. */
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
319 const gchar *charset = purple_account_get_string(account, "encoding", NULL);
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
320 if (charset) {
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
321 gsize len;
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
322 utf8 = g_convert(text, textlen, charset, "UCS-2BE", &len, NULL, NULL);
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
323 if (!utf8 || len != textlen || !g_utf8_validate(utf8, -1, NULL)) {
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
324 g_free(utf8);
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
325 utf8 = NULL;
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
326 } else {
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
327 purple_debug_info("oscar", "Used broken ICQ fallback encoding\n");
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
328 }
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
329 }
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
330 if (!utf8)
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
331 utf8 = g_convert(text, textlen, "UTF-8", "UCS-2BE", NULL, NULL, NULL);
17155
143ff2796376 Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents: 17003
diff changeset
332 } else if (g_ascii_strcasecmp(encoding, "utf-8")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
333 purple_debug_warning("oscar", "Unrecognized character encoding \"%s\", "
10096
2dba52b4a949 [gaim-migrate @ 11118]
Mark Doliner <markdoliner@pidgin.im>
parents: 10087
diff changeset
334 "attempting to convert to UTF-8 anyway\n", encoding);
9595
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
335 utf8 = g_convert(text, textlen, "UTF-8", encoding, NULL, NULL, NULL);
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
336 }
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
337
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
338 /*
15232
b86d8eb29842 [gaim-migrate @ 17956]
Mark Doliner <markdoliner@pidgin.im>
parents: 15223
diff changeset
339 * If utf8 is still NULL then either the encoding is utf-8 or
9595
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
340 * 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
341 * 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
342 * just copy it.
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
343 */
3860d7d423ca [gaim-migrate @ 10438]
Mark Doliner <markdoliner@pidgin.im>
parents: 9586
diff changeset
344 if (utf8 == NULL) {
9638
2f1f916d57af [gaim-migrate @ 10486]
Ethan Blanton <elb@pidgin.im>
parents: 9634
diff changeset
345 if (textlen != 0 && *text != '\0'
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
346 && !g_utf8_validate(text, textlen, NULL))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
347 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
9e67e150526d [gaim-migrate @ 10301]
Ethan Blanton <elb@pidgin.im>
parents: 9475
diff changeset
348 else
9481
cde5948eae04 [gaim-migrate @ 10306]
Ethan Blanton <elb@pidgin.im>
parents: 9476
diff changeset
349 utf8 = g_strndup(text, textlen);
5129
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
350 }
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
351
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
352 return utf8;
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
353 }
c1cfbdfcd381 [gaim-migrate @ 5492]
Mark Doliner <markdoliner@pidgin.im>
parents: 5125
diff changeset
354
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
355 static gchar *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
356 oscar_utf8_try_convert(PurpleAccount *account, const gchar *msg)
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
357 {
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
358 const char *charset = NULL;
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
359 char *ret = NULL;
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
360
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
361 if(aim_snvalid_icq(purple_account_get_username(account)))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
362 charset = purple_account_get_string(account, "encoding", NULL);
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
363
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
364 if(charset && *charset)
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
365 ret = g_convert(msg, -1, "UTF-8", charset, NULL, NULL, NULL);
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
366
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
367 if(!ret)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
368 ret = purple_utf8_try_convert(msg);
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
369
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
370 return ret;
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
371 }
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
372
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
373 static gchar *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
374 purple_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
375 {
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
376 gchar *ret = NULL;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
377 GError *err = NULL;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
378
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
379 if ((charsetstr == NULL) || (*charsetstr == '\0'))
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
380 return NULL;
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
381
17155
143ff2796376 Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents: 17003
diff changeset
382 if (g_ascii_strcasecmp("UTF-8", charsetstr)) {
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
383 if (fallback)
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
384 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
385 else
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
386 ret = g_convert(data, datalen, "UTF-8", charsetstr, NULL, NULL, &err);
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
387 if (err != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
388 purple_debug_warning("oscar", "Conversion from %s failed: %s.\n",
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
389 charsetstr, err->message);
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
390 g_error_free(err);
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
391 }
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
392 } else {
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
393 if (g_utf8_validate(data, datalen, NULL))
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
394 ret = g_strndup(data, datalen);
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
395 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
396 purple_debug_warning("oscar", "String is not valid UTF-8.\n");
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
397 }
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
398
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
399 return ret;
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
400 }
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
401
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
402 /**
11081
c0b5f17f4442 [gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents: 11049
diff changeset
403 * This attemps to decode an incoming IM into a UTF8 string.
c0b5f17f4442 [gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents: 11049
diff changeset
404 *
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
405 * We try decoding using two different character sets. The charset
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
406 * 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
407 * decode. We do this because there are lots of broken ICQ clients
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
408 * that don't correctly send non-ASCII messages. And if Purple isn't
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
409 * able to deal with that crap, then people complain like banshees.
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
410 * charsetstr1 is always set to what the correct encoding should be.
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
411 */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
412 gchar *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
413 purple_plugin_oscar_decode_im_part(PurpleAccount *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
414 {
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
415 gchar *ret = NULL;
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
416 const gchar *charsetstr1, *charsetstr2;
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
417
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
418 purple_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
419
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
420 if ((datalen == 0) || (data == NULL))
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
421 return NULL;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
422
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
423 if (charset == AIM_CHARSET_UNICODE) {
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
424 charsetstr1 = "UCS-2BE";
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
425 charsetstr2 = "UTF-8";
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
426 } else if (charset == AIM_CHARSET_CUSTOM) {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
427 if ((sourcesn != NULL) && aim_snvalid_icq(sourcesn))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
428 charsetstr1 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
429 else
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
430 charsetstr1 = "ISO-8859-1";
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
431 charsetstr2 = "UTF-8";
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
432 } else if (charset == AIM_CHARSET_ASCII) {
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
433 /* Should just be "ASCII" */
9914
93b0188fc369 [gaim-migrate @ 10806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9908
diff changeset
434 charsetstr1 = "ASCII";
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
435 charsetstr2 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
436 } else if (charset == 0x000d) {
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
437 /* 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
438 charsetstr1 = "ISO-8859-1";
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
439 charsetstr2 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
440 } else {
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
441 /* Unknown, hope for valid UTF-8... */
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
442 charsetstr1 = "UTF-8";
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
443 charsetstr2 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
444 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
445
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
446 ret = purple_plugin_oscar_convert_to_utf8(data, datalen, charsetstr1, FALSE);
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
447 if (ret == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
448 ret = purple_plugin_oscar_convert_to_utf8(data, datalen, charsetstr2, TRUE);
15264
ef84d066912c [gaim-migrate @ 17992]
Ethan Blanton <elb@pidgin.im>
parents: 15263
diff changeset
449 if (ret == NULL) {
15305
87539b8cbdfa [gaim-migrate @ 18033]
Evan Schoenberg <evands@pidgin.im>
parents: 15303
diff changeset
450 char *str, *salvage, *tmp;
15264
ef84d066912c [gaim-migrate @ 17992]
Ethan Blanton <elb@pidgin.im>
parents: 15263
diff changeset
451
ef84d066912c [gaim-migrate @ 17992]
Ethan Blanton <elb@pidgin.im>
parents: 15263
diff changeset
452 str = g_malloc(datalen + 1);
15274
19f6578ddb99 [gaim-migrate @ 18002]
Mark Doliner <markdoliner@pidgin.im>
parents: 15268
diff changeset
453 strncpy(str, data, datalen);
15264
ef84d066912c [gaim-migrate @ 17992]
Ethan Blanton <elb@pidgin.im>
parents: 15263
diff changeset
454 str[datalen] = '\0';
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
455 salvage = purple_utf8_salvage(str);
15303
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
456 tmp = g_strdup_printf(_("(There was an error receiving this message. Either you and %s have different encodings selected, or %s has a buggy client.)"),
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
457 sourcesn, sourcesn);
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
458 ret = g_strdup_printf("%s %s", salvage, tmp);
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
459 g_free(tmp);
15264
ef84d066912c [gaim-migrate @ 17992]
Ethan Blanton <elb@pidgin.im>
parents: 15263
diff changeset
460 g_free(str);
ef84d066912c [gaim-migrate @ 17992]
Ethan Blanton <elb@pidgin.im>
parents: 15263
diff changeset
461 g_free(salvage);
15303
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
462 }
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
463
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
464 return ret;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
465 }
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
466
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
467 /**
11081
c0b5f17f4442 [gaim-migrate @ 13095]
Mark Doliner <markdoliner@pidgin.im>
parents: 11049
diff changeset
468 * 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
469 */
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
470 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
471 purple_plugin_oscar_convert_to_best_encoding(PurpleConnection *gc,
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
472 const char *destsn, const gchar *from,
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
473 gchar **msg, int *msglen_int,
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
474 guint16 *charset, guint16 *charsubset)
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
475 {
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
476 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
477 PurpleAccount *account = purple_connection_get_account(gc);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
478 GError *err = NULL;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
479 aim_userinfo_t *userinfo = NULL;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
480 const gchar *charsetstr;
10039
cb0a6cbd0023 [gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents: 10022
diff changeset
481 gsize msglen;
9830
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 /* Attempt to send as ASCII */
10098
364dcec11abd [gaim-migrate @ 11120]
Mark Doliner <markdoliner@pidgin.im>
parents: 10097
diff changeset
484 if (oscar_charset_check(from) == AIM_CHARSET_ASCII) {
19337
68471e68386a Use -1 as length with g_convert() functions instead of strlen()
Daniel Atallah <datallah@pidgin.im>
parents: 19335
diff changeset
485 *msg = g_convert(from, -1, "ASCII", "UTF-8", NULL, &msglen, NULL);
10098
364dcec11abd [gaim-migrate @ 11120]
Mark Doliner <markdoliner@pidgin.im>
parents: 10097
diff changeset
486 *charset = AIM_CHARSET_ASCII;
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
487 *charsubset = 0x0000;
10039
cb0a6cbd0023 [gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents: 10022
diff changeset
488 *msglen_int = msglen;
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
489 return;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
490 }
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
491
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
492 /*
10565
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
493 * If we're sending to an ICQ user, and they are in our
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
494 * buddy list, and they are advertising the Unicode
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
495 * capability, and they are online, then attempt to send
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
496 * as UCS-2BE.
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
497 */
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
498 if ((destsn != NULL) && aim_snvalid_icq(destsn))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
499 userinfo = aim_locate_finduserinfo(od, destsn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
500
14619
e3577fb5e0f1 [gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents: 14614
diff changeset
501 if ((userinfo != NULL) && (userinfo->capabilities & OSCAR_CAPABILITY_UNICODE))
10565
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
502 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
503 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
504 b = purple_find_buddy(account, destsn);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
505 if ((b != NULL) && (PURPLE_BUDDY_IS_ONLINE(b)))
10565
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
506 {
19337
68471e68386a Use -1 as length with g_convert() functions instead of strlen()
Daniel Atallah <datallah@pidgin.im>
parents: 19335
diff changeset
507 *msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, NULL);
10565
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
508 if (*msg != NULL)
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
509 {
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
510 *charset = AIM_CHARSET_UNICODE;
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
511 *charsubset = 0x0000;
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
512 *msglen_int = msglen;
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
513 return;
50678b6fdedb [gaim-migrate @ 11947]
Magnus Hult
parents: 10563
diff changeset
514 }
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
515 }
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
516 }
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 /*
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
519 * 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
520 * ICQ then attempt to send as the user specified character encoding.
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
521 */
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
522 charsetstr = "ISO-8859-1";
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
523 if ((destsn != NULL) && aim_snvalid_icq(destsn))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
524 charsetstr = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
525
10097
cdf1f787073f [gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents: 10096
diff changeset
526 /*
cdf1f787073f [gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents: 10096
diff changeset
527 * 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
528 * can be converted to "charsetstr"
cdf1f787073f [gaim-migrate @ 11119]
Calle Englund <notcalle@users.sourceforge.net>
parents: 10096
diff changeset
529 */
19337
68471e68386a Use -1 as length with g_convert() functions instead of strlen()
Daniel Atallah <datallah@pidgin.im>
parents: 19335
diff changeset
530 *msg = g_convert(from, -1, charsetstr, "UTF-8", NULL, &msglen, NULL);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
531 if (*msg != NULL) {
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
532 *charset = AIM_CHARSET_CUSTOM;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
533 *charsubset = 0x0000;
10039
cb0a6cbd0023 [gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents: 10022
diff changeset
534 *msglen_int = msglen;
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
535 return;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
536 }
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
537
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
538 /*
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
539 * Nothing else worked, so send as UCS-2BE.
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
540 */
19337
68471e68386a Use -1 as length with g_convert() functions instead of strlen()
Daniel Atallah <datallah@pidgin.im>
parents: 19335
diff changeset
541 *msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, &err);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
542 if (*msg != NULL) {
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
543 *charset = AIM_CHARSET_UNICODE;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
544 *charsubset = 0x0000;
10039
cb0a6cbd0023 [gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents: 10022
diff changeset
545 *msglen_int = msglen;
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
546 return;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
547 }
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
548
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
549 purple_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
550 g_error_free(err);
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
551
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
552 purple_debug_error("oscar", "This should NEVER happen! Sending UTF-8 text flagged as ASCII.\n");
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
553 *msg = g_strdup(from);
10039
cb0a6cbd0023 [gaim-migrate @ 10998]
Rian Hunter <chrono86@users.sourceforge.net>
parents: 10022
diff changeset
554 *msglen_int = strlen(*msg);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
555 *charset = AIM_CHARSET_ASCII;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
556 *charsubset = 0x0000;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
557 return;
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
558 }
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
559
13357
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
560 /**
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
561 * 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
562 * specified name, date, and time, respectively.
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
563 *
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
564 * @param str The string that may contain the special variables.
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
565 * @param name The sender name.
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
566 *
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
567 * @return A newly allocated string where the special variables are
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
568 * expanded. This should be g_free'd by the caller.
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
569 */
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
570 static gchar *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
571 purple_str_sub_away_formatters(const char *str, const char *name)
13357
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
572 {
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
573 char *c;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
574 GString *cpy;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
575 time_t t;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
576 struct tm *tme;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
577
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
578 g_return_val_if_fail(str != NULL, NULL);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
579 g_return_val_if_fail(name != NULL, NULL);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
580
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
581 /* 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
582 cpy = g_string_sized_new(1024);
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 t = time(NULL);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
585 tme = localtime(&t);
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 c = (char *)str;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
588 while (*c) {
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
589 switch (*c) {
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
590 case '%':
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
591 if (*(c + 1)) {
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
592 switch (*(c + 1)) {
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
593 case 'n':
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
594 /* append name */
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
595 g_string_append(cpy, name);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
596 c++;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
597 break;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
598 case 'd':
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
599 /* append date */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
600 g_string_append(cpy, purple_date_format_short(tme));
13357
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
601 c++;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
602 break;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
603 case 't':
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
604 /* append time */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
605 g_string_append(cpy, purple_time_format(tme));
13357
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
606 c++;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
607 break;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
608 default:
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
609 g_string_append_c(cpy, *c);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
610 }
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
611 } else {
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
612 g_string_append_c(cpy, *c);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
613 }
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
614 break;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
615 default:
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
616 g_string_append_c(cpy, *c);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
617 }
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
618 c++;
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
619 }
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
620
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
621 return g_string_free(cpy, FALSE);
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
622 }
c865228e89f7 [gaim-migrate @ 15729]
Mark Doliner <markdoliner@pidgin.im>
parents: 13312
diff changeset
623
14614
3ed1753cc08a [gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents: 14604
diff changeset
624 static gchar *oscar_caps_to_string(OscarCapability caps)
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
625 {
9407
51d14211393c [gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents: 9381
diff changeset
626 GString *str;
13105
8f9c66e4af87 [gaim-migrate @ 15466]
Richard Laager <rlaager@pidgin.im>
parents: 13075
diff changeset
627 const gchar *tmp;
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
628 guint bit = 1;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
629
9407
51d14211393c [gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents: 9381
diff changeset
630 str = g_string_new("");
51d14211393c [gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents: 9381
diff changeset
631
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
632 if (!caps) {
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
633 return NULL;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
634 } else while (bit <= OSCAR_CAPABILITY_LAST) {
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
635 if (bit & caps) {
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
636 switch (bit) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
637 case OSCAR_CAPABILITY_BUDDYICON:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
638 tmp = _("Buddy Icon");
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_TALK:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
641 tmp = _("Voice");
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_DIRECTIM:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
644 tmp = _("AIM Direct IM");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
645 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
646 case OSCAR_CAPABILITY_CHAT:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
647 tmp = _("Chat");
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_GETFILE:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
650 tmp = _("Get File");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
651 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
652 case OSCAR_CAPABILITY_SENDFILE:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
653 tmp = _("Send File");
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_GAMES:
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
656 case OSCAR_CAPABILITY_GAMES2:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
657 tmp = _("Games");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
658 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
659 case OSCAR_CAPABILITY_ADDINS:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
660 tmp = _("Add-Ins");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
661 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
662 case OSCAR_CAPABILITY_SENDBUDDYLIST:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
663 tmp = _("Send Buddy List");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
664 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
665 case OSCAR_CAPABILITY_ICQ_DIRECT:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
666 tmp = _("ICQ Direct Connect");
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_APINFO:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
669 tmp = _("AP User");
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_ICQRTF:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
672 tmp = _("ICQ RTF");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
673 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
674 case OSCAR_CAPABILITY_EMPTY:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
675 tmp = _("Nihilist");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
676 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
677 case OSCAR_CAPABILITY_ICQSERVERRELAY:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
678 tmp = _("ICQ Server Relay");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
679 break;
14619
e3577fb5e0f1 [gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents: 14614
diff changeset
680 case OSCAR_CAPABILITY_UNICODEOLD:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
681 tmp = _("Old ICQ UTF8");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
682 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
683 case OSCAR_CAPABILITY_TRILLIANCRYPT:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
684 tmp = _("Trillian Encryption");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
685 break;
14619
e3577fb5e0f1 [gaim-migrate @ 17280]
Mark Doliner <markdoliner@pidgin.im>
parents: 14614
diff changeset
686 case OSCAR_CAPABILITY_UNICODE:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
687 tmp = _("ICQ UTF8");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
688 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
689 case OSCAR_CAPABILITY_HIPTOP:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
690 tmp = _("Hiptop");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
691 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
692 case OSCAR_CAPABILITY_SECUREIM:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
693 tmp = _("Security Enabled");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
694 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
695 case OSCAR_CAPABILITY_VIDEO:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
696 tmp = _("Video Chat");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
697 break;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
698 /* 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
699 case OSCAR_CAPABILITY_ICHATAV:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
700 tmp = _("iChat AV");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
701 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
702 case OSCAR_CAPABILITY_LIVEVIDEO:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
703 tmp = _("Live Video");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
704 break;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
705 case OSCAR_CAPABILITY_CAMERA:
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
706 tmp = _("Camera");
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
707 break;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
708 default:
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
709 tmp = NULL;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
710 break;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
711 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
712 if (tmp)
9532
32470c5a1d58 [gaim-migrate @ 10359]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 9481
diff changeset
713 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
714 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
715 bit <<= 1;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
716 }
9407
51d14211393c [gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents: 9381
diff changeset
717
51d14211393c [gaim-migrate @ 10222]
Mark Doliner <markdoliner@pidgin.im>
parents: 9381
diff changeset
718 return g_string_free(str, FALSE);
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
719 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
720
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
721 static char *oscar_icqstatus(int state) {
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
722 /* 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
723 if (state & AIM_ICQ_STATE_CHAT)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
724 return g_strdup_printf(_("Free For Chat"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
725 else if (state & AIM_ICQ_STATE_DND)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
726 return g_strdup_printf(_("Do Not Disturb"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
727 else if (state & AIM_ICQ_STATE_OUT)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
728 return g_strdup_printf(_("Not Available"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
729 else if (state & AIM_ICQ_STATE_BUSY)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
730 return g_strdup_printf(_("Occupied"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
731 else if (state & AIM_ICQ_STATE_AWAY)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
732 return g_strdup_printf(_("Away"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
733 else if (state & AIM_ICQ_STATE_WEBAWARE)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
734 return g_strdup_printf(_("Web Aware"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
735 else if (state & AIM_ICQ_STATE_INVISIBLE)
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
736 return g_strdup_printf(_("Invisible"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
737 else
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
738 return g_strdup_printf(_("Online"));
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
739 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
740
9973
e163f8e7e8a4 [gaim-migrate @ 10884]
Mark Doliner <markdoliner@pidgin.im>
parents: 9972
diff changeset
741 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
742 oscar_user_info_add_pair(PurpleNotifyUserInfo *user_info, const char *name, const char *value)
13935
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
743 {
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
744 if (value && value[0]) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
745 purple_notify_user_info_add_pair(user_info, name, value);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
746 }
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
747 }
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 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
750 oscar_user_info_convert_and_add_pair(PurpleAccount *account, PurpleNotifyUserInfo *user_info,
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
751 const char *name, const char *value)
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
752 {
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
753 gchar *utf8;
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
754
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
755 if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
756 purple_notify_user_info_add_pair(user_info, name, utf8);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
757 g_free(utf8);
13935
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
758 }
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
759 }
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
760
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
761 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
762 oscar_string_convert_and_append(PurpleAccount *account, GString *str, const char *newline,
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
763 const char *name, const char *value)
8700
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
764 {
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
765 gchar *utf8;
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
766
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
767 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
768 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
769 g_free(utf8);
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
770 }
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
771 }
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
772
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
773 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
774 oscar_user_info_convert_and_add(PurpleAccount *account, PurpleNotifyUserInfo *user_info,
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
775 const char *name, const char *value)
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
776 {
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
777 gchar *utf8;
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
778
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
779 if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
780 purple_notify_user_info_add_pair(user_info, name, value);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
781 g_free(utf8);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
782 }
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
783 }
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
784
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
785 static void oscar_string_append_info(PurpleConnection *gc, PurpleNotifyUserInfo *user_info, PurpleBuddy *b, aim_userinfo_t *userinfo)
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
786 {
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
787 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
788 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
789 PurplePresence *presence = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
790 PurpleStatus *status = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
791 PurpleGroup *g = NULL;
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
792 struct buddyinfo *bi = NULL;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
793 char *tmp;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
794
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
795 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
796 account = purple_connection_get_account(gc);
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
797
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
798 if ((user_info == NULL) || ((b == NULL) && (userinfo == NULL)))
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
799 return;
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
800
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
801 if (userinfo == NULL)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
802 userinfo = aim_locate_finduserinfo(od, b->name);
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
803
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
804 if (b == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
805 b = purple_find_buddy(account, userinfo->sn);
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
806
11369
8d396dd4633d [gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 11359
diff changeset
807 if (b != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
808 g = purple_buddy_get_group(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
809 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
810 status = purple_presence_get_active_status(presence);
10498
aff389ee45f3 [gaim-migrate @ 11790]
Mark Doliner <markdoliner@pidgin.im>
parents: 10487
diff changeset
811 }
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
812
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
813 if (userinfo != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
814 bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->sn));
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
815
8733
f6d36eff3b49 [gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
816 if (b != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
817 if (purple_presence_is_online(presence)) {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
818 if (aim_snvalid_icq(b->name)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
819 PurpleStatus *status = purple_presence_get_active_status(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
820 oscar_user_info_add_pair(user_info, _("Status"), purple_status_get_name(status));
8733
f6d36eff3b49 [gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
821 }
f6d36eff3b49 [gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
822 } else {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
823 tmp = aim_ssi_itemlist_findparentname(od->ssi.local, b->name);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
824 if (aim_ssi_waitingforauth(od->ssi.local, tmp, b->name))
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
825 oscar_user_info_add_pair(user_info, _("Status"), _("Not Authorized"));
8733
f6d36eff3b49 [gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
826 else
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
827 oscar_user_info_add_pair(user_info, _("Status"), _("Offline"));
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
828 }
8733
f6d36eff3b49 [gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
829 }
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
830
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
831 if ((bi != NULL) && (bi->ipaddr != 0)) {
9625
f2cda8836eb9 [gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents: 9620
diff changeset
832 tmp = g_strdup_printf("%hhu.%hhu.%hhu.%hhu",
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
833 (bi->ipaddr & 0xff000000) >> 24,
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
834 (bi->ipaddr & 0x00ff0000) >> 16,
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
835 (bi->ipaddr & 0x0000ff00) >> 8,
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
836 (bi->ipaddr & 0x000000ff));
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
837 oscar_user_info_add_pair(user_info, _("IP Address"), tmp);
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
838 g_free(tmp);
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
839 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
840
11257
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
841
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
842 if ((userinfo != NULL) && (userinfo->warnlevel != 0)) {
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
843 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
844 oscar_user_info_add_pair(user_info, _("Warning Level"), tmp);
11257
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
845 g_free(tmp);
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
846 }
9743367c935e [gaim-migrate @ 13432]
Sean Egan <seanegan@pidgin.im>
parents: 11256
diff changeset
847
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
848 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
849 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
850 if (tmp != NULL) {
9625
f2cda8836eb9 [gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents: 9620
diff changeset
851 char *tmp2 = g_markup_escape_text(tmp, strlen(tmp));
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
852 g_free(tmp);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
853
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
854 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
855 g_free(tmp2);
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
856 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
857 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
858 }
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
859
2821
f1ab7f03bdad [gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
860 static char *extract_name(const char *name) {
4121
42fc01bee50b [gaim-migrate @ 4338]
Rob Flynn <gaim@robflynn.com>
parents: 4120
diff changeset
861 char *tmp, *x;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
862 int i, j;
4120
a803503bbc7a [gaim-migrate @ 4337]
Rob Flynn <gaim@robflynn.com>
parents: 4111
diff changeset
863
a803503bbc7a [gaim-migrate @ 4337]
Rob Flynn <gaim@robflynn.com>
parents: 4111
diff changeset
864 if (!name)
4121
42fc01bee50b [gaim-migrate @ 4338]
Rob Flynn <gaim@robflynn.com>
parents: 4120
diff changeset
865 return NULL;
13382
ad4d8c44d83d [gaim-migrate @ 15754]
Daniel Atallah <datallah@pidgin.im>
parents: 13357
diff changeset
866
4120
a803503bbc7a [gaim-migrate @ 4337]
Rob Flynn <gaim@robflynn.com>
parents: 4111
diff changeset
867 x = strchr(name, '-');
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
868 if (!x)
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
869 return NULL;
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
870
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
871 x = strchr(x + 1, '-');
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
872 if (!x)
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
873 return NULL;
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
874
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
875 tmp = g_strdup(++x);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
876
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
877 for (i = 0, j = 0; x[i]; i++) {
2361
73a8ac410e85 [gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2357
diff changeset
878 char hex[3];
73a8ac410e85 [gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2357
diff changeset
879 if (x[i] != '%') {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
880 tmp[j++] = x[i];
2361
73a8ac410e85 [gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2357
diff changeset
881 continue;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
882 }
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
883 strncpy(hex, x + ++i, 2);
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
884 hex[2] = 0;
2361
73a8ac410e85 [gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2357
diff changeset
885 i++;
73a8ac410e85 [gaim-migrate @ 2374]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2357
diff changeset
886 tmp[j++] = strtol(hex, NULL, 16);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
887 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
888
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
889 tmp[j] = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
890 return tmp;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
891 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
892
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
893 static struct chat_connection *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
894 find_oscar_chat(PurpleConnection *gc, int id)
10458
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 OscarData *od = (OscarData *)gc->proto_data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
897 GSList *cur;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
898 struct chat_connection *cc;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
899
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
900 for (cur = od->oscar_chats; cur != NULL; cur = cur->next)
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 cc = (struct chat_connection *)cur->data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
903 if (cc->id == id)
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
904 return cc;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
905 }
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
906
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
907 return NULL;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
908 }
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
909
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
910 static struct chat_connection *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
911 find_oscar_chat_by_conn(PurpleConnection *gc, FlapConnection *conn)
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
912 {
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
913 OscarData *od = (OscarData *)gc->proto_data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
914 GSList *cur;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
915 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 for (cur = od->oscar_chats; cur != NULL; cur = cur->next)
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 cc = (struct chat_connection *)cur->data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
920 if (cc->conn == conn)
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
921 return cc;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
922 }
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
923
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
924 return NULL;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
925 }
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
926
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
927 static struct chat_connection *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
928 find_oscar_chat_by_conv(PurpleConnection *gc, PurpleConversation *conv)
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
929 {
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
930 OscarData *od = (OscarData *)gc->proto_data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
931 GSList *cur;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
932 struct chat_connection *cc;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
933
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
934 for (cur = od->oscar_chats; cur != NULL; cur = cur->next)
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
935 {
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
936 cc = (struct chat_connection *)cur->data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
937 if (cc->conv == conv)
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
938 return cc;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
939 }
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
940
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
941 return NULL;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
942 }
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
943
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
944 void
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
945 oscar_chat_destroy(struct chat_connection *cc)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
946 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
947 g_free(cc->name);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
948 g_free(cc->show);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
949 g_free(cc);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
950 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
951
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
952 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
953 oscar_chat_kill(PurpleConnection *gc, struct chat_connection *cc)
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
954 {
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
955 OscarData *od = (OscarData *)gc->proto_data;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
956
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
957 /* Notify the conversation window that we've left the chat */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
958 serv_got_chat_left(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(cc->conv)));
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
959
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
960 /* Destroy the chat_connection */
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
961 od->oscar_chats = g_slist_remove(od->oscar_chats, cc);
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
962 flap_connection_schedule_destroy(cc->conn, OSCAR_DISCONNECT_DONE, NULL);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
963 oscar_chat_destroy(cc);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
964 }
12909
dfcf4df1dcd7 [gaim-migrate @ 15262]
Daniel Atallah <datallah@pidgin.im>
parents: 12816
diff changeset
965
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
966 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
967 * This is the callback function anytime purple_proxy_connect()
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
968 * establishes a new TCP connection with an oscar host. Depending
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
969 * on the type of host, we do a few different things here.
8983
327ca6a682ed [gaim-migrate @ 9758]
Tim Ringenbach <marv@pidgin.im>
parents: 8982
diff changeset
970 */
13232
149d582e5fbb [gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents: 13227
diff changeset
971 static void
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
972 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
973 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
974 PurpleConnection *gc;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
975 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
976 PurpleAccount *account;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
977 FlapConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
978
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
979 conn = data;
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
980 od = conn->od;
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
981 gc = od->gc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
982 account = purple_connection_get_account(gc);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
983
14324
8cbedd82b6ac [gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
984 conn->connect_data = NULL;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
985 conn->fd = source;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
986
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
987 if (source < 0)
13232
149d582e5fbb [gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents: 13227
diff changeset
988 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
989 purple_debug_error("oscar", "unable to connect FLAP server "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
990 "of type 0x%04hx\n", conn->type);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
991 if (conn->type == SNAC_FAMILY_AUTH)
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
992 {
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
993 gchar *msg;
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
994 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
995 error_message);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
996 purple_connection_error(gc, msg);
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
997 g_free(msg);
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
998 }
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
999 else if (conn->type == SNAC_FAMILY_LOCATE)
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1000 {
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1001 gchar *msg;
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1002 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
1003 error_message);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1004 purple_connection_error(gc, msg);
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1005 g_free(msg);
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1006 }
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1007 else
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1008 {
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1009 /* Maybe we should call this for BOS connections, too? */
13609
a6fbfad454b6 [gaim-migrate @ 15994]
Mark Doliner <markdoliner@pidgin.im>
parents: 13606
diff changeset
1010 flap_connection_schedule_destroy(conn,
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1011 OSCAR_DISCONNECT_COULD_NOT_CONNECT, error_message);
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1012 }
13232
149d582e5fbb [gaim-migrate @ 15596]
Mark Doliner <markdoliner@pidgin.im>
parents: 13227
diff changeset
1013 return;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1014 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1015
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1016 purple_debug_info("oscar", "connected to FLAP server of type 0x%04hx\n",
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1017 conn->type);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1018 conn->watcher_incoming = purple_input_add(conn->fd,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1019 PURPLE_INPUT_READ, flap_connection_recv_cb, conn);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1020 if (conn->cookie == NULL)
13603
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1021 {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
1022 if (!aim_snvalid_icq(purple_account_get_username(account)))
13603
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1023 /*
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1024 * We don't send this when authenticating an ICQ account
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1025 * because for some reason ICQ is still using the
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1026 * assy/insecure authentication procedure.
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1027 */
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1028 flap_connection_send_version(od, conn);
12489c04a4ea [gaim-migrate @ 15988]
Mark Doliner <markdoliner@pidgin.im>
parents: 13602
diff changeset
1029 }
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1030 else
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1031 {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1032 flap_connection_send_version_with_cookie(od, conn,
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1033 conn->cookielen, conn->cookie);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1034 g_free(conn->cookie);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1035 conn->cookie = NULL;
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1036 }
13593
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 if (conn->type == SNAC_FAMILY_AUTH)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1039 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1040 aim_request_login(od, conn, purple_account_get_username(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1041 purple_debug_info("oscar", "Screen name sent, waiting for response\n");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1042 purple_connection_update_progress(gc, _("Screen name sent"), 1, OSCAR_CONNECT_STEPS);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1043 ck[1] = 0x65;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1044 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1045 else if (conn->type == SNAC_FAMILY_LOCATE)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1046 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1047 purple_connection_update_progress(gc, _("Connection established, cookie sent"), 4, OSCAR_CONNECT_STEPS);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1048 ck[4] = 0x61;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1049 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1050 else if (conn->type == SNAC_FAMILY_CHAT)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1051 {
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
1052 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
1053 conn->new_conn_data = NULL;
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1054 }
13593
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
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1057 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1058 flap_connection_established_bos(OscarData *od, FlapConnection *conn)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1059 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1060 PurpleConnection *gc = od->gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1061
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
1062 aim_srv_reqpersonalinfo(od, conn);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1063
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1064 purple_debug_info("oscar", "ssi: requesting rights and list\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1065 aim_ssi_reqrights(od);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1066 aim_ssi_reqdata(od);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1067 if (od->getblisttimer > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1068 purple_timeout_remove(od->getblisttimer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1069 od->getblisttimer = purple_timeout_add(30000, purple_ssi_rerequestdata, od);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1070
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1071 aim_locate_reqrights(od);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1072 aim_buddylist_reqrights(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1073 aim_im_reqparams(od);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1074 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
1075
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1076 purple_connection_update_progress(gc, _("Finalizing connection"), 5, OSCAR_CONNECT_STEPS);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1077 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1078
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1079 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1080 flap_connection_established_admin(OscarData *od, FlapConnection *conn)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1081 {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1082 aim_clientready(od, conn);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1083 purple_debug_info("oscar", "connected to admin\n");
13593
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 if (od->chpass) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1086 purple_debug_info("oscar", "changing password\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1087 aim_admin_changepasswd(od, conn, od->newp, od->oldp);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1088 g_free(od->oldp);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1089 od->oldp = NULL;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1090 g_free(od->newp);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1091 od->newp = NULL;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1092 od->chpass = FALSE;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1093 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1094 if (od->setnick) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1095 purple_debug_info("oscar", "formatting screen name\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1096 aim_admin_setnick(od, conn, od->newsn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1097 g_free(od->newsn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1098 od->newsn = NULL;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1099 od->setnick = FALSE;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1100 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1101 if (od->conf) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1102 purple_debug_info("oscar", "confirming account\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1103 aim_admin_reqconfirm(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1104 od->conf = FALSE;
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 if (od->reqemail) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1107 purple_debug_info("oscar", "requesting e-mail address\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1108 aim_admin_getinfo(od, conn, 0x0011);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1109 od->reqemail = FALSE;
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 if (od->setemail) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1112 purple_debug_info("oscar", "setting e-mail address\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1113 aim_admin_setemail(od, conn, od->email);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1114 g_free(od->email);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1115 od->email = NULL;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1116 od->setemail = FALSE;
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 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1119
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1120 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1121 flap_connection_established_chat(OscarData *od, FlapConnection *conn)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1122 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1123 PurpleConnection *gc = od->gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1124 struct chat_connection *chatcon;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1125 static int id = 1;
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 aim_clientready(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1128
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1129 chatcon = find_oscar_chat_by_conn(gc, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1130 chatcon->id = id;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1131 chatcon->conv = serv_got_joined_chat(gc, id++, chatcon->show);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1132 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1133
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1134 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1135 flap_connection_established_chatnav(OscarData *od, FlapConnection *conn)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1136 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1137 aim_clientready(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1138 aim_chatnav_reqrights(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1139 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1140
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1141 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1142 flap_connection_established_alert(OscarData *od, FlapConnection *conn)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1143 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1144 aim_email_sendcookies(od);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1145 aim_email_activate(od);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1146 aim_clientready(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1147 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1148
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1149 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1150 flap_connection_established_bart(OscarData *od, FlapConnection *conn)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1151 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1152 PurpleConnection *gc = od->gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1153
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1154 aim_clientready(od, conn);
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 od->iconconnecting = FALSE;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1157
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
1158 purple_icons_fetch(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1159 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1160
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1161 static int
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1162 flap_connection_established(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1163 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1164 purple_debug_info("oscar", "FLAP connection of type 0x%04hx is "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1165 "now fully connected\n", conn->type);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1166 if (conn->type == SNAC_FAMILY_LOCATE)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1167 flap_connection_established_bos(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1168 else if (conn->type == SNAC_FAMILY_ADMIN)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1169 flap_connection_established_admin(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1170 else if (conn->type == SNAC_FAMILY_CHAT)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1171 flap_connection_established_chat(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1172 else if (conn->type == SNAC_FAMILY_CHATNAV)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1173 flap_connection_established_chatnav(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1174 else if (conn->type == SNAC_FAMILY_ALERT)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1175 flap_connection_established_alert(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1176 else if (conn->type == SNAC_FAMILY_BART)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1177 flap_connection_established_bart(od, conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1178
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1179 return 1;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1180 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1181
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
1182 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1183 oscar_login(PurpleAccount *account)
10444
ea10e6d92619 [gaim-migrate @ 11704]
Mark Doliner <markdoliner@pidgin.im>
parents: 10439
diff changeset
1184 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1185 PurpleConnection *gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1186 OscarData *od;
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1187 FlapConnection *newconn;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1188
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1189 gc = purple_account_get_connection(account);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1190 od = gc->proto_data = oscar_data_new();
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1191 od->gc = gc;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1192
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1193 oscar_data_addhandler(od, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNERR, purple_connerr, 0);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1194 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
1195
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1196 oscar_data_addhandler(od, SNAC_FAMILY_ADMIN, 0x0003, purple_info_change, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1197 oscar_data_addhandler(od, SNAC_FAMILY_ADMIN, 0x0005, purple_info_change, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1198 oscar_data_addhandler(od, SNAC_FAMILY_ADMIN, 0x0007, purple_account_confirm, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1199 oscar_data_addhandler(od, SNAC_FAMILY_ALERT, 0x0001, purple_parse_genericerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1200 oscar_data_addhandler(od, SNAC_FAMILY_ALERT, SNAC_SUBTYPE_ALERT_MAILSTATUS, purple_email_parseupdate, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1201 oscar_data_addhandler(od, SNAC_FAMILY_AUTH, 0x0003, purple_parse_auth_resp, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1202 oscar_data_addhandler(od, SNAC_FAMILY_AUTH, 0x0007, purple_parse_login, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1203 oscar_data_addhandler(od, SNAC_FAMILY_AUTH, SNAC_SUBTYPE_AUTH_SECURID_REQUEST, purple_parse_auth_securid_request, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1204 oscar_data_addhandler(od, SNAC_FAMILY_BART, SNAC_SUBTYPE_BART_RESPONSE, purple_icon_parseicon, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1205 oscar_data_addhandler(od, SNAC_FAMILY_BOS, 0x0001, purple_parse_genericerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1206 oscar_data_addhandler(od, SNAC_FAMILY_BOS, 0x0003, purple_bosrights, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1207 oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, 0x0001, purple_parse_genericerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1208 oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, SNAC_SUBTYPE_BUDDY_RIGHTSINFO, purple_parse_buddyrights, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1209 oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, SNAC_SUBTYPE_BUDDY_ONCOMING, purple_parse_oncoming, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1210 oscar_data_addhandler(od, SNAC_FAMILY_BUDDY, SNAC_SUBTYPE_BUDDY_OFFGOING, purple_parse_offgoing, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1211 oscar_data_addhandler(od, SNAC_FAMILY_CHAT, 0x0001, purple_parse_genericerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1212 oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_USERJOIN, purple_conv_chat_join, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1213 oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_USERLEAVE, purple_conv_chat_leave, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1214 oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_ROOMINFOUPDATE, purple_conv_chat_info_update, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1215 oscar_data_addhandler(od, SNAC_FAMILY_CHAT, SNAC_SUBTYPE_CHAT_INCOMINGMSG, purple_conv_chat_incoming_msg, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1216 oscar_data_addhandler(od, SNAC_FAMILY_CHATNAV, 0x0001, purple_parse_genericerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1217 oscar_data_addhandler(od, SNAC_FAMILY_CHATNAV, SNAC_SUBTYPE_CHATNAV_INFO, purple_chatnav_info, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1218 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_ERROR, purple_ssi_parseerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1219 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RIGHTSINFO, purple_ssi_parserights, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1220 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_LIST, purple_ssi_parselist, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1221 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_SRVACK, purple_ssi_parseack, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1222 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_ADD, purple_ssi_parseadd, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1223 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RECVAUTH, purple_ssi_authgiven, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1224 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RECVAUTHREQ, purple_ssi_authrequest, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1225 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_RECVAUTHREP, purple_ssi_authreply, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1226 oscar_data_addhandler(od, SNAC_FAMILY_FEEDBAG, SNAC_SUBTYPE_FEEDBAG_ADDED, purple_ssi_gotadded, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1227 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, 0x0005, purple_icbm_param_info, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1228 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_INCOMING, purple_parse_incoming_im, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1229 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_MISSEDCALL, purple_parse_misses, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1230 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_CLIENTAUTORESP, purple_parse_clientauto, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1231 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_ERROR, purple_parse_msgerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1232 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_MTN, purple_parse_mtn, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1233 oscar_data_addhandler(od, SNAC_FAMILY_ICBM, SNAC_SUBTYPE_ICBM_ACK, purple_parse_msgack, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1234 oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_OFFLINEMSG, purple_offlinemsg, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1235 oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_OFFLINEMSGCOMPLETE, purple_offlinemsgdone, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1236 oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_ALIAS, purple_icqalias, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1237 oscar_data_addhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_INFO, purple_icqinfo, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1238 oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_RIGHTSINFO, purple_parse_locaterights, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1239 oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_USERINFO, purple_parse_userinfo, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1240 oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_ERROR, purple_parse_locerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1241 oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_GOTINFOBLOCK, purple_got_infoblock, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1242 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x0001, purple_parse_genericerr, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1243 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x000f, purple_selfinfo, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1244 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x001f, purple_memrequest, 0);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1245 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x0021, oscar_icon_req,0);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1246 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_RATECHANGE, purple_parse_ratechange, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1247 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_REDIRECT, purple_handle_redirect, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1248 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_MOTD, purple_parse_motd, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1249 oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, SNAC_SUBTYPE_OSERVICE_EVIL, purple_parse_evilnotify, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1250 oscar_data_addhandler(od, SNAC_FAMILY_POPUP, 0x0002, purple_popup, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1251 oscar_data_addhandler(od, SNAC_FAMILY_USERLOOKUP, SNAC_SUBTYPE_USERLOOKUP_ERROR, purple_parse_searcherror, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1252 oscar_data_addhandler(od, SNAC_FAMILY_USERLOOKUP, 0x0003, purple_parse_searchreply, 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1253
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1254 purple_debug_misc("oscar", "oscar_login: gc = %p\n", gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1255
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1256 if (!aim_snvalid(purple_account_get_username(account))) {
8437
9a95bfeb008d [gaim-migrate @ 9167]
Evan Schoenberg <evands@pidgin.im>
parents: 8430
diff changeset
1257 gchar *buf;
18342
59204a3c8c11 Update the "that is not a valid screen name!" error message to mention
Mark Doliner <markdoliner@pidgin.im>
parents: 18341
diff changeset
1258 buf = g_strdup_printf(_("Unable to login: Could not sign on as %s because the screen name is invalid. Screen names must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers."), purple_account_get_username(account));
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
1259 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1260 purple_connection_error(gc, buf);
8437
9a95bfeb008d [gaim-migrate @ 9167]
Evan Schoenberg <evands@pidgin.im>
parents: 8430
diff changeset
1261 g_free(buf);
9a95bfeb008d [gaim-migrate @ 9167]
Evan Schoenberg <evands@pidgin.im>
parents: 8430
diff changeset
1262 }
9a95bfeb008d [gaim-migrate @ 9167]
Evan Schoenberg <evands@pidgin.im>
parents: 8430
diff changeset
1263
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
1264 if (aim_snvalid_icq((purple_account_get_username(account)))) {
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
1265 od->icq = TRUE;
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
1266 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1267 gc->flags |= PURPLE_CONNECTION_HTML;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1268 gc->flags |= PURPLE_CONNECTION_AUTO_RESP;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1269 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1270
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1271 /* Connect to core Purple signals */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1272 purple_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
1273
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1274 newconn = flap_connection_new(od, SNAC_FAMILY_AUTH);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1275 newconn->connect_data = purple_proxy_connect(NULL, account,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1276 purple_account_get_string(account, "server", OSCAR_DEFAULT_LOGIN_SERVER),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1277 purple_account_get_int(account, "port", OSCAR_DEFAULT_LOGIN_PORT),
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1278 connection_established_cb, newconn);
14324
8cbedd82b6ac [gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
1279 if (newconn->connect_data == NULL)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1280 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1281 purple_connection_error(gc, _("Couldn't connect to host"));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1282 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1283 }
7282
73b94979f76b [gaim-migrate @ 7861]
Mark Doliner <markdoliner@pidgin.im>
parents: 7261
diff changeset
1284
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1285 purple_connection_update_progress(gc, _("Connecting"), 0, OSCAR_CONNECT_STEPS);
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
1286 ck[0] = 0x5a;
5575
bcc7e97af7eb [gaim-migrate @ 5979]
Sean Egan <seanegan@pidgin.im>
parents: 5556
diff changeset
1287 }
bcc7e97af7eb [gaim-migrate @ 5979]
Sean Egan <seanegan@pidgin.im>
parents: 5556
diff changeset
1288
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
1289 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1290 oscar_close(PurpleConnection *gc)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1291 {
13598
04f6791f65e0 [gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents: 13596
diff changeset
1292 OscarData *od;
04f6791f65e0 [gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents: 13596
diff changeset
1293
04f6791f65e0 [gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents: 13596
diff changeset
1294 od = (OscarData *)gc->proto_data;
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
1295
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1296 while (od->oscar_chats)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1297 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1298 struct chat_connection *cc = od->oscar_chats->data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1299 od->oscar_chats = g_slist_remove(od->oscar_chats, cc);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1300 oscar_chat_destroy(cc);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
1301 }
13598
04f6791f65e0 [gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents: 13596
diff changeset
1302 while (od->create_rooms)
04f6791f65e0 [gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents: 13596
diff changeset
1303 {
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
1304 struct create_room *cr = od->create_rooms->data;
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
1305 g_free(cr->name);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
1306 od->create_rooms = g_slist_remove(od->create_rooms, cr);
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
1307 g_free(cr);
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
1308 }
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1309 oscar_data_destroy(od);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1310 gc->proto_data = NULL;
13598
04f6791f65e0 [gaim-migrate @ 15983]
Mark Doliner <markdoliner@pidgin.im>
parents: 13596
diff changeset
1311
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1312 purple_prefs_disconnect_by_handle(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1313
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1314 purple_debug_info("oscar", "Signed off.\n");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1315 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1316
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1317 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1318 purple_parse_auth_resp(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
8446
79124efa78c9 [gaim-migrate @ 9176]
Tim Ringenbach <marv@pidgin.im>
parents: 8437
diff changeset
1319 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1320 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1321 PurpleAccount *account = gc->account;
6029
85d6afa168fb [gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents: 6019
diff changeset
1322 char *host; int port;
14151
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
1323 int i;
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1324 FlapConnection *newconn;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1325 va_list ap;
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1326 struct aim_authresp_info *info;
6029
85d6afa168fb [gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents: 6019
diff changeset
1327
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1328 port = purple_account_get_int(account, "port", OSCAR_DEFAULT_LOGIN_PORT);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1329
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1330 va_start(ap, fr);
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1331 info = va_arg(ap, struct aim_authresp_info *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1332 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1333
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1334 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
1335 "inside auth_resp (Screen name: %s)\n", info->sn);
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1336
4293
c025f268b6df [gaim-migrate @ 4546]
Mark Doliner <markdoliner@pidgin.im>
parents: 4292
diff changeset
1337 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
1338 char buf[256];
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1339 switch (info->errorcode) {
14704
2cceedf8ed0a [gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents: 14667
diff changeset
1340 case 0x01:
2cceedf8ed0a [gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents: 14667
diff changeset
1341 /* Unregistered screen name */
2cceedf8ed0a [gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents: 14667
diff changeset
1342 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1343 purple_connection_error(gc, _("Invalid screen name."));
14704
2cceedf8ed0a [gaim-migrate @ 17388]
Mark Doliner <markdoliner@pidgin.im>
parents: 14667
diff changeset
1344 break;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1345 case 0x05:
14952
764657bad829 [gaim-migrate @ 17662]
Mark Doliner <markdoliner@pidgin.im>
parents: 14899
diff changeset
1346 /* Incorrect password */
6498
23d2fd361db6 [gaim-migrate @ 7013]
Nathan Walp <nwalp@pidgin.im>
parents: 6478
diff changeset
1347 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1348 if (!purple_account_get_remember_password(account))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1349 purple_account_set_password(account, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1350 purple_connection_error(gc, _("Incorrect password."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1351 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1352 case 0x11:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1353 /* Suspended account */
6498
23d2fd361db6 [gaim-migrate @ 7013]
Nathan Walp <nwalp@pidgin.im>
parents: 6478
diff changeset
1354 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1355 purple_connection_error(gc, _("Your account is currently suspended."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1356 break;
3498
3f6ce04ea3ad [gaim-migrate @ 3561]
Mark Doliner <markdoliner@pidgin.im>
parents: 3490
diff changeset
1357 case 0x14:
3f6ce04ea3ad [gaim-migrate @ 3561]
Mark Doliner <markdoliner@pidgin.im>
parents: 3490
diff changeset
1358 /* service temporarily unavailable */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1359 purple_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
1360 break;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1361 case 0x18:
16862
ebcd573ee1a0 I noticed a new error code a few days ago: "IP address connecting too
Mark Doliner <markdoliner@pidgin.im>
parents: 16859
diff changeset
1362 /* screen name connecting too frequently */
6498
23d2fd361db6 [gaim-migrate @ 7013]
Nathan Walp <nwalp@pidgin.im>
parents: 6478
diff changeset
1363 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1364 purple_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
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1365 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1366 case 0x1c:
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1367 /* client too old */
6498
23d2fd361db6 [gaim-migrate @ 7013]
Nathan Walp <nwalp@pidgin.im>
parents: 6478
diff changeset
1368 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1369 g_snprintf(buf, sizeof(buf), _("The client version you are using is too old. Please upgrade at %s"), PURPLE_WEBSITE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1370 purple_connection_error(gc, buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1371 break;
16862
ebcd573ee1a0 I noticed a new error code a few days ago: "IP address connecting too
Mark Doliner <markdoliner@pidgin.im>
parents: 16859
diff changeset
1372 case 0x1d:
ebcd573ee1a0 I noticed a new error code a few days ago: "IP address connecting too
Mark Doliner <markdoliner@pidgin.im>
parents: 16859
diff changeset
1373 /* IP address connecting too frequently */
ebcd573ee1a0 I noticed a new error code a few days ago: "IP address connecting too
Mark Doliner <markdoliner@pidgin.im>
parents: 16859
diff changeset
1374 gc->wants_to_die = TRUE;
ebcd573ee1a0 I noticed a new error code a few days ago: "IP address connecting too
Mark Doliner <markdoliner@pidgin.im>
parents: 16859
diff changeset
1375 purple_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."));
ebcd573ee1a0 I noticed a new error code a few days ago: "IP address connecting too
Mark Doliner <markdoliner@pidgin.im>
parents: 16859
diff changeset
1376 break;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1377 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1378 purple_connection_error(gc, _("Authentication failed"));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1379 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1380 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1381 purple_debug_info("oscar", "Login Error Code 0x%04hx\n", info->errorcode);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1382 purple_debug_info("oscar", "Error URL: %s\n", info->errorurl);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1383 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1384 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1385
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1386 purple_debug_misc("oscar", "Reg status: %hu\n", info->regstatus);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1387 purple_debug_misc("oscar", "E-mail: %s\n",
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1388 (info->email != NULL) ? info->email : "null");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1389 purple_debug_misc("oscar", "BOSIP: %s\n", info->bosip);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1390 purple_debug_info("oscar", "Closing auth connection...\n");
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1391 flap_connection_schedule_destroy(conn, OSCAR_DISCONNECT_DONE, NULL);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1392
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1393 for (i = 0; i < strlen(info->bosip); i++) {
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1394 if (info->bosip[i] == ':') {
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1395 port = atoi(&(info->bosip[i+1]));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1396 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1397 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1398 }
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1399 host = g_strndup(info->bosip, i);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1400 newconn = flap_connection_new(od, SNAC_FAMILY_LOCATE);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1401 newconn->cookielen = info->cookielen;
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1402 newconn->cookie = g_memdup(info->cookie, info->cookielen);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1403 newconn->connect_data = purple_proxy_connect(NULL, account, host, port,
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1404 connection_established_cb, newconn);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1405 g_free(host);
14324
8cbedd82b6ac [gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
1406 if (newconn->connect_data == NULL)
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1407 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1408 purple_connection_error(gc, _("Could Not Connect"));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1409 return 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1410 }
2704
0937693c4937 [gaim-migrate @ 2717]
Adam Fritzler <mid@auk.cx>
parents: 2703
diff changeset
1411
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1412 purple_connection_update_progress(gc, _("Received authorization"), 3, OSCAR_CONNECT_STEPS);
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
1413 ck[3] = 0x64;
7282
73b94979f76b [gaim-migrate @ 7861]
Mark Doliner <markdoliner@pidgin.im>
parents: 7261
diff changeset
1414
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1415 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1416 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1417
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1418 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1419 purple_parse_auth_securid_request_yes_cb(gpointer user_data, const char *msg)
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1420 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1421 PurpleConnection *gc = user_data;
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1422 OscarData *od = gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1423
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1424 aim_auth_securid_send(od, msg);
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1425 }
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1426
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1427 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1428 purple_parse_auth_securid_request_no_cb(gpointer user_data, const char *value)
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1429 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1430 PurpleConnection *gc = user_data;
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1431
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1432 /* Disconnect */
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1433 gc->wants_to_die = TRUE;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1434 purple_connection_error(gc, _("The SecurID key entered is invalid."));
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1435 }
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1436
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1437 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1438 purple_parse_auth_securid_request(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1439 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1440 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1441 PurpleAccount *account = purple_connection_get_account(gc);
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1442 gchar *primary;
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1443
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1444 purple_debug_info("oscar", "Got SecurID request\n");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1445
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1446 primary = g_strdup_printf("Enter the SecurID key for %s.", purple_account_get_username(account));
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
1447 purple_request_input_with_hint(gc, NULL, _("Enter SecurID"), primary,
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1448 _("Enter the 6 digit number from the digital display."),
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1449 FALSE, FALSE, NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1450 _("_OK"), G_CALLBACK(purple_parse_auth_securid_request_yes_cb),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1451 _("_Cancel"), G_CALLBACK(purple_parse_auth_securid_request_no_cb),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
1452 account, NULL, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
1453 "account", gc);
10464
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1454 g_free(primary);
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1455
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1456 return 1;
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1457 }
034b1b3ad2be [gaim-migrate @ 11739]
Mark Doliner <markdoliner@pidgin.im>
parents: 10458
diff changeset
1458
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1459 /* XXX - Should use purple_util_fetch_url for the below stuff */
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1460 struct pieceofcrap {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1461 PurpleConnection *gc;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1462 unsigned long offset;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1463 unsigned long len;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1464 char *modname;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1465 int fd;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1466 FlapConnection *conn;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1467 unsigned int inpa;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1468 };
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1469
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1470 static void damn_you(gpointer data, gint source, PurpleInputCondition c)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1471 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1472 struct pieceofcrap *pos = data;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
1473 OscarData *od = pos->gc->proto_data;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1474 char in = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1475 int x = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1476 unsigned char m[17];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1477
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1478 while (read(pos->fd, &in, 1) == 1) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1479 if (in == '\n')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1480 x++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1481 else if (in != '\r')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1482 x = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1483 if (x == 2)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1484 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1485 in = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1486 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1487 if (in != '\n') {
4056
d75ee349aaa4 [gaim-migrate @ 4266]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 3952
diff changeset
1488 char buf[256];
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
1489 g_snprintf(buf, sizeof(buf), _("You may be disconnected shortly. You may want to use TOC until "
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1490 "this is fixed. Check %s for updates."), PURPLE_WEBSITE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1491 purple_notify_warning(pos->gc, NULL,
15444
b793ef258d23 I think this changes every user-visible string that contains 'Gaim.' We probably want the UI to be able
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1492 _("Unable to get a valid AIM login hash."),
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
1493 buf);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1494 purple_input_remove(pos->inpa);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1495 close(pos->fd);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1496 g_free(pos);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1497 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1498 }
13663
de16367fd001 [gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents: 13655
diff changeset
1499 if (read(pos->fd, m, 16) != 16)
de16367fd001 [gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents: 13655
diff changeset
1500 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1501 purple_debug_warning("oscar", "Could not read full AIM login hash "
13663
de16367fd001 [gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents: 13655
diff changeset
1502 "from " AIMHASHDATA "--that's bad.\n");
de16367fd001 [gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents: 13655
diff changeset
1503 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1504 m[16] = '\0';
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1505 purple_debug_misc("oscar", "Sending hash: ");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1506 for (x = 0; x < 16; x++)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1507 purple_debug_misc(NULL, "%02hhx ", (unsigned char)m[x]);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1508
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1509 purple_debug_misc(NULL, "\n");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1510 purple_input_remove(pos->inpa);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1511 close(pos->fd);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1512 aim_sendmemblock(od, pos->conn, 0, 16, m, AIM_SENDMEMBLOCK_FLAG_ISHASH);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1513 g_free(pos);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1514 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1515
14151
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
1516 static void
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1517 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
1518 {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1519 struct pieceofcrap *pos = data;
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
1520 gchar *buf;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1521
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1522 if (!PURPLE_CONNECTION_IS_VALID(pos->gc))
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1523 {
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1524 g_free(pos->modname);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1525 g_free(pos);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1526 return;
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1527 }
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1528
4366
d2b52a5ff6fc [gaim-migrate @ 4632]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4359
diff changeset
1529 pos->fd = source;
d2b52a5ff6fc [gaim-migrate @ 4632]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 4359
diff changeset
1530
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1531 if (source < 0) {
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
1532 buf = g_strdup_printf(_("You may be disconnected shortly. You may want to use TOC until "
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1533 "this is fixed. Check %s for updates."), PURPLE_WEBSITE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1534 purple_notify_warning(pos->gc, NULL,
15444
b793ef258d23 I think this changes every user-visible string that contains 'Gaim.' We probably want the UI to be able
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1535 _("Unable to get a valid AIM login hash."),
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
1536 buf);
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
1537 g_free(buf);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1538 g_free(pos->modname);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1539 g_free(pos);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1540 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1541 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1542
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
1543 buf = g_strdup_printf("GET " AIMHASHDATA "?offset=%ld&len=%ld&modname=%s HTTP/1.0\n\n",
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1544 pos->offset, pos->len, pos->modname ? pos->modname : "");
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1545 write(pos->fd, buf, strlen(buf));
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
1546 g_free(buf);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1547 g_free(pos->modname);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1548 pos->inpa = purple_input_add(pos->fd, PURPLE_INPUT_READ, damn_you, pos);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1549 return;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1550 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1551
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1552 /* size of icbmui.ocm, the largest module in AIM 3.5 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1553 #define AIM_MAX_FILE_SIZE 98304
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1554
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1555 int purple_memrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1556 va_list ap;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1557 struct pieceofcrap *pos;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
1558 guint32 offset, len;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1559 char *modname;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1560
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1561 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
1562 offset = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
1563 len = va_arg(ap, guint32);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1564 modname = va_arg(ap, char *);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1565 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1566
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1567 purple_debug_misc("oscar", "offset: %u, len: %u, file: %s\n",
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
1568 offset, len, (modname ? modname : "aim.exe"));
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
1569
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1570 if (len == 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1571 purple_debug_misc("oscar", "len is 0, hashing NULL\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1572 aim_sendmemblock(od, conn, offset, len, NULL,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1573 AIM_SENDMEMBLOCK_FLAG_ISREQUEST);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1574 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1575 }
9625
f2cda8836eb9 [gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents: 9620
diff changeset
1576 /* 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
1577 #if 0
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1578 if (offset > AIM_MAX_FILE_SIZE || len > AIM_MAX_FILE_SIZE) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1579 char *buf;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1580 int i = 8;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1581 if (modname)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1582 i += strlen(modname);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1583 buf = g_malloc(i);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1584 i = 0;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1585 if (modname) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1586 memcpy(buf, modname, strlen(modname));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1587 i += strlen(modname);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1588 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1589 buf[i++] = offset & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1590 buf[i++] = (offset >> 8) & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1591 buf[i++] = (offset >> 16) & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1592 buf[i++] = (offset >> 24) & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1593 buf[i++] = len & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1594 buf[i++] = (len >> 8) & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1595 buf[i++] = (len >> 16) & 0xff;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1596 buf[i++] = (len >> 24) & 0xff;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1597 purple_debug_misc("oscar", "len + offset is invalid, "
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
1598 "hashing request\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1599 aim_sendmemblock(od, command->conn, offset, i, buf, AIM_SENDMEMBLOCK_FLAG_ISREQUEST);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1600 g_free(buf);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1601 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1602 }
9625
f2cda8836eb9 [gaim-migrate @ 10469]
Mark Doliner <markdoliner@pidgin.im>
parents: 9620
diff changeset
1603 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1604
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1605 pos = g_new0(struct pieceofcrap, 1);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1606 pos->gc = od->gc;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1607 pos->conn = conn;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1608
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1609 pos->offset = offset;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1610 pos->len = len;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 14088
diff changeset
1611 pos->modname = g_strdup(modname);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1612
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1613 /* TODO: Keep track of this return value. */
15927
009137ac8bb8 I don't know if the OSCAR checksum stuff will be copied to pidgin.im, but it certainly won't be at a website that's not ours (wrong because of the sed).
Richard Laager <rlaager@pidgin.im>
parents: 15926
diff changeset
1614 if (purple_proxy_connect(NULL, pos->gc->account, "pidgin.im", 80,
14170
f611621bc8a0 [gaim-migrate @ 16742]
Mark Doliner <markdoliner@pidgin.im>
parents: 14151
diff changeset
1615 straight_to_hell, pos) == NULL)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1616 {
4056
d75ee349aaa4 [gaim-migrate @ 4266]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 3952
diff changeset
1617 char buf[256];
17541
287a70d8189f Add some notes about why Yahoo! web messenger login doesn't work
Mark Doliner <markdoliner@pidgin.im>
parents: 17444
diff changeset
1618 g_free(pos->modname);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1619 g_free(pos);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1620 g_snprintf(buf, sizeof(buf), _("You may be disconnected shortly. "
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1621 "Check %s for updates."), PURPLE_WEBSITE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1622 purple_notify_warning(pos->gc, NULL,
15444
b793ef258d23 I think this changes every user-visible string that contains 'Gaim.' We probably want the UI to be able
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1623 _("Unable to get a valid login hash."),
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
1624 buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1625 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1626
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1627 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1628 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1629
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1630 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1631 purple_parse_login(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1632 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1633 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1634 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1635 ClientInfo info = CLIENTINFO_PURPLE;
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
1636 va_list ap;
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
1637 char *key;
17279
2a86b738c7a8 Fix signing on to AIM with an AOL screen name with a password of more
Mark Doliner <markdoliner@pidgin.im>
parents: 17226
diff changeset
1638 gboolean truncate_pass;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1639
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1640 gc = od->gc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1641 account = purple_connection_get_account(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1642
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1643 va_start(ap, fr);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1644 key = va_arg(ap, char *);
17279
2a86b738c7a8 Fix signing on to AIM with an AOL screen name with a password of more
Mark Doliner <markdoliner@pidgin.im>
parents: 17226
diff changeset
1645 truncate_pass = va_arg(ap, int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1646 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1647
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1648 aim_send_login(od, conn, purple_account_get_username(account),
17279
2a86b738c7a8 Fix signing on to AIM with an AOL screen name with a password of more
Mark Doliner <markdoliner@pidgin.im>
parents: 17226
diff changeset
1649 purple_connection_get_password(gc), truncate_pass,
2a86b738c7a8 Fix signing on to AIM with an AOL screen name with a password of more
Mark Doliner <markdoliner@pidgin.im>
parents: 17226
diff changeset
1650 &info, key);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1651
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1652 purple_connection_update_progress(gc, _("Password sent"), 2, OSCAR_CONNECT_STEPS);
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
1653 ck[2] = 0x6c;
7282
73b94979f76b [gaim-migrate @ 7861]
Mark Doliner <markdoliner@pidgin.im>
parents: 7261
diff changeset
1654
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1655 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1656 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1657
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1658 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1659 purple_handle_redirect(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1660 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1661 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1662 PurpleAccount *account = purple_connection_get_account(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1663 char *host, *separator;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1664 int port;
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1665 FlapConnection *newconn;
4821
9107fba2dbe5 [gaim-migrate @ 5146]
Mark Doliner <markdoliner@pidgin.im>
parents: 4820
diff changeset
1666 va_list ap;
9107fba2dbe5 [gaim-migrate @ 5146]
Mark Doliner <markdoliner@pidgin.im>
parents: 4820
diff changeset
1667 struct aim_redirect_data *redir;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1668
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1669 va_start(ap, fr);
2821
f1ab7f03bdad [gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1670 redir = va_arg(ap, struct aim_redirect_data *);
f1ab7f03bdad [gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1671 va_end(ap);
f1ab7f03bdad [gaim-migrate @ 2834]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2820
diff changeset
1672
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1673 port = purple_account_get_int(account, "port", OSCAR_DEFAULT_LOGIN_PORT);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1674 separator = strchr(redir->ip, ':');
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1675 if (separator != NULL)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1676 {
14011
9c117eecf1c6 [gaim-migrate @ 16492]
Mark Doliner <markdoliner@pidgin.im>
parents: 13970
diff changeset
1677 host = g_strndup(redir->ip, separator - redir->ip);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1678 port = atoi(separator + 1);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1679 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1680 else
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1681 host = g_strdup(redir->ip);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1682
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1683 purple_debug_info("oscar", "Connecting to FLAP server %s:%d of type 0x%04hx\n",
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1684 host, port, redir->group);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1685 newconn = flap_connection_new(od, redir->group);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1686 newconn->cookielen = redir->cookielen;
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1687 newconn->cookie = g_memdup(redir->cookie, redir->cookielen);
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1688 if (newconn->type == SNAC_FAMILY_CHAT)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1689 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1690 struct chat_connection *cc;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1691 cc = g_new0(struct chat_connection, 1);
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1692 cc->conn = newconn;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1693 cc->gc = gc;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1694 cc->name = g_strdup(redir->chat.room);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1695 cc->exchange = redir->chat.exchange;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1696 cc->instance = redir->chat.instance;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1697 cc->show = extract_name(redir->chat.room);
14324
8cbedd82b6ac [gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
1698 newconn->new_conn_data = cc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1699 purple_debug_info("oscar", "Connecting to chat room %s exchange %hu\n", cc->name, cc->exchange);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1700 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1701
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1702 newconn->connect_data = purple_proxy_connect(NULL, account, host, port,
14171
351b731b9553 [gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents: 14170
diff changeset
1703 connection_established_cb, newconn);
14324
8cbedd82b6ac [gaim-migrate @ 16944]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
1704 if (newconn->connect_data == NULL)
13632
35dd31f81593 [gaim-migrate @ 16020]
Mark Doliner <markdoliner@pidgin.im>
parents: 13609
diff changeset
1705 {
14454
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1706 flap_connection_schedule_destroy(newconn,
df290cda81a3 [gaim-migrate @ 17099]
Mark Doliner <markdoliner@pidgin.im>
parents: 14416
diff changeset
1707 OSCAR_DISCONNECT_COULD_NOT_CONNECT,
14899
c65f0b4fb351 [gaim-migrate @ 17606]
Mark Doliner <markdoliner@pidgin.im>
parents: 14706
diff changeset
1708 _("Unable to initialize connection"));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1709 purple_debug_error("oscar", "Unable to connect to FLAP server "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1710 "of type 0x%04hx\n", redir->group);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1711 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1712 g_free(host);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1713
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1714 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1715 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1716
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1717 static int purple_parse_oncoming(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
1718 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1719 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1720 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1721 PurplePresence *presence;
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1722 struct buddyinfo *bi;
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
1723 time_t time_idle = 0, signon = 0;
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
1724 int type = 0;
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1725 gboolean buddy_is_away = FALSE;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1726 const char *status_id;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1727 gboolean have_status_message = FALSE;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1728 char *message = NULL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1729 va_list ap;
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1730 aim_userinfo_t *info;
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
1731
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1732 gc = od->gc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1733 account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1734 presence = purple_account_get_presence(account);
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
1735
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1736 va_start(ap, fr);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
1737 info = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1738 va_end(ap);
11973
42a29ebcf30b [gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents: 11965
diff changeset
1739
10130
7256fb884aaf [gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
1740 g_return_val_if_fail(info != NULL, 1);
7256fb884aaf [gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
1741 g_return_val_if_fail(info->sn != NULL, 1);
7256fb884aaf [gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
1742
4766
4fa5a774d200 [gaim-migrate @ 5084]
Mark Doliner <markdoliner@pidgin.im>
parents: 4763
diff changeset
1743 if (info->present & AIM_USERINFO_PRESENT_FLAGS) {
4fa5a774d200 [gaim-migrate @ 5084]
Mark Doliner <markdoliner@pidgin.im>
parents: 4763
diff changeset
1744 if (info->flags & AIM_FLAG_AWAY)
11369
8d396dd4633d [gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 11359
diff changeset
1745 buddy_is_away = TRUE;
8d396dd4633d [gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 11359
diff changeset
1746 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
1747 if (info->present & AIM_USERINFO_PRESENT_ICQEXTSTATUS) {
11510
8f618fb35bd3 [gaim-migrate @ 13755]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11495
diff changeset
1748 type = info->icqinfo.status;
3013
b937e542f50e [gaim-migrate @ 3026]
Sean Egan <seanegan@pidgin.im>
parents: 3009
diff changeset
1749 if (!(info->icqinfo.status & AIM_ICQ_STATE_CHAT) &&
b937e542f50e [gaim-migrate @ 3026]
Sean Egan <seanegan@pidgin.im>
parents: 3009
diff changeset
1750 (info->icqinfo.status != AIM_ICQ_STATE_NORMAL)) {
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
1751 buddy_is_away = TRUE;
3013
b937e542f50e [gaim-migrate @ 3026]
Sean Egan <seanegan@pidgin.im>
parents: 3009
diff changeset
1752 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
1753 }
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
1754
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
1755 if (aim_snvalid_icq(info->sn)) {
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1756 if (type & AIM_ICQ_STATE_CHAT)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1757 status_id = OSCAR_STATUS_ID_FREE4CHAT;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1758 else if (type & AIM_ICQ_STATE_DND)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1759 status_id = OSCAR_STATUS_ID_DND;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1760 else if (type & AIM_ICQ_STATE_OUT)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1761 status_id = OSCAR_STATUS_ID_NA;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1762 else if (type & AIM_ICQ_STATE_BUSY)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1763 status_id = OSCAR_STATUS_ID_OCCUPIED;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1764 else if (type & AIM_ICQ_STATE_AWAY)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1765 status_id = OSCAR_STATUS_ID_AWAY;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1766 else if (type & AIM_ICQ_STATE_INVISIBLE)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1767 status_id = OSCAR_STATUS_ID_INVISIBLE;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1768 else
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1769 status_id = OSCAR_STATUS_ID_AVAILABLE;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1770 } else {
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
1771 if (buddy_is_away)
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1772 status_id = OSCAR_STATUS_ID_AWAY;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1773 else
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1774 status_id = OSCAR_STATUS_ID_AVAILABLE;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1775 }
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1776
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1777 /*
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1778 * 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
1779 * 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
1780 * 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
1781 * support available messages and the user DOES NOT have one set.
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1782 * Otherwise info->status contains the available message.
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1783 */
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1784 if (info->status != NULL)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1785 {
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1786 have_status_message = TRUE;
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1787 if (info->status[0] != '\0')
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
1788 message = oscar_encoding_to_utf8(account, info->status_encoding,
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1789 info->status, info->status_len);
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1790 }
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1791
16851
e55f1961ad53 We're told by users that Hiptop is not the same thing as mobile, and should not be treated as such.
Sean Egan <seanegan@pidgin.im>
parents: 16821
diff changeset
1792 if (info->flags & AIM_FLAG_WIRELESS)
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1793 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1794 purple_prpl_got_user_status(account, info->sn, OSCAR_STATUS_ID_MOBILE, NULL);
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1795 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1796 purple_prpl_got_user_status_deactive(account, info->sn, OSCAR_STATUS_ID_MOBILE);
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1797 }
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1798
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1799 if (have_status_message)
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1800 {
16397
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1801 if ((status_id == OSCAR_STATUS_ID_AVAILABLE) && (info->itmsurl != NULL))
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1802 {
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1803 char *itmsurl;
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
1804 itmsurl = oscar_encoding_to_utf8(account, info->itmsurl_encoding,
16397
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1805 info->itmsurl, info->itmsurl_len);
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1806 purple_prpl_got_user_status(account, info->sn, status_id,
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1807 "message", message, "itmsurl", itmsurl, NULL);
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1808 g_free(itmsurl);
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1809 }
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1810 else
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1811 {
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1812 purple_prpl_got_user_status(account, info->sn, status_id,
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1813 "message", message, NULL);
68d0b988e78c Add the iTunes Music Store url to the GaimPresence for buddies onyour
Mark Doliner <markdoliner@pidgin.im>
parents: 16375
diff changeset
1814 }
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1815 g_free(message);
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1816 }
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
1817 else
15317
63821f4b1560 [gaim-migrate @ 18045]
Evan Schoenberg <evands@pidgin.im>
parents: 15310
diff changeset
1818 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1819 PurpleBuddy *b = purple_find_buddy(account, info->sn);
16120
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1820 PurpleStatus *status = NULL;
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1821 const char *active_status_id = NULL;
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1822
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1823 if (b != NULL) {
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1824 status = purple_presence_get_active_status(purple_buddy_get_presence(b));
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1825 active_status_id = purple_status_get_id(status);
8c2b1257b30a Avoid a possible NULL pointer dereference
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16076
diff changeset
1826 }
15684
8786ba0f06f6 Whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 15638
diff changeset
1827
15317
63821f4b1560 [gaim-migrate @ 18045]
Evan Schoenberg <evands@pidgin.im>
parents: 15310
diff changeset
1828 if (!active_status_id || strcmp(active_status_id, status_id))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1829 purple_prpl_got_user_status(account, info->sn, status_id, NULL);
15317
63821f4b1560 [gaim-migrate @ 18045]
Evan Schoenberg <evands@pidgin.im>
parents: 15310
diff changeset
1830 }
15684
8786ba0f06f6 Whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 15638
diff changeset
1831
12350
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1832 /* Login time stuff */
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
1833 if (info->present & AIM_USERINFO_PRESENT_ONLINESINCE)
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
1834 signon = info->onlinesince;
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
1835 else if (info->present & AIM_USERINFO_PRESENT_SESSIONLEN)
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
1836 signon = time(NULL) - info->sessionlen;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1837 if (!aim_sncmp(purple_account_get_username(account), info->sn)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1838 purple_connection_set_display_name(gc, info->sn);
17697
5495647b7b5c Get rid of the oscar time offset. This was an attempt at making sure
Mark Doliner <markdoliner@pidgin.im>
parents: 17693
diff changeset
1839 }
5495647b7b5c Get rid of the oscar time offset. This was an attempt at making sure
Mark Doliner <markdoliner@pidgin.im>
parents: 17693
diff changeset
1840 purple_prpl_got_user_login_time(account, info->sn, signon);
12350
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1841
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1842 /* Idle time stuff */
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1843 /* 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
1844 if (info->present & AIM_USERINFO_PRESENT_IDLE)
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1845 time_idle = time(NULL) - info->idletime * 60;
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1846
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1847 if (time_idle > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1848 purple_prpl_got_user_idle(account, info->sn, TRUE, time_idle);
12350
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1849 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1850 purple_prpl_got_user_idle(account, info->sn, FALSE, 0);
12350
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1851
f45d8434a759 [gaim-migrate @ 14654]
Mark Doliner <markdoliner@pidgin.im>
parents: 12349
diff changeset
1852 /* Server stored icon stuff */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1853 bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, info->sn));
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1854 if (!bi) {
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1855 bi = g_new0(struct buddyinfo, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1856 g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, info->sn)), bi);
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1857 }
4739
7263e3ceab43 [gaim-migrate @ 5054]
Mark Doliner <markdoliner@pidgin.im>
parents: 4738
diff changeset
1858 bi->typingnot = FALSE;
7263e3ceab43 [gaim-migrate @ 5054]
Mark Doliner <markdoliner@pidgin.im>
parents: 4738
diff changeset
1859 bi->ico_informed = FALSE;
6857
fd79da71b071 [gaim-migrate @ 7402]
Nickolai Zeldovich
parents: 6846
diff changeset
1860 bi->ipaddr = info->icqinfo.ipaddr;
fd79da71b071 [gaim-migrate @ 7402]
Nickolai Zeldovich
parents: 6846
diff changeset
1861
4853
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
1862 if (info->iconcsumlen) {
16534
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
1863 const char *saved_b16 = NULL;
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
1864 char *b16 = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1865 PurpleBuddy *b = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1866
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1867 b16 = purple_base16_encode(info->iconcsum, info->iconcsumlen);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1868 b = purple_find_buddy(account, info->sn);
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
1869 if (b != NULL)
16534
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
1870 saved_b16 = purple_buddy_icons_get_checksum_for_user(b);
7054
b3509b4108e9 [gaim-migrate @ 7617]
Herman Bloggs <herman@bluedigits.com>
parents: 7045
diff changeset
1871
4853
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
1872 if (!b16 || !saved_b16 || strcmp(b16, saved_b16)) {
19109
911a0b15644c Use g_slist_find_custom() instead of writing one ourselves
Mark Doliner <markdoliner@pidgin.im>
parents: 19108
diff changeset
1873 if (g_slist_find_custom(od->requesticon, info->sn,
911a0b15644c Use g_slist_find_custom() instead of writing one ourselves
Mark Doliner <markdoliner@pidgin.im>
parents: 19108
diff changeset
1874 (GCompareFunc)aim_sncmp) == NULL)
911a0b15644c Use g_slist_find_custom() instead of writing one ourselves
Mark Doliner <markdoliner@pidgin.im>
parents: 19108
diff changeset
1875 {
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
1876 od->requesticon = g_slist_prepend(od->requesticon,
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
1877 g_strdup(purple_normalize(account, info->sn)));
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
1878 purple_icons_fetch(gc);
4853
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
1879 }
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
1880 }
6053
d4f75efb6cbc [gaim-migrate @ 6503]
Nathan Walp <nwalp@pidgin.im>
parents: 6052
diff changeset
1881 g_free(b16);
4853
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
1882 }
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
1883
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1884 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1885 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1886
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1887 static void purple_check_comment(OscarData *od, const char *str) {
11159
76ef02141bcb [gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents: 11155
diff changeset
1888 if ((str == NULL) || strcmp(str, (const char *)ck))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1889 aim_locate_setcaps(od, purple_caps);
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
1890 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1891 aim_locate_setcaps(od, purple_caps | OSCAR_CAPABILITY_SECUREIM);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1892 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1893
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1894 static int purple_parse_offgoing(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1895 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1896 PurpleAccount *account = purple_connection_get_account(gc);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1897 va_list ap;
4739
7263e3ceab43 [gaim-migrate @ 5054]
Mark Doliner <markdoliner@pidgin.im>
parents: 4738
diff changeset
1898 aim_userinfo_t *info;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1899
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1900 va_start(ap, fr);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
1901 info = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1902 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1903
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1904 purple_prpl_got_user_status(account, info->sn, OSCAR_STATUS_ID_OFFLINE, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1905 purple_prpl_got_user_status_deactive(account, info->sn, OSCAR_STATUS_ID_MOBILE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1906 g_hash_table_remove(od->buddyinfo, purple_normalize(gc->account, info->sn));
5837
e75d4061396e [gaim-migrate @ 6268]
Mark Doliner <markdoliner@pidgin.im>
parents: 5836
diff changeset
1907
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1908 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1909 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1910
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
1911 static int incomingim_chan1(OscarData *od, FlapConnection *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch1_args *args) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1912 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1913 PurpleAccount *account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1914 PurpleMessageFlags flags = 0;
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1915 struct buddyinfo *bi;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1916 PurpleStoredImage *img;
9806
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1917 GString *message;
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1918 gchar *tmp;
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1919 aim_mpmsg_section_t *curpart;
13734
fd3b79cb8e4b [gaim-migrate @ 16143]
Mark Doliner <markdoliner@pidgin.im>
parents: 13730
diff changeset
1920 const char *start, *end;
12675
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
1921 GData *attribs;
9806
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1922
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1923 purple_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
1924 userinfo->sn, args->mpmsg.numparts);
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1925
10595
1338add2b0b0 [gaim-migrate @ 12010]
Mark Doliner <markdoliner@pidgin.im>
parents: 10594
diff changeset
1926 if (args->mpmsg.numparts == 0)
1338add2b0b0 [gaim-migrate @ 12010]
Mark Doliner <markdoliner@pidgin.im>
parents: 10594
diff changeset
1927 return 1;
1338add2b0b0 [gaim-migrate @ 12010]
Mark Doliner <markdoliner@pidgin.im>
parents: 10594
diff changeset
1928
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1929 bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->sn));
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1930 if (!bi) {
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1931 bi = g_new0(struct buddyinfo, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1932 g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, userinfo->sn)), bi);
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1933 }
2273
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2249
diff changeset
1934
b7c08d737d81 [gaim-migrate @ 2283]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2249
diff changeset
1935 if (args->icbmflags & AIM_IMFLAGS_AWAY)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1936 flags |= PURPLE_MESSAGE_AUTO_RESP;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1937
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1938 if (args->icbmflags & AIM_IMFLAGS_TYPINGNOT)
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1939 bi->typingnot = TRUE;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1940 else
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1941 bi->typingnot = FALSE;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1942
4380
c7c7beab8e56 [gaim-migrate @ 4646]
Mark Doliner <markdoliner@pidgin.im>
parents: 4374
diff changeset
1943 if ((args->icbmflags & AIM_IMFLAGS_HASICON) && (args->iconlen) && (args->iconsum) && (args->iconstamp)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1944 purple_debug_misc("oscar", "%s has an icon\n", userinfo->sn);
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1945 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
1946 bi->ico_need = TRUE;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1947 bi->ico_len = args->iconlen;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1948 bi->ico_csum = args->iconsum;
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
1949 bi->ico_time = args->iconstamp;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1950 }
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1951 }
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1952
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1953 img = purple_buddy_icons_find_account_icon(account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1954 if ((img != NULL) &&
7406
b0e59cabc315 [gaim-migrate @ 8006]
Sean Egan <seanegan@pidgin.im>
parents: 7389
diff changeset
1955 (args->icbmflags & AIM_IMFLAGS_BUDDYREQ) && !bi->ico_sent && bi->ico_informed) {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1956 gconstpointer data = purple_imgstore_get_data(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1957 size_t len = purple_imgstore_get_size(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1958 purple_debug_info("oscar",
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1959 "Sending buddy icon to %s (%d bytes)\n",
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1960 userinfo->sn, len);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1961 aim_im_sendch2_icon(od, userinfo->sn, data, len,
16677
7cd57586cdbf The OSCAR timestamp stuff.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
1962 purple_buddy_icons_get_account_icon_timestamp(account),
7cd57586cdbf The OSCAR timestamp stuff.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
1963 aimutil_iconsum(data, len));
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1964 }
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
1965 purple_imgstore_unref(img);
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
1966
9806
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1967 message = g_string_new("");
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1968 curpart = args->mpmsg.parts;
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1969 while (curpart != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1970 tmp = purple_plugin_oscar_decode_im_part(account, userinfo->sn, curpart->charset,
12675
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
1971 curpart->charsubset, curpart->data, curpart->datalen);
9806
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1972 if (tmp != NULL) {
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1973 g_string_append(message, tmp);
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1974 g_free(tmp);
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1975 }
9806
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1976
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1977 curpart = curpart->next;
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1978 }
6b4ad56649c6 [gaim-migrate @ 10674]
Mark Doliner <markdoliner@pidgin.im>
parents: 9801
diff changeset
1979 tmp = g_string_free(message, FALSE);
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
1980
8666
582a118d6b91 [gaim-migrate @ 9418]
Mark Doliner <markdoliner@pidgin.im>
parents: 8660
diff changeset
1981 /*
10781
0685b98c081c [gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents: 10753
diff changeset
1982 * If the message is from an ICQ user and to an ICQ user then escape any HTML,
9016
69f5ff966dc7 [gaim-migrate @ 9792]
Luke Schierer <lschiere@pidgin.im>
parents: 9015
diff changeset
1983 * 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
1984 * 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
1985 * replaced with <br>
8995
f35860fdf94d [gaim-migrate @ 9770]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8993
diff changeset
1986 *
f35860fdf94d [gaim-migrate @ 9770]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8993
diff changeset
1987 * Note: There *may* be some clients which send messages as HTML formatted -
f35860fdf94d [gaim-migrate @ 9770]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8993
diff changeset
1988 * they need to be special-cased somehow.
8666
582a118d6b91 [gaim-migrate @ 9418]
Mark Doliner <markdoliner@pidgin.im>
parents: 8660
diff changeset
1989 */
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
1990 if (aim_snvalid_icq(purple_account_get_username(account)) && aim_snvalid_icq(userinfo->sn)) {
8995
f35860fdf94d [gaim-migrate @ 9770]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8993
diff changeset
1991 /* 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
1992 gchar *tmp2 = g_markup_escape_text(tmp, -1);
8493
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
1993 g_free(tmp);
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
1994 tmp = tmp2;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
1995 tmp2 = purple_strreplace(tmp, "\r\n", "<br>");
10781
0685b98c081c [gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents: 10753
diff changeset
1996 g_free(tmp);
0685b98c081c [gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents: 10753
diff changeset
1997 tmp = tmp2;
8493
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
1998 }
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
1999
12675
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2000 /*
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2001 * Convert iChat color tags to normal font tags.
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2002 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2003 if (purple_markup_find_tag("body", tmp, &start, &end, &attribs))
12675
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2004 {
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2005 const char *ichattextcolor, *ichatballooncolor;
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2006
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2007 ichattextcolor = g_datalist_get_data(&attribs, "ichattextcolor");
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2008 if (ichattextcolor != NULL)
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2009 {
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2010 gchar *tmp2;
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2011 tmp2 = g_strdup_printf("<font color=\"%s\">%s</font>", ichattextcolor, tmp);
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2012 g_free(tmp);
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2013 tmp = tmp2;
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2014 }
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2015
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2016 ichatballooncolor = g_datalist_get_data(&attribs, "ichatballooncolor");
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2017 if (ichatballooncolor != NULL)
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2018 {
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2019 gchar *tmp2;
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2020 tmp2 = g_strdup_printf("<font back=\"%s\">%s</font>", ichatballooncolor, tmp);
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2021 g_free(tmp);
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2022 tmp = tmp2;
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2023 }
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2024
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2025 g_datalist_clear(&attribs);
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2026 }
7eacb2160c67 [gaim-migrate @ 15018]
Mark Doliner <markdoliner@pidgin.im>
parents: 12663
diff changeset
2027
6982
12f08de92674 [gaim-migrate @ 7538]
Mark Doliner <markdoliner@pidgin.im>
parents: 6907
diff changeset
2028 serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL));
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2029 g_free(tmp);
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2030
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2031 return 1;
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2032 }
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2033
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2034 static int
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2035 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
2036 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2037 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2038 PurpleAccount *account;
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2039 char *message = NULL;
9070
0a1be3596770 [gaim-migrate @ 9846]
Tim Ringenbach <marv@pidgin.im>
parents: 9058
diff changeset
2040
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2041 g_return_val_if_fail(od != NULL, 0);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2042 g_return_val_if_fail(od->gc != NULL, 0);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2043
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2044 gc = od->gc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2045 account = purple_connection_get_account(gc);
9070
0a1be3596770 [gaim-migrate @ 9846]
Tim Ringenbach <marv@pidgin.im>
parents: 9058
diff changeset
2046 od = gc->proto_data;
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2047
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2048 if (args == NULL)
4121
42fc01bee50b [gaim-migrate @ 4338]
Rob Flynn <gaim@robflynn.com>
parents: 4120
diff changeset
2049 return 0;
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
2050
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2051 purple_debug_misc("oscar", "Incoming rendezvous message of type %u, "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2052 "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
2053
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2054 if (args->msg != NULL)
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2055 {
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2056 if (args->encoding != NULL)
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2057 {
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2058 char *encoding = NULL;
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2059 encoding = oscar_encoding_extract(args->encoding);
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2060 message = oscar_encoding_to_utf8(account, encoding, args->msg,
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2061 args->msglen);
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2062 g_free(encoding);
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2063 } else {
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2064 if (g_utf8_validate(args->msg, args->msglen, NULL))
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2065 message = g_strdup(args->msg);
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2066 }
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2067 }
2869
3165d3aff6c0 [gaim-migrate @ 2882]
Adam Fritzler <mid@auk.cx>
parents: 2866
diff changeset
2068
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2069 if (args->type & OSCAR_CAPABILITY_CHAT)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2070 {
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2071 char *encoding, *utf8name, *tmp;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
2072 GHashTable *components;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
2073
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2074 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
2075 g_free(message);
4121
42fc01bee50b [gaim-migrate @ 4338]
Rob Flynn <gaim@robflynn.com>
parents: 4120
diff changeset
2076 return 1;
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2077 }
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2078 encoding = args->encoding ? oscar_encoding_extract(args->encoding) : NULL;
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2079 utf8name = oscar_encoding_to_utf8(account, encoding,
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2080 args->info.chat.roominfo.name,
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2081 args->info.chat.roominfo.namelen);
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2082 g_free(encoding);
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2083
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2084 tmp = extract_name(utf8name);
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2085 if (tmp != NULL)
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2086 {
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2087 g_free(utf8name);
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2088 utf8name = tmp;
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2089 }
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2090
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
2091 components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
2092 g_free);
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2093 g_hash_table_replace(components, g_strdup("room"), utf8name);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2094 g_hash_table_replace(components, g_strdup("exchange"),
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2095 g_strdup_printf("%d", args->info.chat.roominfo.exchange));
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2096 serv_got_chat_invite(gc,
15308
2bfe4510454e [gaim-migrate @ 18036]
Mark Doliner <markdoliner@pidgin.im>
parents: 15305
diff changeset
2097 utf8name,
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2098 userinfo->sn,
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2099 message,
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
2100 components);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2101 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2102
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2103 else if ((args->type & OSCAR_CAPABILITY_SENDFILE) ||
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2104 (args->type & OSCAR_CAPABILITY_DIRECTIM))
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2105 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2106 if (args->status == AIM_RENDEZVOUS_PROPOSE)
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 peer_connection_got_proposition(od, userinfo->sn, message, args);
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 else if (args->status == AIM_RENDEZVOUS_CANCEL)
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 /* The other user canceled a peer request */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2113 PeerConnection *conn;
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 conn = peer_connection_find_by_cookie(od, userinfo->sn, args->cookie);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2116 /*
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2117 * 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
2118 * a connection with that user. They may be trying to
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2119 * do something malicious.
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2120 */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2121 if (conn != NULL)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2122 {
14464
b7bca43f75b3 [gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents: 14454
diff changeset
2123 peer_connection_destroy(conn, OSCAR_DISCONNECT_REMOTE_CLOSED, NULL);
11369
8d396dd4633d [gaim-migrate @ 13593]
Jonathan Clark <ardentlygnarly@users.sourceforge.net>
parents: 11359
diff changeset
2124 }
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2125 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2126 else if (args->status == AIM_RENDEZVOUS_CONNECTED)
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 /*
19865
6e7c06b4aa3d Start watching the listener socket immediately after it's created
Mark Doliner <markdoliner@pidgin.im>
parents: 19859
diff changeset
2129 * Remote user has accepted our peer request. If we
6e7c06b4aa3d Start watching the listener socket immediately after it's created
Mark Doliner <markdoliner@pidgin.im>
parents: 19859
diff changeset
2130 * wanted to we could look up the PeerConnection using
6e7c06b4aa3d Start watching the listener socket immediately after it's created
Mark Doliner <markdoliner@pidgin.im>
parents: 19859
diff changeset
2131 * args->cookie, but we don't need to do anything here.
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2132 */
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2133 }
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2134 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2135
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2136 else if (args->type & OSCAR_CAPABILITY_GETFILE)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2137 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2138 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2139
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2140 else if (args->type & OSCAR_CAPABILITY_TALK)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2141 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2142 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2143
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2144 else if (args->type & OSCAR_CAPABILITY_BUDDYICON)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2145 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2146 purple_buddy_icons_set_for_user(account, userinfo->sn,
16539
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
2147 g_memdup(args->info.icon.icon, args->info.icon.length),
16534
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
2148 args->info.icon.length,
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
2149 NULL);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2150 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2151
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2152 else if (args->type & OSCAR_CAPABILITY_ICQSERVERRELAY)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2153 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2154 purple_debug_error("oscar", "Got an ICQ Server Relay message of "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2155 "type %d\n", args->info.rtfmsg.msgtype);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2156 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2157
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2158 else
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2159 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2160 purple_debug_error("oscar", "Unknown request class %hu\n",
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2161 args->type);
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2162 }
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2163
9933
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2164 g_free(message);
61bd3fadbfe6 [gaim-migrate @ 10825]
Dave West <kat@users.sourceforge.net>
parents: 9927
diff changeset
2165
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2166 return 1;
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2167 }
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2168
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2169 /*
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2170 * Authorization Functions
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
2171 * 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
2172 * methods of authorization (SSI and old-school channel 4 ICBM)
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2173 */
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
2174 /* When you ask other people for authorization */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2175 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2176 purple_auth_request(struct name_data *data, char *msg)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2177 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2178 PurpleConnection *gc;
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2179 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2180 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2181 PurpleGroup *group;
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2182
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2183 gc = data->gc;
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2184 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2185 buddy = purple_find_buddy(purple_connection_get_account(gc), data->name);
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2186 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2187 group = purple_buddy_get_group(buddy);
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2188 else
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2189 group = NULL;
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2190
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2191 if (group != NULL)
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2192 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2193 purple_debug_info("oscar", "ssi: adding buddy %s to group %s\n",
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2194 buddy->name, group->name);
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
2195 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
2196 if (!aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY))
17444
60929f040c86 Clean up some other ssi-related things. This commit and my last one
Mark Doliner <markdoliner@pidgin.im>
parents: 17279
diff changeset
2197 aim_ssi_addbuddy(od, buddy->name, group->name, NULL, purple_buddy_get_alias_only(buddy), NULL, NULL, TRUE);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2198 }
4337
f74d112ccb7c [gaim-migrate @ 4601]
Mark Doliner <markdoliner@pidgin.im>
parents: 4336
diff changeset
2199 }
f74d112ccb7c [gaim-migrate @ 4601]
Mark Doliner <markdoliner@pidgin.im>
parents: 4336
diff changeset
2200
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2201 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2202 purple_auth_dontrequest(struct name_data *data)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2203 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2204 PurpleConnection *gc = data->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2205 PurpleBuddy *b = purple_find_buddy(purple_connection_get_account(gc), data->name);
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2206
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2207 /* Remove from local list */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2208 purple_blist_remove_buddy(b);
4244
3a0952e07004 [gaim-migrate @ 4494]
Mark Doliner <markdoliner@pidgin.im>
parents: 4243
diff changeset
2209
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
2210 oscar_free_name_data(data);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2211 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2212
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
2213
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2214 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2215 purple_auth_sendrequest(PurpleConnection *gc, const char *name)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2216 {
15115
6233e27145ee [gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents: 15074
diff changeset
2217 struct name_data *data;
6233e27145ee [gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents: 15074
diff changeset
2218
6233e27145ee [gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents: 15074
diff changeset
2219 data = g_new0(struct name_data, 1);
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
2220 data->gc = gc;
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
2221 data->name = g_strdup(name);
15115
6233e27145ee [gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents: 15074
diff changeset
2222
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
2223 purple_request_input_with_hint(data->gc, NULL, _("Authorization Request Message:"),
15115
6233e27145ee [gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents: 15074
diff changeset
2224 NULL, _("Please authorize me!"), TRUE, FALSE, NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2225 _("_OK"), G_CALLBACK(purple_auth_request),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2226 _("_Cancel"), G_CALLBACK(purple_auth_dontrequest),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
2227 purple_connection_get_account(gc), name, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
2228 "blist", data);
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
2229 }
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
2230
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
2231
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2232 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2233 purple_auth_sendrequest_menu(PurpleBlistNode *node, gpointer ignored)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2234 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2235 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2236 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2237
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2238 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2239
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2240 buddy = (PurpleBuddy *) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2241 gc = purple_account_get_connection(buddy->account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2242 purple_auth_sendrequest(gc, buddy->name);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
2243 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
2244
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2245 /* When other people ask you for authorization */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2246 static void
19335
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
2247 purple_auth_grant(gpointer cbdata)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2248 {
19335
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
2249 struct name_data *data = cbdata;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2250 PurpleConnection *gc = data->gc;
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2251 OscarData *od = gc->proto_data;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2252
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2253 aim_ssi_sendauthreply(od, data->name, 0x01, NULL);
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);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2256 }
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2257
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2258 /* When other people ask you for authorization */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2259 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2260 purple_auth_dontgrant(struct name_data *data, char *msg)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2261 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2262 PurpleConnection *gc = data->gc;
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2263 OscarData *od = gc->proto_data;
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2264
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2265 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
2266 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2267
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2268 static void
19335
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
2269 purple_auth_dontgrant_msgprompt(gpointer cbdata)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2270 {
19335
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
2271 struct name_data *data = cbdata;
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
2272 purple_request_input_with_hint(data->gc, NULL, _("Authorization Denied Message:"),
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8670
diff changeset
2273 NULL, _("No reason given."), TRUE, FALSE, NULL,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2274 _("_OK"), G_CALLBACK(purple_auth_dontgrant),
15356
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
2275 _("_Cancel"), G_CALLBACK(oscar_free_name_data),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
2276 purple_connection_get_account(data->gc), data->name, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
2277 "blist", data);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2278 }
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2279
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2280 /* When someone sends you buddies */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2281 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2282 purple_icq_buddyadd(struct name_data *data)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2283 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2284 PurpleConnection *gc = data->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2285
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2286 purple_blist_request_add_buddy(purple_connection_get_account(gc), data->name, NULL, data->nick);
4244
3a0952e07004 [gaim-migrate @ 4494]
Mark Doliner <markdoliner@pidgin.im>
parents: 4243
diff changeset
2287
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
2288 oscar_free_name_data(data);
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2289 }
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2290
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2291 static int
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2292 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
2293 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2294 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2295 PurpleAccount *account = purple_connection_get_account(gc);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2296 gchar **msg1, **msg2;
6051
6d481c30603c [gaim-migrate @ 6501]
Mark Doliner <markdoliner@pidgin.im>
parents: 6040
diff changeset
2297 int i, numtoks;
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2298
4121
42fc01bee50b [gaim-migrate @ 4338]
Rob Flynn <gaim@robflynn.com>
parents: 4120
diff changeset
2299 if (!args->type || !args->msg || !args->uin)
42fc01bee50b [gaim-migrate @ 4338]
Rob Flynn <gaim@robflynn.com>
parents: 4120
diff changeset
2300 return 1;
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
2301
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2302 purple_debug_info("oscar",
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2303 "Received a channel 4 message of type 0x%02hx.\n",
9908
e9b6e5a8bf00 [gaim-migrate @ 10800]
Mark Doliner <markdoliner@pidgin.im>
parents: 9879
diff changeset
2304 args->type);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2305
9919
938f9e7a4db9 [gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
2306 /*
938f9e7a4db9 [gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
2307 * Split up the message at the delimeter character, then convert each
938f9e7a4db9 [gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
2308 * 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
2309 * 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
2310 * character in whatever encoding the message was sent in. Type 1
938f9e7a4db9 [gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
2311 * 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
2312 * 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
2313 * most 1 baby string.
938f9e7a4db9 [gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
2314 */
938f9e7a4db9 [gaim-migrate @ 10811]
Mark Doliner <markdoliner@pidgin.im>
parents: 9917
diff changeset
2315 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
2316 for (numtoks=0; msg1[numtoks]; numtoks++);
6d481c30603c [gaim-migrate @ 6501]
Mark Doliner <markdoliner@pidgin.im>
parents: 6040
diff changeset
2317 msg2 = (gchar **)g_malloc((numtoks+1)*sizeof(gchar *));
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2318 for (i=0; msg1[i]; i++) {
15303
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
2319 gchar *uin = g_strdup_printf("%u", args->uin);
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
2320
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2321 purple_str_strip_char(msg1[i], '\r');
14464
b7bca43f75b3 [gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents: 14454
diff changeset
2322 /* TODO: Should use an encoding other than ASCII? */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2323 msg2[i] = purple_plugin_oscar_decode_im_part(account, uin, AIM_CHARSET_ASCII, 0x0000, msg1[i], strlen(msg1[i]));
15303
40bf2610a143 [gaim-migrate @ 18031]
Evan Schoenberg <evands@pidgin.im>
parents: 15274
diff changeset
2324 g_free(uin);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2325 }
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2326 msg2[i] = NULL;
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2327
3952
d13e1fde68d8 [gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents: 3912
diff changeset
2328 switch (args->type) {
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2329 case 0x01: { /* MacICQ message or basic offline message */
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2330 if (i >= 1) {
5556
5d64702e975b [gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents: 5542
diff changeset
2331 gchar *uin = g_strdup_printf("%u", args->uin);
8493
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
2332 gchar *tmp;
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
2333
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
2334 /* 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
2335 tmp = g_markup_escape_text(msg2[0], -1);
8493
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
2336
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2337 if (t) { /* This is an offline message */
9680
170d9c1ab218 [gaim-migrate @ 10532]
Dave West <kat@users.sourceforge.net>
parents: 9661
diff changeset
2338 /* 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
2339 #ifdef HAVE_TM_GMTOFF
9724
7e977ad7ccef [gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents: 9713
diff changeset
2340 time_t now;
7e977ad7ccef [gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents: 9713
diff changeset
2341 struct tm *tm;
7e977ad7ccef [gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents: 9713
diff changeset
2342 now = time(NULL);
7e977ad7ccef [gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents: 9713
diff changeset
2343 tm = localtime(&now);
7e977ad7ccef [gaim-migrate @ 10585]
Mark Doliner <markdoliner@pidgin.im>
parents: 9713
diff changeset
2344 t += tm->tm_gmtoff;
9698
d83c7c4b0ccc [gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents: 9680
diff changeset
2345 #else
d83c7c4b0ccc [gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents: 9680
diff changeset
2346 # ifdef HAVE_TIMEZONE
9680
170d9c1ab218 [gaim-migrate @ 10532]
Dave West <kat@users.sourceforge.net>
parents: 9661
diff changeset
2347 tzset();
170d9c1ab218 [gaim-migrate @ 10532]
Dave West <kat@users.sourceforge.net>
parents: 9661
diff changeset
2348 t -= timezone;
9698
d83c7c4b0ccc [gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents: 9680
diff changeset
2349 # endif
d83c7c4b0ccc [gaim-migrate @ 10557]
Mark Doliner <markdoliner@pidgin.im>
parents: 9680
diff changeset
2350 #endif
8514
8c021f9defc6 [gaim-migrate @ 9252]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8501
diff changeset
2351 serv_got_im(gc, uin, tmp, 0, t);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2352 } else { /* This is a message from MacICQ/Miranda */
8514
8c021f9defc6 [gaim-migrate @ 9252]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8501
diff changeset
2353 serv_got_im(gc, uin, tmp, 0, time(NULL));
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2354 }
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2355 g_free(uin);
8493
9a0f65deacb2 [gaim-migrate @ 9228]
Mark Doliner <markdoliner@pidgin.im>
parents: 8476
diff changeset
2356 g_free(tmp);
4075
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
2357 }
3316
43bb95f6167a [gaim-migrate @ 3334]
Mark Doliner <markdoliner@pidgin.im>
parents: 3279
diff changeset
2358 } break;
43bb95f6167a [gaim-migrate @ 3334]
Mark Doliner <markdoliner@pidgin.im>
parents: 3279
diff changeset
2359
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2360 case 0x04: { /* Someone sent you a URL */
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2361 if (i >= 2) {
7385
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2362 if (msg2[1] != NULL) {
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2363 gchar *uin = g_strdup_printf("%u", args->uin);
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2364 gchar *message = g_strdup_printf("<A HREF=\"%s\">%s</A>",
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2365 msg2[1],
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2366 (msg2[0] && msg2[0][0]) ? msg2[0] : msg2[1]);
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2367 serv_got_im(gc, uin, message, 0, time(NULL));
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2368 g_free(uin);
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2369 g_free(message);
000d887035a2 [gaim-migrate @ 7980]
Mark Doliner <markdoliner@pidgin.im>
parents: 7376
diff changeset
2370 }
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2371 }
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2372 } break;
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2373
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2374 case 0x06: { /* Someone requested authorization */
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2375 if (i >= 6) {
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2376 struct name_data *data = g_new(struct name_data, 1);
11102
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
2377 gchar *sn = g_strdup_printf("%u", args->uin);
15122
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
2378 gchar *reason = NULL;
11102
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
2379
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
2380 if (msg2[5] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2381 reason = purple_plugin_oscar_decode_im_part(account, sn, AIM_CHARSET_CUSTOM, 0x0000, msg2[5], strlen(msg2[5]));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2382
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2383 purple_debug_info("oscar",
5556
5d64702e975b [gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents: 5542
diff changeset
2384 "Received an authorization request from UIN %u\n",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2385 args->uin);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2386 data->gc = gc;
11102
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
2387 data->name = sn;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2388 data->nick = NULL;
15122
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
2389
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2390 purple_account_request_authorization(account, sn, NULL, NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2391 reason, purple_find_buddy(account, sn) != NULL,
19335
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
2392 purple_auth_grant,
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
2393 purple_auth_dontgrant_msgprompt, data);
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15115
diff changeset
2394 g_free(reason);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2395 }
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2396 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2397
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2398 case 0x07: { /* Someone has denied you authorization */
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2399 if (i >= 1) {
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2400 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."));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2401 purple_notify_info(gc, NULL, _("ICQ authorization denied."),
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
2402 dialog_msg);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2403 g_free(dialog_msg);
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2404 }
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2405 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2406
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2407 case 0x08: { /* Someone has granted you authorization */
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2408 gchar *dialog_msg = g_strdup_printf(_("The user %u has granted your request to add them to your buddy list."), args->uin);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2409 purple_notify_info(gc, NULL, "ICQ authorization accepted.",
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
2410 dialog_msg);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2411 g_free(dialog_msg);
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2412 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2413
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2414 case 0x09: { /* Message from the Godly ICQ server itself, I think */
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2415 if (i >= 5) {
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2416 gchar *dialog_msg = g_strdup_printf(_("You have received a special message\n\nFrom: %s [%s]\n%s"), msg2[0], msg2[3], msg2[5]);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2417 purple_notify_info(gc, NULL, "ICQ Server Message", dialog_msg);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2418 g_free(dialog_msg);
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2419 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2420 } break;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
2421
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2422 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
2423 if (i >= 6) {
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
2424 gchar *dialog_msg = g_strdup_printf(_("You have received an ICQ page\n\nFrom: %s [%s]\n%s"), msg2[0], msg2[3], msg2[5]);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2425 purple_notify_info(gc, NULL, "ICQ Page", dialog_msg);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2426 g_free(dialog_msg);
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2427 }
4075
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
2428 } break;
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
2429
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2430 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
2431 if (i >= 6) {
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
2432 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]);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2433 purple_notify_info(gc, NULL, "ICQ E-Mail", dialog_msg);
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2434 g_free(dialog_msg);
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2435 }
4075
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
2436 } break;
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
2437
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2438 case 0x12: {
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2439 /* Ack for authorizing/denying someone. Or possibly an ack for sending any system notice */
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2440 /* Someone added you to their buddy list? */
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2441 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2442
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2443 case 0x13: { /* Someone has sent you some ICQ buddies */
7631
0e9e516bb6c3 [gaim-migrate @ 8255]
Nathan Walp <nwalp@pidgin.im>
parents: 7621
diff changeset
2444 guint i, num;
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2445 gchar **text;
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
2446 text = g_strsplit(args->msg, "\376", 0);
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2447 if (text) {
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2448 num = 0;
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2449 for (i=0; i<strlen(text[0]); i++)
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2450 num = num*10 + text[0][i]-48;
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2451 for (i=0; i<num; i++) {
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
2452 struct name_data *data = g_new(struct name_data, 1);
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2453 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
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2454 data->gc = gc;
4790
765a98790ede [gaim-migrate @ 5110]
Mark Doliner <markdoliner@pidgin.im>
parents: 4785
diff changeset
2455 data->name = g_strdup(text[i*2+1]);
765a98790ede [gaim-migrate @ 5110]
Mark Doliner <markdoliner@pidgin.im>
parents: 4785
diff changeset
2456 data->nick = g_strdup(text[i*2+2]);
5498
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5497
diff changeset
2457
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
2458 purple_request_action_with_hint(gc, NULL, message,
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2459 _("Do you want to add this buddy "
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
2460 "to your buddy list?"),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
2461 PURPLE_DEFAULT_ACTION_NONE,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
2462 purple_connection_get_account(gc), data->name, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
2463 "blist", data, 2,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2464 _("_Add"), G_CALLBACK(purple_icq_buddyadd),
12603
731cac8b693f [gaim-migrate @ 14938]
Nathan Conrad
parents: 12600
diff changeset
2465 _("_Decline"), G_CALLBACK(oscar_free_name_data));
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2466 g_free(message);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2467 }
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2468 g_strfreev(text);
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2469 }
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2470 } break;
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2471
19819
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2472 case 0x1a: { /* Handle SMS or someone has sent you a greeting card or requested buddies? */
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2473 ByteStream qbs;
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2474 int smstype, taglen, smslen;
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2475 char *tagstr = NULL, *smsmsg = NULL;
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2476 xmlnode *xmlroot = NULL, *xmltmp = NULL;
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2477 gchar *uin = NULL, *message = NULL;
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2478
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2479 /* From libicq2000-0.3.2/src/ICQ.cpp */
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2480 byte_stream_init(&qbs, (guint8 *)args->msg, args->msglen);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2481 byte_stream_advance(&qbs, 21);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2482 smstype = byte_stream_getle16(&qbs);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2483 taglen = byte_stream_getle32(&qbs);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2484 tagstr = byte_stream_getstr(&qbs, taglen);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2485 byte_stream_advance(&qbs, 3);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2486 byte_stream_advance(&qbs, 4);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2487 smslen = byte_stream_getle32(&qbs);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2488 smsmsg = byte_stream_getstr(&qbs, smslen);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2489
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2490 /* Check if this is an SMS being sent from server */
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2491 if ((smstype == 0) && (!strcmp(tagstr, "ICQSMS")) && (smsmsg != NULL))
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2492 {
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2493 xmlroot = xmlnode_from_str(smsmsg, -1);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2494 if (xmlroot != NULL)
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2495 {
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2496 xmltmp = xmlnode_get_child(xmlroot, "sender");
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2497 if (xmltmp != NULL)
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2498 uin = xmlnode_get_data(xmltmp);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2499
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2500 xmltmp = xmlnode_get_child(xmlroot, "text");
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2501 if (xmltmp != NULL)
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2502 message = xmlnode_get_data(xmltmp);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2503
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2504 if ((uin != NULL) && (message != NULL))
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2505 serv_got_im(gc, uin, message, 0, time(NULL));
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2506
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2507 g_free(uin);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2508 g_free(message);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2509 xmlnode_free(xmlroot);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2510 }
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2511 }
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2512 g_free(tagstr);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
2513 g_free(smsmsg);
3453
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2514 } break;
1c85e22614af [gaim-migrate @ 3498]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
2515
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2516 default: {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2517 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2518 "Received a channel 4 message of unknown type "
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2519 "(type 0x%02hhx).\n", args->type);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2520 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2521 }
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2522
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2523 g_strfreev(msg1);
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2524 g_strfreev(msg2);
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
2525
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2526 return 1;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2527 }
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2528
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2529 static int purple_parse_incoming_im(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2530 guint16 channel;
4200
8facd81a88ac [gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents: 4199
diff changeset
2531 int ret = 0;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
2532 aim_userinfo_t *userinfo;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2533 va_list ap;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2534
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2535 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2536 channel = (guint16)va_arg(ap, unsigned int);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
2537 userinfo = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2538
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2539 switch (channel) {
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2540 case 1: { /* standard message */
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2541 struct aim_incomingim_ch1_args *args;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2542 args = va_arg(ap, struct aim_incomingim_ch1_args *);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2543 ret = incomingim_chan1(od, conn, userinfo, args);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2544 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2545
8735
01248ea222d3 [gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 8733
diff changeset
2546 case 2: { /* rendezvous */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2547 IcbmArgsCh2 *args;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2548 args = va_arg(ap, IcbmArgsCh2 *);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2549 ret = incomingim_chan2(od, conn, userinfo, args);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2550 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2551
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2552 case 4: { /* ICQ */
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2553 struct aim_incomingim_ch4_args *args;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2554 args = va_arg(ap, struct aim_incomingim_ch4_args *);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2555 ret = incomingim_chan4(od, conn, userinfo, args, 0);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2556 } break;
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2557
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2558 default: {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2559 purple_debug_warning("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2560 "ICBM received on unsupported channel (channel "
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2561 "0x%04hx).", channel);
3141
3adc8022a85f [gaim-migrate @ 3156]
Rob Flynn <gaim@robflynn.com>
parents: 3140
diff changeset
2562 } break;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2563 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2564
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2565 va_end(ap);
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2566
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2567 return ret;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2568 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2569
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2570 static int purple_parse_misses(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2571 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2572 PurpleAccount *account = purple_connection_get_account(gc);
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2573 char *buf;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2574 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2575 guint16 chan, nummissed, reason;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
2576 aim_userinfo_t *userinfo;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2577
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2578 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2579 chan = (guint16)va_arg(ap, unsigned int);
4200
8facd81a88ac [gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents: 4199
diff changeset
2580 userinfo = va_arg(ap, aim_userinfo_t *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2581 nummissed = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2582 reason = (guint16)va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2583 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2584
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2585 switch(reason) {
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2586 case 0: /* Invalid (0) */
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2587 buf = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
2588 dngettext(PACKAGE,
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4269
diff changeset
2589 "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
2590 "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
2591 nummissed),
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2592 nummissed,
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2593 userinfo->sn);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
2594 break;
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2595 case 1: /* Message too large */
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2596 buf = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
2597 dngettext(PACKAGE,
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4269
diff changeset
2598 "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
2599 "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
2600 nummissed),
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2601 nummissed,
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2602 userinfo->sn);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
2603 break;
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2604 case 2: /* Rate exceeded */
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2605 buf = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
2606 dngettext(PACKAGE,
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4269
diff changeset
2607 "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
2608 "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
2609 nummissed),
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2610 nummissed,
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2611 userinfo->sn);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
2612 break;
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2613 case 3: /* Evil Sender */
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2614 buf = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
2615 dngettext(PACKAGE,
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4269
diff changeset
2616 "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
2617 "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
2618 nummissed),
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2619 nummissed,
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2620 userinfo->sn);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
2621 break;
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2622 case 4: /* Evil Receiver */
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2623 buf = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
2624 dngettext(PACKAGE,
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4269
diff changeset
2625 "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
2626 "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
2627 nummissed),
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2628 nummissed,
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2629 userinfo->sn);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2630 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2631 default:
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2632 buf = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
2633 dngettext(PACKAGE,
4276
d1652a291840 [gaim-migrate @ 4527]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents: 4269
diff changeset
2634 "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
2635 "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
2636 nummissed),
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2637 nummissed,
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
2638 userinfo->sn);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2639 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2640 }
8733
f6d36eff3b49 [gaim-migrate @ 9488]
Mark Doliner <markdoliner@pidgin.im>
parents: 8713
diff changeset
2641
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2642 if (!purple_conv_present_error(userinfo->sn, account, buf))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2643 purple_notify_error(od->gc, NULL, buf, NULL);
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
2644 g_free(buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2645
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2646 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2647 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2648
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2649 static int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2650 purple_parse_clientauto_ch2(OscarData *od, const char *who, guint16 reason, const guchar *cookie)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2651 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2652 if (reason == 0x0003)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2653 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2654 /* Rendezvous was refused. */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2655 PeerConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2656
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2657 conn = peer_connection_find_by_cookie(od, who, cookie);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2658
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2659 if (conn == NULL)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2660 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2661 purple_debug_info("oscar", "Received a rendezvous cancel message "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2662 "for a nonexistant connection from %s.\n", who);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2663 }
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2664 else
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2665 {
14464
b7bca43f75b3 [gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents: 14454
diff changeset
2666 peer_connection_destroy(conn, OSCAR_DISCONNECT_REMOTE_REFUSED, NULL);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2667 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2668 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2669 else
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2670 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2671 purple_debug_warning("oscar", "Received an unknown rendezvous "
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2672 "message from %s. Type 0x%04hx\n", who, reason);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2673 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2674
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2675 return 0;
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2676 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2677
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2678 static int purple_parse_clientauto_ch4(OscarData *od, char *who, guint16 reason, guint32 state, char *msg) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2679 PurpleConnection *gc = od->gc;
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2680
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2681 switch(reason) {
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2682 case 0x0003: { /* Reply from an ICQ status message request */
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2683 char *statusmsg, **splitmsg;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2684 PurpleNotifyUserInfo *user_info;
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2685
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2686 /* Split at (carriage return/newline)'s, then rejoin later with BRs between. */
9244
de04fe53f756 [gaim-migrate @ 10043]
Tom Samstag <pidgin@modtwo.com>
parents: 9126
diff changeset
2687 statusmsg = oscar_icqstatus(state);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2688 splitmsg = g_strsplit(msg, "\r\n", 0);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2689
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2690 user_info = purple_notify_user_info_new();
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2691
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2692 purple_notify_user_info_add_pair(user_info, _("UIN"), who);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2693 purple_notify_user_info_add_pair(user_info, _("Status"), statusmsg);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2694 purple_notify_user_info_add_section_break(user_info);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2695 purple_notify_user_info_add_pair(user_info, NULL, g_strjoinv("<BR>", splitmsg));
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2696
9244
de04fe53f756 [gaim-migrate @ 10043]
Tom Samstag <pidgin@modtwo.com>
parents: 9126
diff changeset
2697 g_free(statusmsg);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2698 g_strfreev(splitmsg);
9244
de04fe53f756 [gaim-migrate @ 10043]
Tom Samstag <pidgin@modtwo.com>
parents: 9126
diff changeset
2699
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2700 purple_notify_userinfo(gc, who, user_info, NULL, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2701 purple_notify_user_info_destroy(user_info);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2702
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2703 } break;
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2704
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2705 default: {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2706 purple_debug_warning("oscar",
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
2707 "Received an unknown client auto-response from %s. "
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2708 "Type 0x%04hx\n", who, reason);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2709 } break;
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2710 } /* end of switch */
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2711
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2712 return 0;
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2713 }
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2714
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2715 static int purple_parse_clientauto(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
3212
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2716 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2717 guint16 chan, reason;
3212
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2718 char *who;
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2719
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2720 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2721 chan = (guint16)va_arg(ap, unsigned int);
3212
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2722 who = va_arg(ap, char *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2723 reason = (guint16)va_arg(ap, unsigned int);
3212
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2724
3952
d13e1fde68d8 [gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents: 3912
diff changeset
2725 if (chan == 0x0002) { /* File transfer declined */
11159
76ef02141bcb [gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents: 11155
diff changeset
2726 guchar *cookie = va_arg(ap, guchar *);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2727 return purple_parse_clientauto_ch2(od, who, reason, cookie);
3952
d13e1fde68d8 [gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents: 3912
diff changeset
2728 } else if (chan == 0x0004) { /* ICQ message */
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2729 guint32 state = 0;
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2730 char *msg = NULL;
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2731 if (reason == 0x0003) {
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2732 state = va_arg(ap, guint32);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2733 msg = va_arg(ap, char *);
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2734 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2735 return purple_parse_clientauto_ch4(od, who, reason, state, msg);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2736 }
3952
d13e1fde68d8 [gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents: 3912
diff changeset
2737
3212
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2738 va_end(ap);
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2739
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2740 return 1;
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2741 }
3c00e6f5f085 [gaim-migrate @ 3229]
Mark Doliner <markdoliner@pidgin.im>
parents: 3210
diff changeset
2742
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2743 static int purple_parse_genericerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2744 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2745 guint16 reason;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2746
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2747 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2748 reason = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2749 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2750
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2751 purple_debug_error("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2752 "snac threw error (reason 0x%04hx: %s)\n", reason,
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
2753 (reason < msgerrreasonlen) ? msgerrreason[reason] : "unknown");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2754 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2755 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2756
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2757 static int purple_parse_msgerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2758 PurpleConnection *gc = od->gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2759 #ifdef TODOFT
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
2760 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2761 PurpleXfer *xfer;
4508
3b98688619fc [gaim-migrate @ 4784]
Christian Hammond <chipx86@chipx86.com>
parents: 4491
diff changeset
2762 #endif
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
2763 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2764 guint16 reason;
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
2765 char *data, *buf;
4508
3b98688619fc [gaim-migrate @ 4784]
Christian Hammond <chipx86@chipx86.com>
parents: 4491
diff changeset
2766
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2767 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2768 reason = (guint16)va_arg(ap, unsigned int);
3752
a0468bc9b944 [gaim-migrate @ 3890]
William T. Mahan <wtm2@duke.edu>
parents: 3730
diff changeset
2769 data = va_arg(ap, char *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2770 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2771
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2772 purple_debug_error("oscar",
10130
7256fb884aaf [gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
2773 "Message error with data %s and reason %hu\n",
7256fb884aaf [gaim-migrate @ 11193]
Evan Schoenberg <evands@pidgin.im>
parents: 10116
diff changeset
2774 (data != NULL ? data : ""), reason);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
2775
15309
ea0c8c018e7b [gaim-migrate @ 18037]
Mark Doliner <markdoliner@pidgin.im>
parents: 15308
diff changeset
2776 if ((data == NULL) || (*data == '\0'))
ea0c8c018e7b [gaim-migrate @ 18037]
Mark Doliner <markdoliner@pidgin.im>
parents: 15308
diff changeset
2777 /* We can't do anything if data is empty */
ea0c8c018e7b [gaim-migrate @ 18037]
Mark Doliner <markdoliner@pidgin.im>
parents: 15308
diff changeset
2778 return 1;
ea0c8c018e7b [gaim-migrate @ 18037]
Mark Doliner <markdoliner@pidgin.im>
parents: 15308
diff changeset
2779
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
2780 #ifdef TODOFT
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
2781 /* If this was a file transfer request, data is a cookie */
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
2782 if ((xfer = oscar_find_xfer_by_cookie(od->file_transfers, data))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2783 purple_xfer_cancel_remote(xfer);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2784 return 1;
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2785 }
4508
3b98688619fc [gaim-migrate @ 4784]
Christian Hammond <chipx86@chipx86.com>
parents: 4491
diff changeset
2786 #endif
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3600
diff changeset
2787
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
2788 /* Data is assumed to be the destination sn */
15860
91fc3b830d63 lots of translation updates. Some of these I neglected for way too long.
Luke Schierer <lschiere@pidgin.im>
parents: 15844
diff changeset
2789 buf = g_strdup_printf(_("Unable to send message: %s"), (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason."));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2790 if (!purple_conv_present_error(data, purple_connection_get_account(gc), buf)) {
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2791 g_free(buf);
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2792 buf = g_strdup_printf(_("Unable to send message to %s:"), data ? data : "(unknown)");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2793 purple_notify_error(od->gc, NULL, buf,
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2794 (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason."));
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2795 }
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2796 g_free(buf);
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2797
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2798 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2799 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2800
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2801 static int purple_parse_mtn(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2802 PurpleConnection *gc = od->gc;
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2803 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2804 guint16 type1, type2;
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2805 char *sn;
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2806
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2807 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2808 type1 = (guint16) va_arg(ap, unsigned int);
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2809 sn = va_arg(ap, char *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2810 type2 = (guint16) va_arg(ap, unsigned int);
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2811 va_end(ap);
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2812
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2813 switch (type2) {
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2814 case 0x0000: { /* Text has been cleared */
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2815 serv_got_typing_stopped(gc, sn);
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2816 } break;
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2817
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2818 case 0x0001: { /* Paused typing */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2819 serv_got_typing(gc, sn, 0, PURPLE_TYPED);
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2820 } break;
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2821
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2822 case 0x0002: { /* Typing */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2823 serv_got_typing(gc, sn, 0, PURPLE_TYPING);
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2824 } break;
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2825
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2826 default: {
14030
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2827 /*
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2828 * It looks like iChat sometimes sends typing notification
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2829 * with type1=0x0001 and type2=0x000f. Not sure why.
23144f1dc950 [gaim-migrate @ 16525]
Mark Doliner <markdoliner@pidgin.im>
parents: 14012
diff changeset
2830 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2831 purple_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
2832 } break;
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2833 }
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2834
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2835 return 1;
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2836 }
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
2837
7141
431a007467e8 [gaim-migrate @ 7708]
Mark Doliner <markdoliner@pidgin.im>
parents: 7129
diff changeset
2838 /*
13382
ad4d8c44d83d [gaim-migrate @ 15754]
Daniel Atallah <datallah@pidgin.im>
parents: 13357
diff changeset
2839 * 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
2840 * happens when you request info of someone who is offline.
7141
431a007467e8 [gaim-migrate @ 7708]
Mark Doliner <markdoliner@pidgin.im>
parents: 7129
diff changeset
2841 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2842 static int purple_parse_locerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2843 gchar *buf;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2844 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2845 guint16 reason;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2846 char *destn;
18197
1cdb844307ae Use _notify_userinfo instead of _notify_error when there's an error
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
2847 PurpleNotifyUserInfo *user_info;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2848
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2849 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
2850 reason = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2851 destn = va_arg(ap, char *);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2852 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2853
7781
db624418e528 [gaim-migrate @ 8426]
Mark Doliner <markdoliner@pidgin.im>
parents: 7693
diff changeset
2854 if (destn == NULL)
7793
9d6043375b81 [gaim-migrate @ 8439]
Mark Doliner <markdoliner@pidgin.im>
parents: 7781
diff changeset
2855 return 1;
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
2856
18197
1cdb844307ae Use _notify_userinfo instead of _notify_error when there's an error
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
2857 user_info = purple_notify_user_info_new();
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2858 buf = g_strdup_printf(_("User information not available: %s"), (reason < msgerrreasonlen) ? _(msgerrreason[reason]) : _("Unknown reason."));
18197
1cdb844307ae Use _notify_userinfo instead of _notify_error when there's an error
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
2859 purple_notify_user_info_add_pair(user_info, NULL, buf);
1cdb844307ae Use _notify_userinfo instead of _notify_error when there's an error
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
2860 purple_notify_userinfo(od->gc, destn, user_info, NULL, NULL);
1cdb844307ae Use _notify_userinfo instead of _notify_error when there's an error
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
2861 purple_notify_user_info_destroy(user_info);
1cdb844307ae Use _notify_userinfo instead of _notify_error when there's an error
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
2862 purple_conv_present_error(destn, purple_connection_get_account(od->gc), buf);
9826
8fd989d134e0 [gaim-migrate @ 10697]
Mark Doliner <markdoliner@pidgin.im>
parents: 9810
diff changeset
2863 g_free(buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2864
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2865 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2866 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2867
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2868 static int purple_parse_userinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2869 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2870 PurpleAccount *account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2871 PurpleNotifyUserInfo *user_info;
11532
b069bbab16be [gaim-migrate @ 13781]
Luke Schierer <lschiere@pidgin.im>
parents: 11531
diff changeset
2872 gchar *tmp = NULL, *info_utf8 = NULL, *away_utf8 = NULL;
4791
b35003e42654 [gaim-migrate @ 5111]
Mark Doliner <markdoliner@pidgin.im>
parents: 4790
diff changeset
2873 va_list ap;
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2874 aim_userinfo_t *userinfo;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2875
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
2876 va_start(ap, fr);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2877 userinfo = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2878 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2879
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2880 user_info = purple_notify_user_info_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2881 purple_notify_user_info_add_pair(user_info, _("Screen Name"), userinfo->sn);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2882
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2883 tmp = g_strdup_printf("%d", (int)((userinfo->warnlevel/10.0) + 0.5));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2884 purple_notify_user_info_add_pair(user_info, _("Warning Level"), tmp);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2885 g_free(tmp);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2886
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10111
diff changeset
2887 if (userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) {
17697
5495647b7b5c Get rid of the oscar time offset. This was an attempt at making sure
Mark Doliner <markdoliner@pidgin.im>
parents: 17693
diff changeset
2888 time_t t = userinfo->onlinesince;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2889 oscar_user_info_add_pair(user_info, _("Online Since"), purple_date_format_full(localtime(&t)));
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10111
diff changeset
2890 }
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10111
diff changeset
2891
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10111
diff changeset
2892 if (userinfo->present & AIM_USERINFO_PRESENT_MEMBERSINCE) {
17697
5495647b7b5c Get rid of the oscar time offset. This was an attempt at making sure
Mark Doliner <markdoliner@pidgin.im>
parents: 17693
diff changeset
2893 time_t t = userinfo->membersince;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2894 oscar_user_info_add_pair(user_info, _("Member Since"), purple_date_format_full(localtime(&t)));
10116
054b064145a1 [gaim-migrate @ 11153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10111
diff changeset
2895 }
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2896
12430
07bc0e58c8c2 [gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents: 12426
diff changeset
2897 if (userinfo->capabilities != 0) {
07bc0e58c8c2 [gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents: 12426
diff changeset
2898 tmp = oscar_caps_to_string(userinfo->capabilities);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2899 oscar_user_info_add_pair(user_info, _("Capabilities"), tmp);
12430
07bc0e58c8c2 [gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents: 12426
diff changeset
2900 g_free(tmp);
07bc0e58c8c2 [gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents: 12426
diff changeset
2901 }
07bc0e58c8c2 [gaim-migrate @ 14737]
Mark Doliner <markdoliner@pidgin.im>
parents: 12426
diff changeset
2902
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2903 if (userinfo->present & AIM_USERINFO_PRESENT_IDLE) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2904 tmp = purple_str_seconds_to_string(userinfo->idletime*60);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2905 oscar_user_info_add_pair(user_info, _("Idle"), tmp);
8700
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
2906 g_free(tmp);
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
2907 }
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
2908
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2909 oscar_string_append_info(gc, user_info, NULL, userinfo);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2910
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2911 /* Available message */
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2912 if ((userinfo->status != NULL) && !(userinfo->flags & AIM_FLAG_AWAY))
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2913 {
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2914 if (userinfo->status[0] != '\0')
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2915 tmp = oscar_encoding_to_utf8(account, userinfo->status_encoding,
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2916 userinfo->status, userinfo->status_len);
16405
052cdb353d30 The iTunes music store link makes sense to show on OS X, too
Evan Schoenberg <evands@pidgin.im>
parents: 16398
diff changeset
2917 #if defined (_WIN32) || defined (__APPLE__)
16821
9ef40aa44645 Fix a crash if userinfo->itmsurl is NULL on Windows / OS X
Evan Schoenberg <evands@pidgin.im>
parents: 16677
diff changeset
2918 if (userinfo->itmsurl && (userinfo->itmsurl[0] != '\0')) {
16398
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2919 gchar *itmsurl, *tmp2;
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2920 itmsurl = oscar_encoding_to_utf8(account, userinfo->itmsurl_encoding,
16398
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2921 userinfo->itmsurl, userinfo->itmsurl_len);
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2922 tmp2 = g_strdup_printf("<a href=\"%s\">%s</a>",
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2923 itmsurl, tmp);
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2924 g_free(tmp);
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2925 tmp = tmp2;
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2926 g_free(itmsurl);
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2927 }
a895aca0a7ce Ok I couldn't resist. For iChat and Adium buddies who are advertising
Mark Doliner <markdoliner@pidgin.im>
parents: 16397
diff changeset
2928 #endif
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2929 oscar_user_info_add_pair(user_info, _("Available Message"), tmp);
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2930 g_free(tmp);
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2931 }
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2932
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2933 /* Away message */
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2934 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
2935 tmp = oscar_encoding_extract(userinfo->away_encoding);
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2936 away_utf8 = oscar_encoding_to_utf8(account, tmp, userinfo->away,
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2937 userinfo->away_len);
8700
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
2938 g_free(tmp);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2939 if (away_utf8 != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2940 tmp = purple_str_sub_away_formatters(away_utf8, purple_account_get_username(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2941 purple_notify_user_info_add_section_break(user_info);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2942 oscar_user_info_add_pair(user_info, NULL, tmp);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2943 g_free(tmp);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2944 g_free(away_utf8);
2791
26bdc3e83257 [gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2789
diff changeset
2945 }
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2946 }
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2947
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
2948 /* Info */
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2949 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
2950 tmp = oscar_encoding_extract(userinfo->info_encoding);
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2951 info_utf8 = oscar_encoding_to_utf8(account, tmp, userinfo->info,
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2952 userinfo->info_len);
8700
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
2953 g_free(tmp);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2954 if (info_utf8 != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2955 tmp = purple_str_sub_away_formatters(info_utf8, purple_account_get_username(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2956 purple_notify_user_info_add_section_break(user_info);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2957 oscar_user_info_add_pair(user_info, _("Profile"), tmp);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
2958 g_free(tmp);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2959 g_free(info_utf8);
2791
26bdc3e83257 [gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2789
diff changeset
2960 }
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2961 }
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
2962
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2963 purple_notify_userinfo(gc, userinfo->sn, user_info, NULL, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2964 purple_notify_user_info_destroy(user_info);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
2965
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2966 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2967 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2968
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2969 static int purple_got_infoblock(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2970 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2971 PurpleConnection *gc = od->gc;
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2972 PurpleAccount *account = purple_connection_get_account(gc);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2973 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2974 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2975 PurpleStatus *status;
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2976 gchar *message = NULL;
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2977
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2978 va_list ap;
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2979 aim_userinfo_t *userinfo;
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2980
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2981 va_start(ap, fr);
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2982 userinfo = va_arg(ap, aim_userinfo_t *);
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2983 va_end(ap);
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2984
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
2985 b = purple_find_buddy(account, userinfo->sn);
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2986 if (b == NULL)
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2987 return 1;
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
2988
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
2989 if (!aim_snvalid_icq(userinfo->sn))
14012
71be8ba41740 [gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents: 14011
diff changeset
2990 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2991 if (strcmp(purple_buddy_get_name(b), userinfo->sn))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2992 serv_got_alias(gc, purple_buddy_get_name(b), userinfo->sn);
14012
71be8ba41740 [gaim-migrate @ 16494]
Mark Doliner <markdoliner@pidgin.im>
parents: 14011
diff changeset
2993 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2994 serv_got_alias(gc, purple_buddy_get_name(b), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2995 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2996
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2997 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2998 status = purple_presence_get_active_status(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
2999
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3000 if (!purple_status_is_available(status) && purple_status_is_online(status))
12271
01d61e68886e [gaim-migrate @ 14573]
Mark Doliner <markdoliner@pidgin.im>
parents: 12260
diff changeset
3001 {
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
3002 if ((userinfo->flags & AIM_FLAG_AWAY) &&
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3003 (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) {
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3004 gchar *charset = oscar_encoding_extract(userinfo->away_encoding);
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
3005 message = oscar_encoding_to_utf8(account, charset,
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
3006 userinfo->away,
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
3007 userinfo->away_len);
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3008 g_free(charset);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3009 purple_status_set_attr_string(status, "message", message);
12393
1920d63edd79 [gaim-migrate @ 14700]
Ethan Blanton <elb@pidgin.im>
parents: 12365
diff changeset
3010 g_free(message);
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3011 }
14242
3e91cf0a253f [gaim-migrate @ 16830]
Henning Norén <henning.noren@gmail.com>
parents: 14209
diff changeset
3012 else
3e91cf0a253f [gaim-migrate @ 16830]
Henning Norén <henning.noren@gmail.com>
parents: 14209
diff changeset
3013 /* Set an empty message so that we know not to show "pending" */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3014 purple_status_set_attr_string(status, "message", "");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3015
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3016 purple_blist_update_buddy_status(b, status);
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
3017 }
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3018
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3019 return 1;
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3020 }
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
3021
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3022 static int purple_parse_motd(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
3023 {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3024 char *msg;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3025 guint16 id;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3026 va_list ap;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3027
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3028 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3029 id = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3030 msg = va_arg(ap, char *);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3031 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3032
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3033 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3034 "MOTD: %s (%hu)\n", msg ? msg : "Unknown", id);
2092
f56061012e3c [gaim-migrate @ 2102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
3035 if (id < 4)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3036 purple_notify_warning(od->gc, NULL,
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
3037 _("Your AIM connection may be lost."), NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3038
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3039 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3040 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3041
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3042 static int purple_chatnav_info(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3043 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3044 guint16 type;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3045
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3046 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3047 type = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3048
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3049 switch(type) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3050 case 0x0002: {
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3051 guint8 maxrooms;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3052 struct aim_chat_exchangeinfo *exchanges;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3053 int exchangecount, i;
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3054
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3055 maxrooms = (guint8) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3056 exchangecount = va_arg(ap, int);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3057 exchanges = va_arg(ap, struct aim_chat_exchangeinfo *);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3058
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3059 purple_debug_misc("oscar", "chat info: Chat Rights:\n");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3060 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3061 "chat info: \tMax Concurrent Rooms: %hhd\n", maxrooms);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3062 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3063 "chat info: \tExchange List: (%d total)\n", exchangecount);
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3064 for (i = 0; i < exchangecount; i++)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3065 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3066 "chat info: \t\t%hu %s\n",
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3067 exchanges[i].number, exchanges[i].name ? exchanges[i].name : "");
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3068 while (od->create_rooms) {
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3069 struct create_room *cr = od->create_rooms->data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3070 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3071 "creating room %s\n", cr->name);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3072 aim_chatnav_createroom(od, conn, cr->name, cr->exchange);
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
3073 g_free(cr->name);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3074 od->create_rooms = g_slist_remove(od->create_rooms, cr);
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
3075 g_free(cr);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3076 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3077 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3078 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3079 case 0x0008: {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3080 char *fqcn, *name, *ck;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3081 guint16 instance, flags, maxmsglen, maxoccupancy, unknown, exchange;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3082 guint8 createperms;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3083 guint32 createtime;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3084
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3085 fqcn = va_arg(ap, char *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3086 instance = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3087 exchange = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3088 flags = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3089 createtime = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3090 maxmsglen = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3091 maxoccupancy = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3092 createperms = (guint8)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3093 unknown = (guint16)va_arg(ap, unsigned int);
4200
8facd81a88ac [gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents: 4199
diff changeset
3094 name = va_arg(ap, char *);
8facd81a88ac [gaim-migrate @ 4431]
Mark Doliner <markdoliner@pidgin.im>
parents: 4199
diff changeset
3095 ck = va_arg(ap, char *);
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3096
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3097 purple_debug_misc("oscar",
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3098 "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
3099 fqcn, exchange, instance, flags, createtime,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3100 maxmsglen, maxoccupancy, createperms, unknown,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3101 name, ck);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3102 aim_chat_join(od, exchange, ck, instance);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3103 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3104 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3105 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3106 purple_debug_warning("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3107 "chatnav info: unknown type (%04hx)\n", type);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3108 break;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3109 }
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3110
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3111 va_end(ap);
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3112
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3113 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3114 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3115
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3116 static int purple_conv_chat_join(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3117 va_list ap;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3118 int count, i;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3119 aim_userinfo_t *info;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3120 PurpleConnection *gc = od->gc;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3121
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3122 struct chat_connection *c = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3123
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3124 va_start(ap, fr);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3125 count = va_arg(ap, int);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3126 info = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3127 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3128
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3129 c = find_oscar_chat_by_conn(gc, conn);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3130 if (!c)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3131 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3132
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3133 for (i = 0; i < count; i++)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3134 purple_conv_chat_add_user(PURPLE_CONV_CHAT(c->conv), info[i].sn, NULL, PURPLE_CBFLAGS_NONE, TRUE);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3135
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3136 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3137 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3138
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3139 static int purple_conv_chat_leave(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3140 va_list ap;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3141 int count, i;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3142 aim_userinfo_t *info;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3143 PurpleConnection *gc = od->gc;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3144
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3145 struct chat_connection *c = NULL;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3146
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3147 va_start(ap, fr);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3148 count = va_arg(ap, int);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3149 info = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3150 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3151
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3152 c = find_oscar_chat_by_conn(gc, conn);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3153 if (!c)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3154 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3155
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3156 for (i = 0; i < count; i++)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3157 purple_conv_chat_remove_user(PURPLE_CONV_CHAT(c->conv), info[i].sn, NULL);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3158
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3159 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3160 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3161
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3162 static int purple_conv_chat_info_update(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3163 va_list ap;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3164 aim_userinfo_t *userinfo;
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3165 struct aim_chat_roominfo *roominfo;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3166 char *roomname;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3167 int usercount;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3168 char *roomdesc;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3169 guint16 unknown_c9, unknown_d2, unknown_d5, maxmsglen, maxvisiblemsglen;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3170 guint32 creationtime;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3171 PurpleConnection *gc = od->gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3172 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
3173
15223
78cdc3726d97 [gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents: 15210
diff changeset
3174 if (!ccon)
78cdc3726d97 [gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents: 15210
diff changeset
3175 return 1;
78cdc3726d97 [gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents: 15210
diff changeset
3176
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3177 va_start(ap, fr);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3178 roominfo = va_arg(ap, struct aim_chat_roominfo *);
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3179 roomname = va_arg(ap, char *);
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3180 usercount= va_arg(ap, int);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3181 userinfo = va_arg(ap, aim_userinfo_t *);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3182 roomdesc = va_arg(ap, char *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3183 unknown_c9 = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3184 creationtime = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3185 maxmsglen = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3186 unknown_d2 = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3187 unknown_d5 = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3188 maxvisiblemsglen = (guint16)va_arg(ap, unsigned int);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3189 va_end(ap);
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3190
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3191 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3192 "inside chat_info_update (maxmsglen = %hu, maxvislen = %hu)\n",
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3193 maxmsglen, maxvisiblemsglen);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3194
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3195 ccon->maxlen = maxmsglen;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3196 ccon->maxvis = maxvisiblemsglen;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3197
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3198 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3199 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3200
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3201 static int purple_conv_chat_incoming_msg(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3202 PurpleConnection *gc = od->gc;
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
3203 PurpleAccount *account = purple_connection_get_account(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3204 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
3205 gchar *utf8;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3206 va_list ap;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3207 aim_userinfo_t *info;
8225
4ef47db8c9bc [gaim-migrate @ 8948]
Mark Doliner <markdoliner@pidgin.im>
parents: 8219
diff changeset
3208 int len;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3209 char *msg;
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
3210 char *charset;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3211
15223
78cdc3726d97 [gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents: 15210
diff changeset
3212 if (!ccon)
78cdc3726d97 [gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents: 15210
diff changeset
3213 return 1;
78cdc3726d97 [gaim-migrate @ 17947]
Evan Schoenberg <evands@pidgin.im>
parents: 15210
diff changeset
3214
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3215 va_start(ap, fr);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3216 info = va_arg(ap, aim_userinfo_t *);
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
3217 len = va_arg(ap, int);
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3218 msg = va_arg(ap, char *);
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
3219 charset = va_arg(ap, char *);
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3220 va_end(ap);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3221
17740
e392c3758fb9 This fixes a bustination of the official ICQ client in at least some
Ethan Blanton <elb@pidgin.im>
parents: 17697
diff changeset
3222 utf8 = oscar_encoding_to_utf8(account, charset, msg, len);
8667
534bd4c4fb38 [gaim-migrate @ 9419]
Mark Doliner <markdoliner@pidgin.im>
parents: 8666
diff changeset
3223 if (utf8 == NULL)
534bd4c4fb38 [gaim-migrate @ 9419]
Mark Doliner <markdoliner@pidgin.im>
parents: 8666
diff changeset
3224 /* The conversion failed! */
8668
c72a49a7c46a [gaim-migrate @ 9420]
Mark Doliner <markdoliner@pidgin.im>
parents: 8667
diff changeset
3225 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
3226 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
3227 g_free(utf8);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3228
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3229 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3230 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3231
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3232 static int purple_email_parseupdate(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
3694
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3233 va_list ap;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3234 PurpleConnection *gc = od->gc;
3694
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3235 struct aim_emailinfo *emailinfo;
3725
40fe9bcc8c9e [gaim-migrate @ 3861]
Duffman
parents: 3722
diff changeset
3236 int havenewmail;
7297
5cdfc7212651 [gaim-migrate @ 7881]
Sean Egan <seanegan@pidgin.im>
parents: 7285
diff changeset
3237 char *alertitle, *alerturl;
3694
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3238
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3239 va_start(ap, fr);
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3240 emailinfo = va_arg(ap, struct aim_emailinfo *);
3725
40fe9bcc8c9e [gaim-migrate @ 3861]
Duffman
parents: 3722
diff changeset
3241 havenewmail = va_arg(ap, int);
7301
f6a3a23fa2fc [gaim-migrate @ 7885]
Mark Doliner <markdoliner@pidgin.im>
parents: 7297
diff changeset
3242 alertitle = va_arg(ap, char *);
f6a3a23fa2fc [gaim-migrate @ 7885]
Mark Doliner <markdoliner@pidgin.im>
parents: 7297
diff changeset
3243 alerturl = va_arg(ap, char *);
3694
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3244 va_end(ap);
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3245
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3246 if ((emailinfo != NULL) && purple_account_get_check_mail(gc->account)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3247 gchar *to = g_strdup_printf("%s%s%s", purple_account_get_username(purple_connection_get_account(gc)),
9661
a9895242a351 [gaim-migrate @ 10509]
Daniel Atallah <datallah@pidgin.im>
parents: 9659
diff changeset
3248 emailinfo->domain ? "@" : "",
a9895242a351 [gaim-migrate @ 10509]
Daniel Atallah <datallah@pidgin.im>
parents: 9659
diff changeset
3249 emailinfo->domain ? emailinfo->domain : "");
5542
0f02c413c862 [gaim-migrate @ 5942]
Mark Doliner <markdoliner@pidgin.im>
parents: 5540
diff changeset
3250 if (emailinfo->unread && havenewmail)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3251 purple_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
3252 g_free(to);
3694
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3253 }
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
3254
7301
f6a3a23fa2fc [gaim-migrate @ 7885]
Mark Doliner <markdoliner@pidgin.im>
parents: 7297
diff changeset
3255 if (alertitle)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3256 purple_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
3257
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3258 return 1;
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3259 }
49a336931cc6 [gaim-migrate @ 3824]
Mark Doliner <markdoliner@pidgin.im>
parents: 3666
diff changeset
3260
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3261 static int purple_icon_parseicon(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3262 PurpleConnection *gc = od->gc;
4804
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3263 va_list ap;
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3264 char *sn;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3265 guint8 iconcsumtype, *iconcsum, *icon;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3266 guint16 iconcsumlen, iconlen;
4804
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3267
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3268 va_start(ap, fr);
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3269 sn = va_arg(ap, char *);
11024
f4e005b0922b [gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents: 11005
diff changeset
3270 iconcsumtype = va_arg(ap, int);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3271 iconcsum = va_arg(ap, guint8 *);
4853
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
3272 iconcsumlen = va_arg(ap, int);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3273 icon = va_arg(ap, guint8 *);
4804
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3274 iconlen = va_arg(ap, int);
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3275 va_end(ap);
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3276
11024
f4e005b0922b [gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents: 11005
diff changeset
3277 /*
f4e005b0922b [gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents: 11005
diff changeset
3278 * 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
3279 * no icon is set. Ignore these.
f4e005b0922b [gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents: 11005
diff changeset
3280 */
f4e005b0922b [gaim-migrate @ 12897]
Evan Schoenberg <evands@pidgin.im>
parents: 11005
diff changeset
3281 if ((iconlen > 0) && (iconlen != 90)) {
16534
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
3282 char *b16 = purple_base16_encode(iconcsum, iconcsumlen);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3283 purple_buddy_icons_set_for_user(purple_connection_get_account(gc),
16539
75a20ae3a527 Change the imgstore and by extension, then the buddy icon code to take over
Richard Laager <rlaager@pidgin.im>
parents: 16538
diff changeset
3284 sn, g_memdup(icon, iconlen), iconlen, b16);
16534
2ab9e23f99d9 Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents: 16437
diff changeset
3285 g_free(b16);
4853
5b5ed316fe65 [gaim-migrate @ 5180]
Mark Doliner <markdoliner@pidgin.im>
parents: 4848
diff changeset
3286 }
4804
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3287
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3288 return 1;
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3289 }
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3290
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3291 static void
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3292 purple_icons_fetch(PurpleConnection *gc)
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3293 {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
3294 OscarData *od = gc->proto_data;
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
3295 aim_userinfo_t *userinfo;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3296 FlapConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3297
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3298 conn = flap_connection_getbytype(od, SNAC_FAMILY_BART);
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
3299 if (!conn) {
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
3300 if (!od->iconconnecting) {
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
3301 aim_srv_requestnew(od, SNAC_FAMILY_BART);
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
3302 od->iconconnecting = TRUE;
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
3303 }
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3304 return;
4804
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3305 }
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3306
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
3307 if (od->set_icon) {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3308 PurpleAccount *account = purple_connection_get_account(gc);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3309 PurpleStoredImage *img = purple_buddy_icons_find_account_icon(account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3310 if (img == NULL) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3311 aim_ssi_delicon(od);
6039
0d9378194f65 [gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents: 6037
diff changeset
3312 } else {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3313 purple_debug_info("oscar",
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3314 "Uploading icon to icon server\n");
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3315 aim_bart_upload(od, purple_imgstore_get_data(img),
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3316 purple_imgstore_get_size(img));
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
3317 purple_imgstore_unref(img);
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
3318 }
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
3319 od->set_icon = FALSE;
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
3320 }
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
3321
19111
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3322 while (od->requesticon != NULL)
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3323 {
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3324 userinfo = aim_locate_finduserinfo(od, (char *)od->requesticon->data);
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3325 if ((userinfo != NULL) && (userinfo->iconcsumlen > 0))
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3326 aim_bart_request(od, od->requesticon->data, userinfo->iconcsumtype, userinfo->iconcsum, userinfo->iconcsumlen);
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3327
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3328 g_free(od->requesticon->data);
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3329 od->requesticon = g_slist_delete_link(od->requesticon, od->requesticon);
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3330 }
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3331
737382260180 Fetch icons all at once instead of one at a time. I tried pretty hard
Mark Doliner <markdoliner@pidgin.im>
parents: 19109
diff changeset
3332 purple_debug_misc("oscar", "no more icons to request\n");
4804
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3333 }
e6e0e6d50d39 [gaim-migrate @ 5124]
Mark Doliner <markdoliner@pidgin.im>
parents: 4800
diff changeset
3334
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3335 /*
15310
dfd424f9d683 [gaim-migrate @ 18038]
Mark Doliner <markdoliner@pidgin.im>
parents: 15309
diff changeset
3336 * Received in response to an IM sent with the AIM_IMFLAGS_ACK option.
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3337 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3338 static int purple_parse_msgack(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3339 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3340 guint16 type;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3341 char *sn;
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3342
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3343 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3344 type = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3345 sn = va_arg(ap, char *);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3346 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3347
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3348 purple_debug_info("oscar", "Sent message to %s.\n", sn);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3349
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3350 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3351 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3352
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3353 static int purple_parse_ratechange(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3354 static const char *codes[5] = {
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3355 "invalid",
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3356 "change",
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3357 "warning",
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3358 "limit",
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3359 "limit cleared",
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3360 };
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3361 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3362 guint16 code, rateclass;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3363 guint32 windowsize, clear, alert, limit, disconnect, currentavg, maxavg;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3364
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
3365 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3366 code = (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3367 rateclass= (guint16)va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3368 windowsize = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3369 clear = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3370 alert = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3371 limit = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3372 disconnect = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3373 currentavg = va_arg(ap, guint32);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3374 maxavg = va_arg(ap, guint32);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3375 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3376
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3377 purple_debug_misc("oscar",
5556
5d64702e975b [gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents: 5542
diff changeset
3378 "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
3379 "clear warning at %u, limit at %u, disconnect at %u (window size = %u)\n",
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3380 (code < 5) ? codes[code] : codes[0],
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3381 rateclass,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3382 currentavg, maxavg,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3383 alert, clear,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3384 limit, disconnect,
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3385 windowsize);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3386
13257
434b2629ce17 [gaim-migrate @ 15622]
Mark Doliner <markdoliner@pidgin.im>
parents: 13255
diff changeset
3387 if (code == AIM_RATE_CODE_LIMIT)
434b2629ce17 [gaim-migrate @ 15622]
Mark Doliner <markdoliner@pidgin.im>
parents: 13255
diff changeset
3388 {
16375
69202ec2dbfd Remove the OSCAR rate limiting dialog, as the only time I've ever seen it
Sean Egan <seanegan@pidgin.im>
parents: 16197
diff changeset
3389 purple_debug_warning("oscar", _("The last action you attempted could not be "
69202ec2dbfd Remove the OSCAR rate limiting dialog, as the only time I've ever seen it
Sean Egan <seanegan@pidgin.im>
parents: 16197
diff changeset
3390 "performed because you are over the rate limit. "
69202ec2dbfd Remove the OSCAR rate limiting dialog, as the only time I've ever seen it
Sean Egan <seanegan@pidgin.im>
parents: 16197
diff changeset
3391 "Please wait 10 seconds and try again."));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3392 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3393
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3394 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3395 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3396
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3397 static int purple_parse_evilnotify(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
13663
de16367fd001 [gaim-migrate @ 16064]
Mark Doliner <markdoliner@pidgin.im>
parents: 13655
diff changeset
3398 #ifdef CRAZY_WARNING
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3399 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3400 guint16 newevil;
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3401 aim_userinfo_t *userinfo;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3402
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3403 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3404 newevil = (guint16) va_arg(ap, unsigned int);
2421
009ae3cf0e83 [gaim-migrate @ 2434]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2411
diff changeset
3405 userinfo = va_arg(ap, aim_userinfo_t *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3406 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3407
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3408 purple_prpl_got_account_warning_level(account, (userinfo && userinfo->sn) ? userinfo->sn : NULL, (newevil/10.0) + 0.5);
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3409 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3410
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3411 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3412 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3413
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3414 static int purple_selfinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
9982
4f35c5d13c8c [gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents: 9976
diff changeset
3415 int warning_level;
2507
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3416 va_list ap;
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3417 aim_userinfo_t *info;
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3418
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3419 va_start(ap, fr);
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3420 info = va_arg(ap, aim_userinfo_t *);
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3421 va_end(ap);
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3422
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3423 /*
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3424 * What's with the + 0.5?
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3425 * The 0.5 is basically poor-man's rounding. Normally
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3426 * casting "13.7" to an int will truncate to "13," but
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3427 * with 13.7 + 0.5 = 14.2, which becomes "14" when
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3428 * truncated.
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3429 */
9982
4f35c5d13c8c [gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents: 9976
diff changeset
3430 warning_level = info->warnlevel/10.0 + 0.5;
4f35c5d13c8c [gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents: 9976
diff changeset
3431
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3432 #ifdef CRAZY_WARNING
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3433 purple_presence_set_warning_level(presence, warning_level);
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
3434 #endif
2507
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3435
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3436 return 1;
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3437 }
4f2c8913240e [gaim-migrate @ 2520]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2501
diff changeset
3438
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3439 static int purple_connerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3440 PurpleConnection *gc = od->gc;
4649
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3441 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3442 guint16 code;
4649
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3443 char *msg;
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 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3446 code = (guint16)va_arg(ap, int);
4649
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3447 msg = va_arg(ap, char *);
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3448 va_end(ap);
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3449
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3450 purple_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
3451 code, (msg != NULL ? msg : ""));
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
3452
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3453 g_return_val_if_fail(conn != NULL, 1);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3454
18875
c9c59be46538 Move a call to purple_connection_error() from oscar.c to
Mark Doliner <markdoliner@pidgin.im>
parents: 18874
diff changeset
3455 if (conn->type == SNAC_FAMILY_CHAT) {
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
3456 struct chat_connection *cc;
18879
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3457 PurpleConversation *conv = NULL;
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
3458
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3459 cc = find_oscar_chat_by_conn(gc, conn);
18879
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3460 if (cc != NULL)
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
3461 {
18879
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3462 conv = purple_find_chat(gc, cc->id);
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3463
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3464 if (conv != NULL)
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3465 {
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3466 /*
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3467 * TOOD: Have flap_connection_destroy_cb() send us the
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3468 * error message stored in 'tmp', which should be
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3469 * human-friendly, and print that to the chat room.
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3470 */
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3471 gchar *buf;
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3472 buf = g_strdup_printf(_("You have been disconnected from chat "
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3473 "room %s."), cc->name);
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3474 purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_ERROR, time(NULL));
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3475 g_free(buf);
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3476 }
f50b5858e3ec Get rid of a crash that happens when signing off if you have a chat room
Mark Doliner <markdoliner@pidgin.im>
parents: 18877
diff changeset
3477 oscar_chat_kill(gc, cc);
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
3478 }
4649
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3479 }
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3480
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3481 return 1;
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3482 }
ef77210d482f [gaim-migrate @ 4960]
Mark Doliner <markdoliner@pidgin.im>
parents: 4646
diff changeset
3483
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3484 static int purple_icbm_param_info(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3485 struct aim_icbmparameters *params;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3486 va_list ap;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3487
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3488 va_start(ap, fr);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3489 params = va_arg(ap, struct aim_icbmparameters *);
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3490 va_end(ap);
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3491
4194
dbe45b0c38fa [gaim-migrate @ 4425]
Mark Doliner <markdoliner@pidgin.im>
parents: 4173
diff changeset
3492 /* XXX - evidently this crashes on solaris. i have no clue why
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3493 purple_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
3494 "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
3495 params->maxchan, params->flags, params->maxmsglen,
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3496 ((float)params->maxsenderwarn)/10.0, ((float)params->maxrecverwarn)/10.0,
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3497 params->minmsginterval);
2427
761801814c88 [gaim-migrate @ 2440]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2421
diff changeset
3498 */
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3499
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3500 /* Maybe senderwarn and recverwarn should be user preferences... */
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
3501 params->flags = 0x0000000b;
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3502 params->maxmsglen = 8000;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3503 params->minmsginterval = 0;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3504
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3505 aim_im_setparams(od, params);
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3506
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3507 return 1;
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3508 }
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3509
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3510 static int purple_parse_locaterights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3511 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3512 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3513 PurpleAccount *account = purple_connection_get_account(gc);
5306
1707fdf8c530 [gaim-migrate @ 5678]
Mark Doliner <markdoliner@pidgin.im>
parents: 5302
diff changeset
3514 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3515 guint16 maxsiglen;
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3516
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3517 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3518 maxsiglen = (guint16) va_arg(ap, int);
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3519 va_end(ap);
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3520
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3521 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3522 "locate rights: max sig len = %d\n", maxsiglen);
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3523
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3524 od->rights.maxsiglen = od->rights.maxawaymsglen = (guint)maxsiglen;
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3525
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3526 aim_locate_setcaps(od, purple_caps);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
3527 oscar_set_info_and_status(account, TRUE, account->user_info, TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3528 purple_account_get_active_status(account));
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3529
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3530 return 1;
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3531 }
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3532
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3533 static int purple_parse_buddyrights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
3534 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3535 guint16 maxbuddies, maxwatchers;
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3536
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3537 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3538 maxbuddies = (guint16) va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3539 maxwatchers = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3540 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3541
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3542 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3543 "buddy list rights: Max buddies = %hu / Max watchers = %hu\n", maxbuddies, maxwatchers);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3544
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3545 od->rights.maxbuddies = (guint)maxbuddies;
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3546 od->rights.maxwatchers = (guint)maxwatchers;
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3547
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3548 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3549 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3550
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3551 static int purple_bosrights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3552 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3553 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3554 PurpleStatus *status;
19574
c0ac8f8603de I'm going to assume this works, without the benefit of testing. Restore AIM idle time on a reconnect. Fixes #333
Sean Egan <seanegan@pidgin.im>
parents: 19337
diff changeset
3555 PurplePresence *presence;
15689
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
3556 const char *message, *itmsurl;
12344
5dade80f1792 [gaim-migrate @ 14648]
Mark Doliner <markdoliner@pidgin.im>
parents: 12317
diff changeset
3557 char *tmp;
7334
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
3558 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3559 guint16 maxpermits, maxdenies;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3560
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3561 gc = od->gc;
11808
ae5d32dd826c [gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents: 11766
diff changeset
3562 od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3563 account = purple_connection_get_account(gc);
11808
ae5d32dd826c [gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents: 11766
diff changeset
3564
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3565 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3566 maxpermits = (guint16) va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3567 maxdenies = (guint16) va_arg(ap, unsigned int);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3568 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3569
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3570 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3571 "BOS rights: Max permit = %hu / Max deny = %hu\n", maxpermits, maxdenies);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3572
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3573 od->rights.maxpermits = (guint)maxpermits;
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3574 od->rights.maxdenies = (guint)maxdenies;
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3575
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3576 purple_connection_set_state(gc, PURPLE_CONNECTED);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3577
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3578 purple_debug_info("oscar", "buddy list loaded\n");
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
3579
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3580 aim_clientready(od, conn);
11808
ae5d32dd826c [gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents: 11766
diff changeset
3581
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3582 if (purple_account_get_user_info(account) != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3583 serv_set_info(gc, purple_account_get_user_info(account));
15122
58eab9b89e86 [gaim-migrate @ 17844]
Daniel Atallah <datallah@pidgin.im>
parents: 15119
diff changeset
3584
15813
f361b7940203 Don't format ICQ UINs
Sean Egan <seanegan@pidgin.im>
parents: 15741
diff changeset
3585 if (!od->icq)
f361b7940203 Don't format ICQ UINs
Sean Egan <seanegan@pidgin.im>
parents: 15741
diff changeset
3586 oscar_format_screenname(gc, account->username);
15741
73a23e5236e3 Automatically format screenname to account->username
Sean Egan <seanegan@pidgin.im>
parents: 15740
diff changeset
3587
11808
ae5d32dd826c [gaim-migrate @ 14099]
Mark Doliner <markdoliner@pidgin.im>
parents: 11766
diff changeset
3588 /* Set our available message based on the current status */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3589 status = purple_account_get_active_status(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3590 if (purple_status_is_available(status))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3591 message = purple_status_get_attr_string(status, "message");
11810
54a7031fdf39 [gaim-migrate @ 14101]
Mark Doliner <markdoliner@pidgin.im>
parents: 11809
diff changeset
3592 else
54a7031fdf39 [gaim-migrate @ 14101]
Mark Doliner <markdoliner@pidgin.im>
parents: 11809
diff changeset
3593 message = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3594 tmp = purple_markup_strip_html(message);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3595 itmsurl = purple_status_get_attr_string(status, "itmsurl");
15689
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
3596 aim_srv_setextrainfo(od, FALSE, 0, TRUE, tmp, itmsurl);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3597 g_free(tmp);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3598
19574
c0ac8f8603de I'm going to assume this works, without the benefit of testing. Restore AIM idle time on a reconnect. Fixes #333
Sean Egan <seanegan@pidgin.im>
parents: 19337
diff changeset
3599 presence = purple_status_get_presence(status);
19759
17932f81738f rewster from #pidgin pointed out that the conditional was reversed, and
Ka-Hing Cheung <khc@pidgin.im>
parents: 19574
diff changeset
3600 aim_srv_setidle(od, !purple_presence_is_idle(presence) ? 0 : time(NULL) - purple_presence_get_idle_time(presence));
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
3601
4664
1f5d72a07e64 [gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents: 4662
diff changeset
3602 if (od->icq) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3603 aim_icq_reqofflinemsgs(od);
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
3604 oscar_set_extendedstatus(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3605 aim_icq_setsecurity(od,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3606 purple_account_get_bool(account, "authorization", OSCAR_DEFAULT_AUTHORIZATION),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3607 purple_account_get_bool(account, "web_aware", OSCAR_DEFAULT_WEB_AWARE));
4664
1f5d72a07e64 [gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents: 4662
diff changeset
3608 }
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3609
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
3610 aim_srv_requestnew(od, SNAC_FAMILY_CHATNAV);
15139
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3611
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3612 /*
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3613 * 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
3614 * connect to the alerts servce (aka email notification) if this
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3615 * screen name does not support it. I think mail notification
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3616 * 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
3617 * @anythingelse.com accounts. If that's true then this change
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3618 * breaks mail notification for @mac.com accounts, but it gets rid
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3619 * of an annoying error at signon for @anythingelse.com accounts.
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3620 */
a1400936ad49 [gaim-migrate @ 17862]
Mark Doliner <markdoliner@pidgin.im>
parents: 15122
diff changeset
3621 if ((od->authinfo->email != NULL) && ((strchr(gc->account->username, '@') == NULL)))
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
3622 aim_srv_requestnew(od, SNAC_FAMILY_ALERT);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3623
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3624 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3625 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3626
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3627 static int purple_offlinemsg(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3628 va_list ap;
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3629 struct aim_icq_offlinemsg *msg;
4075
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
3630 struct aim_incomingim_ch4_args args;
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
3631 time_t t;
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3632
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3633 va_start(ap, fr);
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3634 msg = va_arg(ap, struct aim_icq_offlinemsg *);
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3635 va_end(ap);
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3636
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3637 purple_debug_info("oscar",
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
3638 "Received offline message. Converting to channel 4 ICBM...\n");
4075
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
3639 args.uin = msg->sender;
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
3640 args.type = msg->type;
4173
e2528bd24e6f [gaim-migrate @ 4403]
Mark Doliner <markdoliner@pidgin.im>
parents: 4166
diff changeset
3641 args.flags = msg->flags;
4076
563a1af15501 [gaim-migrate @ 4291]
Mark Doliner <markdoliner@pidgin.im>
parents: 4075
diff changeset
3642 args.msglen = msg->msglen;
4075
1b8062090546 [gaim-migrate @ 4290]
Mark Doliner <markdoliner@pidgin.im>
parents: 4056
diff changeset
3643 args.msg = msg->msg;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3644 t = purple_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
3645 incomingim_chan4(od, conn, NULL, &args, t);
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3646
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3647 return 1;
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3648 }
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3649
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3650 static int purple_offlinemsgdone(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3651 {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3652 aim_icq_ackofflinemsgs(od);
2706
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3653 return 1;
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3654 }
ac9384d37d6c [gaim-migrate @ 2719]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2704
diff changeset
3655
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3656 static int purple_icqinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3657 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3658 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3659 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3660 PurpleBuddy *buddy;
16043
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3661 PurplePresence *presence;
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3662 PurpleStatus *status;
13935
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
3663 struct buddyinfo *bi;
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
3664 gchar who[16];
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3665 PurpleNotifyUserInfo *user_info;
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3666 GString *tmp;
11533
f58436975d44 [gaim-migrate @ 13782]
Richard Laager <rlaager@pidgin.im>
parents: 11532
diff changeset
3667 gchar *utf8;
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3668 gchar *buf;
9634
166f3ac40f4a [gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents: 9631
diff changeset
3669 const gchar *alias;
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3670 va_list ap;
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
3671 struct aim_icq_info *info;
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3672
13935
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
3673 gc = od->gc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3674 account = purple_connection_get_account(gc);
13935
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
3675
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3676 va_start(ap, fr);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
3677 info = va_arg(ap, struct aim_icq_info *);
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3678 va_end(ap);
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3679
4664
1f5d72a07e64 [gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents: 4662
diff changeset
3680 if (!info->uin)
1f5d72a07e64 [gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents: 4662
diff changeset
3681 return 0;
1f5d72a07e64 [gaim-migrate @ 4975]
Mark Doliner <markdoliner@pidgin.im>
parents: 4662
diff changeset
3682
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3683 user_info = purple_notify_user_info_new();
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3684
5556
5d64702e975b [gaim-migrate @ 5957]
Mark Doliner <markdoliner@pidgin.im>
parents: 5542
diff changeset
3685 g_snprintf(who, sizeof(who), "%u", info->uin);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3686 buddy = purple_find_buddy(purple_connection_get_account(gc), who);
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3687 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3688 bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(buddy->account, buddy->name));
13935
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
3689 else
70c9d9e75948 [gaim-migrate @ 16344]
Mark Doliner <markdoliner@pidgin.im>
parents: 13924
diff changeset
3690 bi = NULL;
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3691
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3692 purple_notify_user_info_add_pair(user_info, _("UIN"), who);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3693 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
3694 if ((bi != NULL) && (bi->ipaddr != 0)) {
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3695 char *tstr = g_strdup_printf("%hhu.%hhu.%hhu.%hhu",
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3696 (bi->ipaddr & 0xff000000) >> 24,
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3697 (bi->ipaddr & 0x00ff0000) >> 16,
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3698 (bi->ipaddr & 0x0000ff00) >> 8,
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3699 (bi->ipaddr & 0x000000ff));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3700 purple_notify_user_info_add_pair(user_info, _("IP Address"), tstr);
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3701 g_free(tstr);
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3702 }
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3703 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
3704 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
3705 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
3706 buf = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", utf8, utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3707 purple_notify_user_info_add_pair(user_info, _("E-Mail Address"), buf);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3708 g_free(buf);
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3709 g_free(utf8);
4625
f5b87130e1c4 [gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents: 4624
diff changeset
3710 }
f5b87130e1c4 [gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents: 4624
diff changeset
3711 if (info->numaddresses && info->email2) {
f5b87130e1c4 [gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents: 4624
diff changeset
3712 int i;
f5b87130e1c4 [gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents: 4624
diff changeset
3713 for (i = 0; i < info->numaddresses; i++) {
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
3714 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
3715 buf = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", utf8, utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3716 purple_notify_user_info_add_pair(user_info, _("E-Mail Address"), buf);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3717 g_free(buf);
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3718 g_free(utf8);
4643
549034ae52ab [gaim-migrate @ 4953]
Nathan Walp <nwalp@pidgin.im>
parents: 4642
diff changeset
3719 }
4625
f5b87130e1c4 [gaim-migrate @ 4916]
Mark Doliner <markdoliner@pidgin.im>
parents: 4624
diff changeset
3720 }
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
3721 }
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3722 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
3723
10022
b5bb3bdd4d1a [gaim-migrate @ 10954]
Mark Doliner <markdoliner@pidgin.im>
parents: 10009
diff changeset
3724 if (info->gender != 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3725 purple_notify_user_info_add_pair(user_info, _("Gender"), (info->gender == 1 ? _("Female") : _("Male")));
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3726
12491
7e5229b88eea [gaim-migrate @ 14803]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12486
diff changeset
3727 if ((info->birthyear > 1900) && (info->birthmonth > 0) && (info->birthday > 0)) {
13717
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3728 /* Initialize the struct properly or strftime() will crash
13730
cf63be7eb903 [gaim-migrate @ 16139]
Richard Laager <rlaager@pidgin.im>
parents: 13719
diff changeset
3729 * 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
3730 time_t t = time(NULL);
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3731 struct tm *tm = localtime(&t);
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3732
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3733 tm->tm_mday = (int)info->birthday;
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3734 tm->tm_mon = (int)info->birthmonth - 1;
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3735 tm->tm_year = (int)info->birthyear - 1900;
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3736
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3737 /* To be 100% sure that the fields are re-normalized.
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3738 * If you're sure strftime() ALWAYS does this EVERYWHERE,
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3739 * feel free to remove it. --rlaager */
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3740 mktime(tm);
e42ba3023369 [gaim-migrate @ 16123]
Richard Laager <rlaager@pidgin.im>
parents: 13707
diff changeset
3741
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3742 oscar_user_info_convert_and_add(account, user_info, _("Birthday"), purple_date_format_short(tm));
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
3743 }
12491
7e5229b88eea [gaim-migrate @ 14803]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12486
diff changeset
3744 if ((info->age > 0) && (info->age < 255)) {
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
3745 char age[5];
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
3746 snprintf(age, sizeof(age), "%hhd", info->age);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3747 purple_notify_user_info_add_pair(user_info,
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3748 _("Age"), age);
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
3749 }
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
3750 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
3751 buf = g_strdup_printf("<a href=\"%s\">%s</a>", utf8, utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3752 purple_notify_user_info_add_pair(user_info, _("Personal Web Page"), buf);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3753 g_free(buf);
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3754 g_free(utf8);
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3755 }
16043
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3756
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3757 if (buddy != NULL) {
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3758 const gchar *message;
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3759 gchar *utf8, *tmp;
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3760
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3761 presence = purple_buddy_get_presence(buddy);
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3762 status = purple_presence_get_active_status(presence);
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3763 message = purple_status_get_attr_string(status, "message");
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3764
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3765 utf8 = message && message[0] ? oscar_utf8_try_convert(account, message) : NULL;
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3766 tmp = g_strdup_printf("%s%s%s",
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3767 purple_status_get_name(status),
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3768 utf8 && *utf8 ? ": " : "",
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3769 utf8 && *utf8 ? utf8 : "");
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3770 g_free(utf8);
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3771
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3772 oscar_user_info_convert_and_add(account,
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3773 user_info, _("Status"), tmp);
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3774 }
e5995c414ec5 sf patch #1574238, from Ka-Hing Cheung
Mark Doliner <markdoliner@pidgin.im>
parents: 15927
diff changeset
3775
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3776 oscar_user_info_convert_and_add(account, user_info, _("Additional Information"), info->info);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3777 purple_notify_user_info_add_section_break(user_info);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3778
4641
bcc6f5e3018a [gaim-migrate @ 4951]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
3779 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
3780 tmp = g_string_sized_new(100);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3781 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
3782 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
3783 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
3784 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
3785
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3786 purple_notify_user_info_add_pair(user_info, _("Home Address"), tmp->str);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3787 purple_notify_user_info_add_section_break(user_info);
15210
4278244e432c [gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents: 15205
diff changeset
3788
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3789 g_string_free(tmp, TRUE);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
3790 }
4641
bcc6f5e3018a [gaim-migrate @ 4951]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
3791 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
3792 tmp = g_string_sized_new(100);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3793
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3794 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
3795 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
3796 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
3797 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
3798
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3799 purple_notify_user_info_add_pair(user_info, _("Work Address"), tmp->str);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3800 purple_notify_user_info_add_section_break(user_info);
15210
4278244e432c [gaim-migrate @ 17934]
Evan Schoenberg <evands@pidgin.im>
parents: 15205
diff changeset
3801
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3802 g_string_free(tmp, TRUE);
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
3803 }
4641
bcc6f5e3018a [gaim-migrate @ 4951]
Mark Doliner <markdoliner@pidgin.im>
parents: 4634
diff changeset
3804 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
3805 tmp = g_string_sized_new(100);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3806
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3807 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
3808 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
3809 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
3810 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
3811 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
3812 g_free(utf8);
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
3813 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3814 purple_notify_user_info_add_pair(user_info, _("Work Information"), tmp->str);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
3815 g_string_free(tmp, TRUE);
8670
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3816 }
a3d5260f1d8f [gaim-migrate @ 9422]
Mark Doliner <markdoliner@pidgin.im>
parents: 8668
diff changeset
3817
9634
166f3ac40f4a [gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents: 9631
diff changeset
3818 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3819 alias = purple_buddy_get_alias(buddy);
9634
166f3ac40f4a [gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents: 9631
diff changeset
3820 else
166f3ac40f4a [gaim-migrate @ 10478]
Mark Doliner <markdoliner@pidgin.im>
parents: 9631
diff changeset
3821 alias = who;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3822 purple_notify_userinfo(gc, who, user_info, NULL, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3823 purple_notify_user_info_destroy(user_info);
4151
29004a3d21a0 [gaim-migrate @ 4377]
Mark Doliner <markdoliner@pidgin.im>
parents: 4121
diff changeset
3824
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3825 return 1;
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3826 }
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
3827
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3828 static int purple_icqalias(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
4759
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3829 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3830 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3831 PurpleAccount *account = purple_connection_get_account(gc);
4820
1e869f00810b [gaim-migrate @ 5145]
Mark Doliner <markdoliner@pidgin.im>
parents: 4819
diff changeset
3832 gchar who[16], *utf8;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3833 PurpleBuddy *b;
4759
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3834 va_list ap;
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3835 struct aim_icq_info *info;
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3836
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3837 va_start(ap, fr);
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3838 info = va_arg(ap, struct aim_icq_info *);
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3839 va_end(ap);
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3840
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
3841 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
3842 g_snprintf(who, sizeof(who), "%u", info->uin);
4820
1e869f00810b [gaim-migrate @ 5145]
Mark Doliner <markdoliner@pidgin.im>
parents: 4819
diff changeset
3843 serv_got_alias(gc, who, utf8);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3844 if ((b = purple_find_buddy(gc->account, who))) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3845 purple_blist_node_set_string((PurpleBlistNode*)b, "servernick", utf8);
4759
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3846 }
4820
1e869f00810b [gaim-migrate @ 5145]
Mark Doliner <markdoliner@pidgin.im>
parents: 4819
diff changeset
3847 g_free(utf8);
4759
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3848 }
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3849
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3850 return 1;
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3851 }
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
3852
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3853 static int purple_popup(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3854 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3855 PurpleConnection *gc = od->gc;
7032
a6587d42db0c [gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents: 7026
diff changeset
3856 gchar *text;
a6587d42db0c [gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents: 7026
diff changeset
3857 va_list ap;
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3858 char *msg, *url;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3859 guint16 wid, hei, delay;
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3860
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3861 va_start(ap, fr);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3862 msg = va_arg(ap, char *);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3863 url = va_arg(ap, char *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3864 wid = (guint16) va_arg(ap, int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3865 hei = (guint16) va_arg(ap, int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3866 delay = (guint16) va_arg(ap, int);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3867 va_end(ap);
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3868
7032
a6587d42db0c [gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents: 7026
diff changeset
3869 text = g_strdup_printf("%s<br><a href=\"%s\">%s</a>", msg, url, url);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3870 purple_notify_formatted(gc, NULL, _("Pop-Up Message"), NULL, text, NULL, NULL);
7032
a6587d42db0c [gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents: 7026
diff changeset
3871 g_free(text);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3872
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3873 return 1;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3874 }
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
3875
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3876 static void oscar_searchresults_add_buddy_cb(PurpleConnection *gc, GList *row, void *user_data)
11359
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3877 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3878 purple_blist_request_add_buddy(purple_connection_get_account(gc),
11359
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3879 g_list_nth_data(row, 0), NULL, NULL);
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3880 }
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3881
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3882 static int purple_parse_searchreply(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
7032
a6587d42db0c [gaim-migrate @ 7595]
Mark Doliner <markdoliner@pidgin.im>
parents: 7026
diff changeset
3883 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3884 PurpleConnection *gc = od->gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3885 PurpleNotifySearchResults *results;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3886 PurpleNotifySearchColumn *column;
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3887 gchar *secondary;
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3888 int i, num;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3889 va_list ap;
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3890 char *email, *SNs;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3891
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3892 va_start(ap, fr);
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3893 email = va_arg(ap, char *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3894 num = va_arg(ap, int);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3895 SNs = va_arg(ap, char *);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3896 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3897
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3898 results = purple_notify_searchresults_new();
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3899
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3900 if (results == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3901 purple_debug_error("oscar", "purple_parse_searchreply: "
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3902 "Unable to display the search results.\n");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3903 purple_notify_error(gc, NULL,
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3904 _("Unable to display the search results."),
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3905 NULL);
12260
4b2e29383b0e [gaim-migrate @ 14562]
Mark Doliner <markdoliner@pidgin.im>
parents: 12257
diff changeset
3906 return 1;
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3907 }
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12254
diff changeset
3908
12254
af73b85cad3d [gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents: 12243
diff changeset
3909 secondary = g_strdup_printf(
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
3910 dngettext(PACKAGE, "The following screen name is associated with %s",
12254
af73b85cad3d [gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents: 12243
diff changeset
3911 "The following screen names are associated with %s",
af73b85cad3d [gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents: 12243
diff changeset
3912 num),
af73b85cad3d [gaim-migrate @ 14556]
Richard Laager <rlaager@pidgin.im>
parents: 12243
diff changeset
3913 email);
10439
5868d8f55fb1 [gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents: 10405
diff changeset
3914
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3915 column = purple_notify_searchresults_column_new(_("Screen name"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3916 purple_notify_searchresults_column_add(results, column);
11359
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3917
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3918 for (i = 0; i < num; i++) {
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3919 GList *row = NULL;
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3920 row = g_list_append(row, g_strdup(&SNs[i * (MAXSNLEN + 1)]));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3921 purple_notify_searchresults_row_add(results, row);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3922 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3923 purple_notify_searchresults_button_add(results, PURPLE_NOTIFY_BUTTON_ADD,
11359
9630f62029f2 [gaim-migrate @ 13581]
Bartosz Oler <bartosz@pidgin.im>
parents: 11347
diff changeset
3924 oscar_searchresults_add_buddy_cb);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3925 purple_notify_searchresults(gc, NULL, NULL, secondary, results, NULL, NULL);
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3926
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3927 g_free(secondary);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3928
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3929 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3930 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3931
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3932 static int purple_parse_searcherror(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3933 va_list ap;
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3934 char *email;
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
3935 char *buf;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3936
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3937 va_start(ap, fr);
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
3938 email = va_arg(ap, char *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3939 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3940
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
3941 buf = g_strdup_printf(_("No results found for e-mail address %s"), email);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3942 purple_notify_error(od->gc, NULL, buf, NULL);
5420
f5535376ef7d [gaim-migrate @ 5799]
Mark Doliner <markdoliner@pidgin.im>
parents: 5411
diff changeset
3943 g_free(buf);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3944
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3945 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3946 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3947
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3948 static int purple_account_confirm(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3949 PurpleConnection *gc = od->gc;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3950 guint16 status;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3951 va_list ap;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3952 char msg[256];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3953
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3954 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3955 status = (guint16) va_arg(ap, unsigned int); /* status code of confirmation request */
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3956 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3957
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3958 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
3959 "account confirmation returned status 0x%04x (%s)\n", status,
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
3960 status ? "unknown" : "e-mail sent");
3912
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3961 if (!status) {
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
3962 g_snprintf(msg, sizeof(msg), _("You should receive an e-mail asking to confirm %s."),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3963 purple_account_get_username(purple_connection_get_account(gc)));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3964 purple_notify_info(gc, NULL, _("Account Confirmation Requested"), msg);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3965 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3966
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3967 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3968 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3969
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3970 static int purple_info_change(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3971 PurpleConnection *gc = od->gc;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3972 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3973 guint16 perms, err;
3912
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3974 char *url, *sn, *email;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3975 int change;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3976
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3977 va_start(ap, fr);
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
3978 change = va_arg(ap, int);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3979 perms = (guint16) va_arg(ap, unsigned int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
3980 err = (guint16) va_arg(ap, unsigned int);
3912
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3981 url = va_arg(ap, char *);
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3982 sn = va_arg(ap, char *);
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3983 email = va_arg(ap, char *);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3984 va_end(ap);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3985
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
3986 purple_debug_misc("oscar",
9626
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
3987 "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
3988 change ? "change" : "request", perms, err,
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
3989 (url != NULL) ? url : "(null)",
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
3990 (sn != NULL) ? sn : "(null)",
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
3991 (email != NULL) ? email : "(null)");
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
3992
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
3993 if ((err > 0) && (url != NULL)) {
3912
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3994 char *dialog_msg;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3995 char *dialog_top = g_strdup_printf(_("Error Changing Account Info"));
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3996 switch (err) {
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3997 case 0x0001: {
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
3998 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
3999 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4000 case 0x0006: {
11399
2313bf7bed5b [gaim-migrate @ 13634]
Mark Doliner <markdoliner@pidgin.im>
parents: 11369
diff changeset
4001 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
4002 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4003 case 0x000b: {
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4004 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
4005 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4006 case 0x001d: {
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
4007 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
4008 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4009 case 0x0021: {
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
4010 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
4011 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4012 case 0x0023: {
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
4013 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
4014 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4015 default: {
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4016 dialog_msg = g_strdup_printf(_("Error 0x%04x: Unknown error."), err);
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4017 } break;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4018 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4019 purple_notify_error(gc, NULL, dialog_top, dialog_msg);
3912
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4020 g_free(dialog_top);
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4021 g_free(dialog_msg);
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4022 return 1;
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4023 }
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4024
9626
0bf7f913c6ca [gaim-migrate @ 10470]
Mark Doliner <markdoliner@pidgin.im>
parents: 9625
diff changeset
4025 if (email != NULL) {
13546
0700f0c29e14 [gaim-migrate @ 15922]
Richard Laager <rlaager@pidgin.im>
parents: 13478
diff changeset
4026 char *dialog_msg = g_strdup_printf(_("The e-mail address for %s is %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4027 purple_account_get_username(purple_connection_get_account(gc)), email);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4028 purple_notify_info(gc, NULL, _("Account Info"), dialog_msg);
3912
334ebe7e5f93 [gaim-migrate @ 4071]
Mark Doliner <markdoliner@pidgin.im>
parents: 3867
diff changeset
4029 g_free(dialog_msg);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4030 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4031
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4032 return 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4033 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4034
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4035 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4036 oscar_keepalive(PurpleConnection *gc)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4037 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4038 OscarData *od;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4039 FlapConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4040
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4041 od = (OscarData *)gc->proto_data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4042 conn = flap_connection_getbytype(od, SNAC_FAMILY_LOCATE);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4043 if (conn != NULL)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4044 flap_connection_send_keepalive(od, conn);
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
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4047 unsigned int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4048 oscar_send_typing(PurpleConnection *gc, const char *name, PurpleTypingState state)
13593
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 OscarData *od;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4051 PeerConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4052
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4053 od = (OscarData *)gc->proto_data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4054 conn = peer_connection_find_by_type(od, name, OSCAR_CAPABILITY_DIRECTIM);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4055
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4056 if ((conn != NULL) && (conn->ready))
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4057 {
13844
835b8f7b3d1d [gaim-migrate @ 16295]
Mark Doliner <markdoliner@pidgin.im>
parents: 13829
diff changeset
4058 peer_odc_send_typing(conn, state);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4059 }
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
4060 else {
5300
3a728d511680 [gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents: 5238
diff changeset
4061 /* Don't send if this turkey is in our deny list */
3a728d511680 [gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents: 5238
diff changeset
4062 GSList *list;
3a728d511680 [gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents: 5238
diff changeset
4063 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
4064 if (!list) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4065 struct buddyinfo *bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(gc->account, name));
5300
3a728d511680 [gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents: 5238
diff changeset
4066 if (bi && bi->typingnot) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4067 if (state == PURPLE_TYPING)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4068 aim_im_sendmtn(od, 0x0001, name, 0x0002);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4069 else if (state == PURPLE_TYPED)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4070 aim_im_sendmtn(od, 0x0001, name, 0x0001);
5300
3a728d511680 [gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents: 5238
diff changeset
4071 else
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4072 aim_im_sendmtn(od, 0x0001, name, 0x0000);
5300
3a728d511680 [gaim-migrate @ 5672]
Mark Doliner <markdoliner@pidgin.im>
parents: 5238
diff changeset
4073 }
3595
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
4074 }
28da7ae040a5 [gaim-migrate @ 3697]
Mark Doliner <markdoliner@pidgin.im>
parents: 3579
diff changeset
4075 }
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
4076 return 0;
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
4077 }
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
4078
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4079 /* TODO: Move this into odc.c! */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4080 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4081 purple_odc_send_im(PeerConnection *conn, const char *message, PurpleMessageFlags imflags)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4082 {
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4083 GString *msg;
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4084 GString *data;
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4085 gchar *tmp;
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4086 int tmplen;
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4087 guint16 charset, charsubset;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4088 GData *attribs;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4089 const char *start, *end, *last;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4090 int oscar_id = 0;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4091
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4092 msg = g_string_new("<HTML><BODY>");
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4093 data = g_string_new("<BINARY>");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4094 last = message;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4095
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4096 /* for each valid IMG tag... */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4097 while (last && *last && purple_markup_find_tag("img", last, &start, &end, &attribs))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4098 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4099 PurpleStoredImage *image = NULL;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4100 const char *id;
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 if (start - last) {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4103 g_string_append_len(msg, last, start - last);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4104 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4105
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4106 id = g_datalist_get_data(&attribs, "id");
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4107
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4108 /* ... if it refers to a valid purple image ... */
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16405
diff changeset
4109 if (id && (image = purple_imgstore_find_by_id(atoi(id)))) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4110 /* ... append the message from start to the tag ... */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4111 unsigned long size = purple_imgstore_get_size(image);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4112 const char *filename = purple_imgstore_get_filename(image);
16437
7ff7c3405ea2 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents: 16405
diff changeset
4113 gconstpointer imgdata = purple_imgstore_get_data(image);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4114
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4115 oscar_id++;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4116
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4117 /* ... insert a new img tag with the oscar id ... */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4118 if (filename)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4119 g_string_append_printf(msg,
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4120 "<IMG SRC=\"%s\" ID=\"%d\" DATASIZE=\"%lu\">",
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4121 filename, oscar_id, size);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4122 else
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4123 g_string_append_printf(msg,
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4124 "<IMG ID=\"%d\" DATASIZE=\"%lu\">",
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4125 oscar_id, size);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4126
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4127 /* ... and append the data to the binary section ... */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4128 g_string_append_printf(data, "<DATA ID=\"%d\" SIZE=\"%lu\">",
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4129 oscar_id, size);
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4130 g_string_append_len(data, imgdata, size);
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4131 g_string_append(data, "</DATA>");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4132 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4133 /* If the tag is invalid, skip it, thus no else here */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4134
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4135 g_datalist_clear(&attribs);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4136
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4137 /* continue from the end of the tag */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4138 last = end + 1;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4139 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4140
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4141 /* append any remaining message data */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4142 if (last && *last)
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4143 g_string_append(msg, last);
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4144
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4145 g_string_append(msg, "</BODY></HTML>");
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4146
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4147 /* Convert the message to a good encoding */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4148 purple_plugin_oscar_convert_to_best_encoding(conn->od->gc,
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4149 conn->sn, msg->str, &tmp, &tmplen, &charset, &charsubset);
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4150 g_string_free(msg, TRUE);
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4151 msg = g_string_new_len(tmp, tmplen);
17201
ea978e6a73bb Fix a leak of the string in each Direct IM message, reported by jas8522 in AdiumTicket:#6982
Evan Schoenberg <evands@pidgin.im>
parents: 17003
diff changeset
4152 g_free(tmp);
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4153
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4154 /* Append any binary data that we may have */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4155 if (oscar_id) {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4156 msg = g_string_append_len(msg, data->str, data->len);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4157 msg = g_string_append(msg, "</BINARY>");
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4158 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4159 g_string_free(data, TRUE);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4160
13602
6a1cf9b5c913 [gaim-migrate @ 15987]
Mark Doliner <markdoliner@pidgin.im>
parents: 13601
diff changeset
4161 peer_odc_send_im(conn, msg->str, msg->len, charset,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4162 imflags & PURPLE_MESSAGE_AUTO_RESP);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4163 g_string_free(msg, TRUE);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4164 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4165
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4166 int
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4167 oscar_send_im(PurpleConnection *gc, const char *name, const char *message, PurpleMessageFlags imflags)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4168 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4169 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4170 PurpleAccount *account;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4171 PeerConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4172 int ret;
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4173 char *tmp1, *tmp2;
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4174 gboolean is_html;
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4175
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4176 od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4177 account = purple_connection_get_account(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4178 ret = 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4179
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
4180 if (od->icq && aim_snvalid_sms(name)) {
19819
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4181 /*
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4182 * We're sending to a phone number and this is ICQ,
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4183 * so send the message as an SMS using aim_icq_sendsms()
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4184 */
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4185 int ret;
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4186 purple_debug_info("oscar", "Sending SMS to %s.\n", name);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4187 ret = aim_icq_sendsms(od, name, message, purple_account_get_username(account));
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4188 return (ret >= 0 ? 1 : ret);
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4189 }
e9d8873f4d27 Add non-US SMS support for ICQ. This is a patch from DB42.
Mark Doliner <markdoliner@pidgin.im>
parents: 19759
diff changeset
4190
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4191 if (imflags & PURPLE_MESSAGE_AUTO_RESP)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4192 tmp1 = purple_str_sub_away_formatters(message, name);
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4193 else
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4194 tmp1 = g_strdup(message);
3458
6140a920776b [gaim-migrate @ 3506]
Mark Doliner <markdoliner@pidgin.im>
parents: 3456
diff changeset
4195
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4196 conn = peer_connection_find_by_type(od, name, OSCAR_CAPABILITY_DIRECTIM);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4197 if ((conn != NULL) && (conn->ready))
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4198 {
4838
653f06ff2acf [gaim-migrate @ 5163]
Mark Doliner <markdoliner@pidgin.im>
parents: 4834
diff changeset
4199 /* If we're directly connected, send a direct IM */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4200 purple_odc_send_im(conn, tmp1, imflags);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4201 } else {
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4202 struct buddyinfo *bi;
3008
9a68ea192a96 [gaim-migrate @ 3021]
Sean Egan <seanegan@pidgin.im>
parents: 3001
diff changeset
4203 struct aim_sendimext_args args;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4204 PurpleConversation *conv;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4205 PurpleStoredImage *img;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4206
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4207 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account);
8962
5cd12e525d95 [gaim-migrate @ 9736]
Tim Ringenbach <marv@pidgin.im>
parents: 8950
diff changeset
4208
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4209 if (strstr(tmp1, "<IMG "))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4210 purple_conversation_write(conv, "",
8962
5cd12e525d95 [gaim-migrate @ 9736]
Tim Ringenbach <marv@pidgin.im>
parents: 8950
diff changeset
4211 _("Your IM Image was not sent. "
5cd12e525d95 [gaim-migrate @ 9736]
Tim Ringenbach <marv@pidgin.im>
parents: 8950
diff changeset
4212 "You must be Direct Connected to send IM Images."),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4213 PURPLE_MESSAGE_ERROR, time(NULL));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4214
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4215 bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, name));
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4216 if (!bi) {
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4217 bi = g_new0(struct buddyinfo, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4218 g_hash_table_insert(od->buddyinfo, g_strdup(purple_normalize(account, name)), bi);
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4219 }
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4220
3008
9a68ea192a96 [gaim-migrate @ 3021]
Sean Egan <seanegan@pidgin.im>
parents: 3001
diff changeset
4221 args.flags = AIM_IMFLAGS_ACK | AIM_IMFLAGS_CUSTOMFEATURES;
4665
d417f1b1a61b [gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents: 4664
diff changeset
4222 if (od->icq) {
11185
b8bfd357e6cf [gaim-migrate @ 13297]
Mark Doliner <markdoliner@pidgin.im>
parents: 11172
diff changeset
4223 /* We have to present different "features" (whose meaning
11172
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4224 is unclear and are merely a result of protocol inspection)
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4225 to offline ICQ buddies. Otherwise, the official
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4226 ICQ client doesn't treat those messages as being "ANSI-
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4227 encoded" (and instead, assumes them to be UTF-8).
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4228 For more details, see SF issue 1179452.
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4229 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4230 PurpleBuddy *buddy = purple_find_buddy(gc->account, name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4231 if (buddy && PURPLE_BUDDY_IS_ONLINE(buddy)) {
11172
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4232 args.features = features_icq;
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4233 args.featureslen = sizeof(features_icq);
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4234 } else {
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4235 args.features = features_icq_offline;
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4236 args.featureslen = sizeof(features_icq_offline);
1c5c0c6090c3 [gaim-migrate @ 13274]
Ilya Konstantinov
parents: 11162
diff changeset
4237 }
3008
9a68ea192a96 [gaim-migrate @ 3021]
Sean Egan <seanegan@pidgin.im>
parents: 3001
diff changeset
4238 args.flags |= AIM_IMFLAGS_OFFLINE;
4665
d417f1b1a61b [gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents: 4664
diff changeset
4239 } else {
d417f1b1a61b [gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents: 4664
diff changeset
4240 args.features = features_aim;
d417f1b1a61b [gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents: 4664
diff changeset
4241 args.featureslen = sizeof(features_aim);
4972
3dd342b21444 [gaim-migrate @ 5306]
Mark Doliner <markdoliner@pidgin.im>
parents: 4969
diff changeset
4242
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4243 if (imflags & PURPLE_MESSAGE_AUTO_RESP)
4972
3dd342b21444 [gaim-migrate @ 5306]
Mark Doliner <markdoliner@pidgin.im>
parents: 4969
diff changeset
4244 args.flags |= AIM_IMFLAGS_AWAY;
4665
d417f1b1a61b [gaim-migrate @ 4976]
Mark Doliner <markdoliner@pidgin.im>
parents: 4664
diff changeset
4245 }
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4246
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4247 if (bi->ico_need) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4248 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
4249 "Sending buddy icon request with message\n");
3008
9a68ea192a96 [gaim-migrate @ 3021]
Sean Egan <seanegan@pidgin.im>
parents: 3001
diff changeset
4250 args.flags |= AIM_IMFLAGS_BUDDYREQ;
4738
934125d7450e [gaim-migrate @ 5053]
Mark Doliner <markdoliner@pidgin.im>
parents: 4734
diff changeset
4251 bi->ico_need = FALSE;
3008
9a68ea192a96 [gaim-migrate @ 3021]
Sean Egan <seanegan@pidgin.im>
parents: 3001
diff changeset
4252 }
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4253
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4254 img = purple_buddy_icons_find_account_icon(account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4255 if (img) {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4256 gconstpointer data = purple_imgstore_get_data(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4257 args.iconlen = purple_imgstore_get_size(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4258 args.iconsum = aimutil_iconsum(data, args.iconlen);
16677
7cd57586cdbf The OSCAR timestamp stuff.
Richard Laager <rlaager@pidgin.im>
parents: 16545
diff changeset
4259 args.iconstamp = purple_buddy_icons_get_account_icon_timestamp(account);
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4260
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4261 if ((args.iconlen != bi->ico_me_len) || (args.iconsum != bi->ico_me_csum) || (args.iconstamp != bi->ico_me_time)) {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4262 bi->ico_informed = FALSE;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4263 bi->ico_sent = FALSE;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4264 }
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4265
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4266 /*
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4267 * TODO:
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4268 * For some reason sending our icon to people only works
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4269 * when we're the ones who initiated the conversation. If
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4270 * the other person sends the first IM then they never get
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4271 * the icon. We should fix that.
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4272 */
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4273 if (!bi->ico_informed) {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4274 purple_debug_info("oscar",
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4275 "Claiming to have a buddy icon\n");
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4276 args.flags |= AIM_IMFLAGS_HASICON;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4277 bi->ico_me_len = args.iconlen;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4278 bi->ico_me_csum = args.iconsum;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4279 bi->ico_me_time = args.iconstamp;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4280 bi->ico_informed = TRUE;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4281 }
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4282
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4283 purple_imgstore_unref(img);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4284 }
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4285
3008
9a68ea192a96 [gaim-migrate @ 3021]
Sean Egan <seanegan@pidgin.im>
parents: 3001
diff changeset
4286 args.destsn = name;
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4287
8985
5045635e6d86 [gaim-migrate @ 9760]
Mark Doliner <markdoliner@pidgin.im>
parents: 8984
diff changeset
4288 /*
13166
2724be46f443 [gaim-migrate @ 15528]
Evan Schoenberg <evands@pidgin.im>
parents: 13159
diff changeset
4289 * 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
4290 */
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
4291 if (aim_snvalid_sms(name)) {
13166
2724be46f443 [gaim-migrate @ 15528]
Evan Schoenberg <evands@pidgin.im>
parents: 13159
diff changeset
4292 /* Messaging an SMS (mobile) user */
16143
6393e5b11ff5 Patch from shlomil in ticket #78.
Shlomi Loubaton <shlomister@gmail.com>
parents: 16124
diff changeset
4293 tmp2 = purple_markup_strip_html(tmp1);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4294 is_html = FALSE;
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
4295 } else if (aim_snvalid_icq(purple_account_get_username(account))) {
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
4296 if (aim_snvalid_icq(name)) {
10781
0685b98c081c [gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents: 10753
diff changeset
4297 /* From ICQ to ICQ */
16143
6393e5b11ff5 Patch from shlomil in ticket #78.
Shlomi Loubaton <shlomister@gmail.com>
parents: 16124
diff changeset
4298 tmp2 = purple_markup_strip_html(tmp1);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4299 is_html = FALSE;
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4300 } else {
10781
0685b98c081c [gaim-migrate @ 12406]
Mark Doliner <markdoliner@pidgin.im>
parents: 10753
diff changeset
4301 /* From ICQ to AIM */
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4302 tmp2 = g_strdup(tmp1);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4303 is_html = TRUE;
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4304 }
8995
f35860fdf94d [gaim-migrate @ 9770]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8993
diff changeset
4305 } else {
10785
dddaac60f963 [gaim-migrate @ 12423]
Mark Doliner <markdoliner@pidgin.im>
parents: 10783
diff changeset
4306 /* From AIM to AIM and AIM to ICQ */
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4307 tmp2 = g_strdup(tmp1);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4308 is_html = TRUE;
8995
f35860fdf94d [gaim-migrate @ 9770]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8993
diff changeset
4309 }
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4310 g_free(tmp1);
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4311 tmp1 = tmp2;
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4312
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4313 purple_plugin_oscar_convert_to_best_encoding(gc, name, tmp1, (char **)&args.msg, &args.msglen, &args.charset, &args.charsubset);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4314 if (is_html && (args.msglen > MAXMSGLEN)) {
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4315 /* If the length was too long, try stripping the HTML and then running it back through
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4316 * purple_strdup_withhtml() and the encoding process. The result may be shorter. */
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4317 g_free((char *)args.msg);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4318
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4319 tmp2 = purple_markup_strip_html(tmp1);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4320 g_free(tmp1);
18864
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4321
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4322 /* re-escape the entities */
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4323 tmp1 = g_markup_escape_text(tmp2, -1);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4324 g_free(tmp2);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4325
18864
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4326 tmp2 = purple_strdup_withhtml(tmp1);
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4327 g_free(tmp1);
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4328 tmp1 = tmp2;
dca57fda6b15 re-escapes the entities that was unescaped by purple_markup_strip_html()
Ka-Hing Cheung <khc@pidgin.im>
parents: 18342
diff changeset
4329
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4330 purple_plugin_oscar_convert_to_best_encoding(gc, name, tmp1, (char **)&args.msg, &args.msglen, &args.charset, &args.charsubset);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4331
19832
84b69b21672b Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19820
diff changeset
4332 purple_debug_info("oscar", "Sending %s as %s because the original was too long.\n",
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4333 message, (char *)args.msg);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4334 }
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
4335
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4336 purple_debug_info("oscar", "Sending IM, charset=0x%04hx, charsubset=0x%04hx, length=%d\n",
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
4337 args.charset, args.charsubset, args.msglen);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4338 ret = aim_im_sendch1_ext(od, &args);
9830
a4c47fa6b462 [gaim-migrate @ 10701]
Mark Doliner <markdoliner@pidgin.im>
parents: 9826
diff changeset
4339 g_free((char *)args.msg);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4340 }
4838
653f06ff2acf [gaim-migrate @ 5163]
Mark Doliner <markdoliner@pidgin.im>
parents: 4834
diff changeset
4341
12677
61ea89a83849 [gaim-migrate @ 15020]
Mark Doliner <markdoliner@pidgin.im>
parents: 12675
diff changeset
4342 g_free(tmp1);
6310
efd8a4cbff53 [gaim-migrate @ 6809]
Mark Doliner <markdoliner@pidgin.im>
parents: 6308
diff changeset
4343
2303
18171aa8cd37 [gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2297
diff changeset
4344 if (ret >= 0)
18171aa8cd37 [gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2297
diff changeset
4345 return 1;
6310
efd8a4cbff53 [gaim-migrate @ 6809]
Mark Doliner <markdoliner@pidgin.im>
parents: 6308
diff changeset
4346
2303
18171aa8cd37 [gaim-migrate @ 2313]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2297
diff changeset
4347 return ret;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4348 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4349
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
4350 /*
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
4351 * 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
4352 * everyone, and can request ICQ info from ICQ users, and
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
4353 * AIM users can only request AIM info.
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
4354 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4355 void oscar_get_info(PurpleConnection *gc, const char *name) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
4356 OscarData *od = (OscarData *)gc->proto_data;
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
4357
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
4358 if (od->icq && aim_snvalid_icq(name))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4359 aim_icq_getallinfo(od, name);
2742
2ffd839888a5 [gaim-migrate @ 2755]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2734
diff changeset
4360 else
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4361 aim_locate_getinfoshort(od, name, 0x00000003);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
4362 }
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
4363
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8907
diff changeset
4364 #if 0
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4365 static void oscar_set_dir(PurpleConnection *gc, const char *first, const char *middle, const char *last,
3466
db8d35ad8480 [gaim-migrate @ 3516]
Sean Egan <seanegan@pidgin.im>
parents: 3458
diff changeset
4366 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
4367 /* 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
4368 OscarData *od = (OscarData *)gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4369 aim_locate_setdirinfo(od, first, middle, last,
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4370 maiden, NULL, NULL, city, state, NULL, 0, web);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4371 }
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8907
diff changeset
4372 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4373
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4374 void oscar_set_idle(PurpleConnection *gc, int time) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
4375 OscarData *od = (OscarData *)gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4376 aim_srv_setidle(od, time);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4377 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4378
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4379 static
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4380 gchar *purple_prpl_oscar_convert_to_infotext(const gchar *str, gsize *ret_len, char **encoding)
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4381 {
9807
ff713acc7204 [gaim-migrate @ 10675]
Mark Doliner <markdoliner@pidgin.im>
parents: 9806
diff changeset
4382 int charset = 0;
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4383 char *encoded = NULL;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4384
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4385 charset = oscar_charset_check(str);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4386 if (charset == AIM_CHARSET_UNICODE) {
19337
68471e68386a Use -1 as length with g_convert() functions instead of strlen()
Daniel Atallah <datallah@pidgin.im>
parents: 19335
diff changeset
4387 encoded = g_convert(str, -1, "UCS-2BE", "UTF-8", NULL, ret_len, NULL);
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4388 *encoding = "unicode-2-0";
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4389 } else if (charset == AIM_CHARSET_CUSTOM) {
19337
68471e68386a Use -1 as length with g_convert() functions instead of strlen()
Daniel Atallah <datallah@pidgin.im>
parents: 19335
diff changeset
4390 encoded = g_convert(str, -1, "ISO-8859-1", "UTF-8", NULL, ret_len, NULL);
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4391 *encoding = "iso-8859-1";
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4392 } else {
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4393 encoded = g_strdup(str);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4394 *ret_len = strlen(str);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4395 *encoding = "us-ascii";
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4396 }
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4397
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4398 return encoded;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4399 }
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4400
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4401 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4402 oscar_set_info(PurpleConnection *gc, const char *rawinfo)
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4403 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4404 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4405 PurpleStatus *status;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4406
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4407 account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4408 status = purple_account_get_active_status(account);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4409 oscar_set_info_and_status(account, TRUE, rawinfo, FALSE, status);
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4410 }
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4411
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4412 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4413 oscar_set_extendedstatus(PurpleConnection *gc)
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4414 {
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4415 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4416 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4417 PurpleStatus *status;
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4418 const gchar *status_id;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4419 guint32 data = 0x00000000;
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4420
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4421 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4422 account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4423 status = purple_account_get_active_status(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4424 status_id = purple_status_get_id(status);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4425
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
4426 data |= AIM_ICQ_STATE_HIDEIP;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4427 if (purple_account_get_bool(account, "web_aware", OSCAR_DEFAULT_WEB_AWARE))
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
4428 data |= AIM_ICQ_STATE_WEBAWARE;
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
4429
17668
128333312eb4 wabz pointed out that this string comparision was being done twice. I
Mark Doliner <markdoliner@pidgin.im>
parents: 17541
diff changeset
4430 if (!strcmp(status_id, OSCAR_STATUS_ID_AVAILABLE))
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4431 data |= AIM_ICQ_STATE_NORMAL;
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4432 else if (!strcmp(status_id, OSCAR_STATUS_ID_AWAY))
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4433 data |= AIM_ICQ_STATE_AWAY;
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4434 else if (!strcmp(status_id, OSCAR_STATUS_ID_DND))
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4435 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
4436 else if (!strcmp(status_id, OSCAR_STATUS_ID_NA))
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4437 data |= AIM_ICQ_STATE_OUT | AIM_ICQ_STATE_AWAY;
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4438 else if (!strcmp(status_id, OSCAR_STATUS_ID_OCCUPIED))
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4439 data |= AIM_ICQ_STATE_AWAY | AIM_ICQ_STATE_BUSY;
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4440 else if (!strcmp(status_id, OSCAR_STATUS_ID_FREE4CHAT))
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4441 data |= AIM_ICQ_STATE_CHAT;
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4442 else if (!strcmp(status_id, OSCAR_STATUS_ID_INVISIBLE))
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
4443 data |= AIM_ICQ_STATE_INVISIBLE;
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4444 else if (!strcmp(status_id, OSCAR_STATUS_ID_CUSTOM))
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4445 data |= AIM_ICQ_STATE_OUT | AIM_ICQ_STATE_AWAY;
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
4446
15689
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
4447 aim_srv_setextrainfo(od, TRUE, data, FALSE, NULL, NULL);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4448 }
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4449
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4450 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4451 oscar_set_info_and_status(PurpleAccount *account, gboolean setinfo, const char *rawinfo,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4452 gboolean setstatus, PurpleStatus *status)
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4453 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4454 PurpleConnection *gc = purple_account_get_connection(account);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4455 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4456 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4457 PurpleStatusType *status_type;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4458 PurpleStatusPrimitive primitive;
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4459 gboolean invisible;
11347
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 char *htmlinfo;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4462 char *info_encoding = NULL;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4463 char *info = NULL;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4464 gsize infolen = 0;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4465
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4466 const char *htmlaway;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4467 char *away_encoding = NULL;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4468 char *away = NULL;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4469 gsize awaylen = 0;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4470
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4471 status_type = purple_status_get_type(status);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4472 primitive = purple_status_type_get_primitive(status_type);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4473 presence = purple_account_get_presence(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4474 invisible = purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_INVISIBLE);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4475
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4476 if (!setinfo)
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4477 {
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4478 /* Do nothing! */
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4479 }
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4480 else if (od->rights.maxsiglen == 0)
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4481 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4482 purple_notify_warning(gc, NULL, _("Unable to set AIM profile."),
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
4483 _("You have probably requested to set your "
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
4484 "profile before the login procedure completed. "
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
4485 "Your profile remains unset; try setting it "
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
4486 "again when you are fully connected."));
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4487 }
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4488 else if (rawinfo != NULL)
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4489 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4490 htmlinfo = purple_strdup_withhtml(rawinfo);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4491 info = purple_prpl_oscar_convert_to_infotext(htmlinfo, &infolen, &info_encoding);
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4492 g_free(htmlinfo);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4493
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4494 if (infolen > od->rights.maxsiglen)
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4495 {
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4496 gchar *errstr;
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
4497 errstr = g_strdup_printf(dngettext(PACKAGE, "The maximum profile length of %d byte "
16197
226af781e456 Fix Ticket #151
Richard Laager <rlaager@pidgin.im>
parents: 16143
diff changeset
4498 "has been exceeded. It has been truncated for you.",
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4499 "The maximum profile length of %d bytes "
16197
226af781e456 Fix Ticket #151
Richard Laager <rlaager@pidgin.im>
parents: 16143
diff changeset
4500 "has been exceeded. It has been truncated for you.",
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4501 od->rights.maxsiglen), od->rights.maxsiglen);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4502 purple_notify_warning(gc, NULL, _("Profile too long."), errstr);
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4503 g_free(errstr);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4504 }
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4505 }
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4506
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4507 if (!setstatus)
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4508 {
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4509 /* Do nothing! */
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4510 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4511 else if (primitive == PURPLE_STATUS_AVAILABLE)
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4512 {
15689
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
4513 const char *status_html, *itmsurl;
13802
9e6e9e532eaa [gaim-migrate @ 16213]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13751
diff changeset
4514 char *status_text = NULL;
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
4515
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4516 status_html = purple_status_get_attr_string(status, "message");
12349
212226bfabe2 [gaim-migrate @ 14653]
Mark Doliner <markdoliner@pidgin.im>
parents: 12347
diff changeset
4517 if (status_html != NULL)
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4518 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4519 status_text = purple_markup_strip_html(status_html);
12617
a9be8855baad [gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents: 12608
diff changeset
4520 /* If the status_text is longer than 60 character then truncate it */
19071
66a62e022ffd Looks like AOL increased the length of available messages from 60
Mark Doliner <markdoliner@pidgin.im>
parents: 19050
diff changeset
4521 if (strlen(status_text) > MAXAVAILMSGLEN)
12617
a9be8855baad [gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents: 12608
diff changeset
4522 {
19071
66a62e022ffd Looks like AOL increased the length of available messages from 60
Mark Doliner <markdoliner@pidgin.im>
parents: 19050
diff changeset
4523 char *tmp = g_utf8_find_prev_char(status_text, &status_text[MAXAVAILMSGLEN - 2]);
12617
a9be8855baad [gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents: 12608
diff changeset
4524 strcpy(tmp, "...");
a9be8855baad [gaim-migrate @ 14953]
Mark Doliner <markdoliner@pidgin.im>
parents: 12608
diff changeset
4525 }
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4526 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4527 itmsurl = purple_status_get_attr_string(status, "itmsurl");
15689
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
4528
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
4529 aim_srv_setextrainfo(od, FALSE, 0, TRUE, status_text, itmsurl);
13802
9e6e9e532eaa [gaim-migrate @ 16213]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13751
diff changeset
4530 g_free(status_text);
9e6e9e532eaa [gaim-migrate @ 16213]
Ka-Hing Cheung <khc@pidgin.im>
parents: 13751
diff changeset
4531
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4532 /* 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
4533 away = g_strdup("");
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4534 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4535 else if ((primitive == PURPLE_STATUS_AWAY) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4536 (primitive == PURPLE_STATUS_EXTENDED_AWAY))
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4537 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4538 htmlaway = purple_status_get_attr_string(status, "message");
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4539 if ((htmlaway == NULL) || (*htmlaway == '\0'))
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4540 htmlaway = _("Away");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4541 away = purple_prpl_oscar_convert_to_infotext(htmlaway, &awaylen, &away_encoding);
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4542
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4543 if (awaylen > od->rights.maxawaymsglen)
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4544 {
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4545 gchar *errstr;
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4546
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16120
diff changeset
4547 errstr = g_strdup_printf(dngettext(PACKAGE, "The maximum away message length of %d byte "
15498
2ee3112b6f24 This should be the last of the string changes
Sean Egan <seanegan@pidgin.im>
parents: 15444
diff changeset
4548 "has been exceeded. It has been truncated for you.",
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4549 "The maximum away message length of %d bytes "
15498
2ee3112b6f24 This should be the last of the string changes
Sean Egan <seanegan@pidgin.im>
parents: 15444
diff changeset
4550 "has been exceeded. It has been truncated for you.",
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4551 od->rights.maxawaymsglen), od->rights.maxawaymsglen);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4552 purple_notify_warning(gc, NULL, _("Away message too long."), errstr);
11347
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4553 g_free(errstr);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4554 }
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4555 }
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4556
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4557 if (setstatus)
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4558 oscar_set_extendedstatus(gc);
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4559
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4560 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
4561 away_encoding, away, MIN(awaylen, od->rights.maxawaymsglen));
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4562 g_free(info);
5b88acc51c32 [gaim-migrate @ 13564]
Mark Doliner <markdoliner@pidgin.im>
parents: 11338
diff changeset
4563 g_free(away);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4564 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4565
9991
a02e6b4e0959 [gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents: 9988
diff changeset
4566 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4567 oscar_set_status_icq(PurpleAccount *account, PurpleStatus *status)
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
4568 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4569 PurpleConnection *gc = purple_account_get_connection(account);
10646
e5930d962239 [gaim-migrate @ 12162]
Sean Egan <seanegan@pidgin.im>
parents: 10636
diff changeset
4570 OscarData *od = NULL;
9991
a02e6b4e0959 [gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents: 9988
diff changeset
4571
10646
e5930d962239 [gaim-migrate @ 12162]
Sean Egan <seanegan@pidgin.im>
parents: 10636
diff changeset
4572 if (gc)
e5930d962239 [gaim-migrate @ 12162]
Sean Egan <seanegan@pidgin.im>
parents: 10636
diff changeset
4573 od = (OscarData *)gc->proto_data;
e5930d962239 [gaim-migrate @ 12162]
Sean Egan <seanegan@pidgin.im>
parents: 10636
diff changeset
4574 if (!od)
e5930d962239 [gaim-migrate @ 12162]
Sean Egan <seanegan@pidgin.im>
parents: 10636
diff changeset
4575 return;
e5930d962239 [gaim-migrate @ 12162]
Sean Egan <seanegan@pidgin.im>
parents: 10636
diff changeset
4576
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4577 if (purple_status_type_get_primitive(purple_status_get_type(status)) == PURPLE_STATUS_INVISIBLE)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4578 account->perm_deny = PURPLE_PRIVACY_ALLOW_USERS;
8265
ff840ad070be [gaim-migrate @ 8988]
Mark Doliner <markdoliner@pidgin.im>
parents: 8257
diff changeset
4579 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4580 account->perm_deny = PURPLE_PRIVACY_DENY_USERS;
9991
a02e6b4e0959 [gaim-migrate @ 10904]
Dave West <kat@users.sourceforge.net>
parents: 9988
diff changeset
4581
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4582 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
4583 aim_ssi_setpermdeny(od, account->perm_deny, 0xffffffff);
4342
a352530e1a6a [gaim-migrate @ 4607]
Aubin LaBrosse
parents: 4337
diff changeset
4584
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4585 oscar_set_extendedstatus(gc);
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
4586 }
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
4587
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4588 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4589 oscar_set_status(PurpleAccount *account, PurpleStatus *status)
2993
0340d0a8b810 [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2991
diff changeset
4590 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4591 purple_debug_info("oscar", "Set status to %s\n", purple_status_get_name(status));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4592
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4593 if (!purple_status_is_active(status))
10485
1a05903a3e83 [gaim-migrate @ 11775]
Nathan Walp <nwalp@pidgin.im>
parents: 10475
diff changeset
4594 return;
1a05903a3e83 [gaim-migrate @ 11775]
Nathan Walp <nwalp@pidgin.im>
parents: 10475
diff changeset
4595
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4596 if (!purple_account_is_connected(account))
11718
90804d019837 [gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents: 11670
diff changeset
4597 return;
90804d019837 [gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents: 11670
diff changeset
4598
12653
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4599 /* 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
4600 oscar_set_info_and_status(account, FALSE, NULL, TRUE, status);
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4601
47cfcc8e8c48 [gaim-migrate @ 14996]
Mark Doliner <markdoliner@pidgin.im>
parents: 12652
diff changeset
4602 /* Set the ICQ status for ICQ accounts only */
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
4603 if (aim_snvalid_icq(purple_account_get_username(account)))
11718
90804d019837 [gaim-migrate @ 14009]
Mark Doliner <markdoliner@pidgin.im>
parents: 11670
diff changeset
4604 oscar_set_status_icq(account, status);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4605 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4606
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
4607 #ifdef CRAZY_WARN
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4608 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4609 oscar_warn(PurpleConnection *gc, const char *name, gboolean anonymous) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
4610 OscarData *od = (OscarData *)gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4611 aim_im_warn(od, od->conn, name, anonymous ? AIM_WARN_ANON : 0);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4612 }
11285
f6fff36607b1 [gaim-migrate @ 13482]
Mark Doliner <markdoliner@pidgin.im>
parents: 11257
diff changeset
4613 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4614
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
4615 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4616 oscar_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
4617 OscarData *od = (OscarData *)gc->proto_data;
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4618
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4619 if (!aim_snvalid(buddy->name)) {
8092
ba92ce841814 [gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents: 8077
diff changeset
4620 gchar *buf;
18342
59204a3c8c11 Update the "that is not a valid screen name!" error message to mention
Mark Doliner <markdoliner@pidgin.im>
parents: 18341
diff changeset
4621 buf = g_strdup_printf(_("Could not add the buddy %s because the screen name is invalid. Screen names must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers."), buddy->name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4622 if (!purple_conv_present_error(buddy->name, purple_connection_get_account(gc), buf))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4623 purple_notify_error(gc, NULL, _("Unable To Add"), buf);
8092
ba92ce841814 [gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents: 8077
diff changeset
4624 g_free(buf);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4625
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4626 /* Remove from local list */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4627 purple_blist_remove_buddy(buddy);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4628
8092
ba92ce841814 [gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents: 8077
diff changeset
4629 return;
ba92ce841814 [gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents: 8077
diff changeset
4630 }
ba92ce841814 [gaim-migrate @ 8791]
Mark Doliner <markdoliner@pidgin.im>
parents: 8077
diff changeset
4631
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4632 if ((od->ssi.received_data) && !(aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4633 purple_debug_info("oscar",
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
4634 "ssi: adding buddy %s to group %s\n", buddy->name, group->name);
17444
60929f040c86 Clean up some other ssi-related things. This commit and my last one
Mark Doliner <markdoliner@pidgin.im>
parents: 17279
diff changeset
4635 aim_ssi_addbuddy(od, buddy->name, group->name, NULL, purple_buddy_get_alias_only(buddy), NULL, NULL, 0);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4636 }
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4637
10157
650fd69090cd [gaim-migrate @ 11237]
Mark Doliner <markdoliner@pidgin.im>
parents: 10152
diff changeset
4638 /* XXX - Should this be done from AIM accounts, as well? */
4759
5a8c326b49b3 [gaim-migrate @ 5076]
Mark Doliner <markdoliner@pidgin.im>
parents: 4754
diff changeset
4639 if (od->icq)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4640 aim_icq_getalias(od, buddy->name);
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4641 }
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4642
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4643 void oscar_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
4644 OscarData *od = (OscarData *)gc->proto_data;
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4645
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4646 if (od->ssi.received_data) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4647 purple_debug_info("oscar",
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4648 "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
4649 aim_ssi_delbuddy(od, buddy->name, group->name);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4650 }
10866
40eab743e22b [gaim-migrate @ 12552]
Mark Doliner <markdoliner@pidgin.im>
parents: 10860
diff changeset
4651 }
40eab743e22b [gaim-migrate @ 12552]
Mark Doliner <markdoliner@pidgin.im>
parents: 10860
diff changeset
4652
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4653 void oscar_move_buddy(PurpleConnection *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
4654 OscarData *od = (OscarData *)gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4655 if (od->ssi.received_data && strcmp(old_group, new_group)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4656 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
4657 "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
4658 aim_ssi_movebuddy(od, old_group, new_group, name);
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4659 }
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4660 }
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4661
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4662 void oscar_alias_buddy(PurpleConnection *gc, const char *name, const char *alias) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
4663 OscarData *od = (OscarData *)gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4664 if (od->ssi.received_data) {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4665 char *gname = aim_ssi_itemlist_findparentname(od->ssi.local, name);
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4666 if (gname) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4667 purple_debug_info("oscar",
9586
cb4e6ae1f4b1 [gaim-migrate @ 10429]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9554
diff changeset
4668 "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
4669 aim_ssi_aliasbuddy(od, gname, name, alias);
4269
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4670 }
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4671 }
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4672 }
c716bd9eee3c [gaim-migrate @ 4520]
Mark Doliner <markdoliner@pidgin.im>
parents: 4251
diff changeset
4673
11005
06c22b605323 [gaim-migrate @ 12864]
Mark Doliner <markdoliner@pidgin.im>
parents: 11002
diff changeset
4674 /*
06c22b605323 [gaim-migrate @ 12864]
Mark Doliner <markdoliner@pidgin.im>
parents: 11002
diff changeset
4675 * FYI, the OSCAR SSI code removes empty groups automatically.
06c22b605323 [gaim-migrate @ 12864]
Mark Doliner <markdoliner@pidgin.im>
parents: 11002
diff changeset
4676 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4677 void oscar_rename_group(PurpleConnection *gc, const char *old_name, PurpleGroup *group, GList *moved_buddies) {
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
4678 OscarData *od = (OscarData *)gc->proto_data;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4679
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4680 if (od->ssi.received_data) {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4681 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
4682 GList *cur, *groups = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4683 PurpleAccount *account = purple_connection_get_account(gc);
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4684
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4685 /* Make a list of what the groups each buddy is in */
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4686 for (cur = moved_buddies; cur != NULL; cur = cur->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4687 PurpleBlistNode *node = cur->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4688 /* node is PurpleBuddy, parent is a PurpleContact.
11002
0be28aa755ab [gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents: 10949
diff changeset
4689 * We must go two levels up to get the Group */
0be28aa755ab [gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents: 10949
diff changeset
4690 groups = g_list_append(groups,
0be28aa755ab [gaim-migrate @ 12857]
Daniel Atallah <datallah@pidgin.im>
parents: 10949
diff changeset
4691 node->parent->parent);
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4692 }
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4693
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4694 purple_account_remove_buddies(account, moved_buddies, groups);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4695 purple_account_add_buddies(account, moved_buddies);
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4696 g_list_free(groups);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4697 purple_debug_info("oscar",
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4698 "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
4699 } else {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4700 aim_ssi_rename_group(od, old_name, group->name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4701 purple_debug_info("oscar",
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
4702 "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
4703 }
33231d4b2cd3 [gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents: 2994
diff changeset
4704 }
33231d4b2cd3 [gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents: 2994
diff changeset
4705 }
33231d4b2cd3 [gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents: 2994
diff changeset
4706
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4707 void oscar_remove_group(PurpleConnection *gc, PurpleGroup *group)
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4708 {
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4709 aim_ssi_delgroup(gc->proto_data, group->name);
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4710 }
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4711
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4712 static gboolean purple_ssi_rerequestdata(gpointer data) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4713 OscarData *od = data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4714
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4715 aim_ssi_reqdata(od);
12663
0e72aaa59cf5 [gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents: 12662
diff changeset
4716
13060
255a68fe8471 [gaim-migrate @ 15422]
Mark Doliner <markdoliner@pidgin.im>
parents: 13008
diff changeset
4717 return TRUE;
5968
f3e4bc7bd718 [gaim-migrate @ 6415]
Mark Doliner <markdoliner@pidgin.im>
parents: 5954
diff changeset
4718 }
f3e4bc7bd718 [gaim-migrate @ 6415]
Mark Doliner <markdoliner@pidgin.im>
parents: 5954
diff changeset
4719
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4720 static int purple_ssi_parseerr(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4721 PurpleConnection *gc = od->gc;
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4722 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4723 guint16 reason;
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4724
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4725 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4726 reason = (guint16)va_arg(ap, unsigned int);
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4727 va_end(ap);
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4728
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4729 purple_debug_error("oscar", "ssi: SNAC error %hu\n", reason);
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4730
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4731 if (reason == 0x0005) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4732 purple_notify_error(gc, NULL, _("Unable To Retrieve Buddy List"),
15444
b793ef258d23 I think this changes every user-visible string that contains 'Gaim.' We probably want the UI to be able
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4733 _("The AIM servers were temporarily unable to send your buddy list. 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
4734 if (od->getblisttimer > 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4735 purple_timeout_remove(od->getblisttimer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4736 od->getblisttimer = purple_timeout_add(30000, purple_ssi_rerequestdata, od);
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4737 }
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4738
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4739 oscar_set_extendedstatus(gc);
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4740
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4741 /* Activate SSI */
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4742 /* 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
4743 /* Make sure your privacy setting/invisibility is set how you want it before this! */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4744 purple_debug_info("oscar", "ssi: activating server-stored buddy list\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4745 aim_ssi_enable(od);
4642
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4746
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4747 return 1;
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4748 }
a491791dc1a1 [gaim-migrate @ 4952]
Mark Doliner <markdoliner@pidgin.im>
parents: 4641
diff changeset
4749
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4750 static int purple_ssi_parserights(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
9982
4f35c5d13c8c [gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents: 9976
diff changeset
4751 int i;
4f35c5d13c8c [gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents: 9976
diff changeset
4752 va_list ap;
4f35c5d13c8c [gaim-migrate @ 10893]
Dave West <kat@users.sourceforge.net>
parents: 9976
diff changeset
4753 int numtypes;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4754 guint16 *maxitems;
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4755
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4756 va_start(ap, fr);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4757 numtypes = va_arg(ap, int);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4758 maxitems = va_arg(ap, guint16 *);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4759 va_end(ap);
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4760
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4761 purple_debug_misc("oscar", "ssi rights:");
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5208
diff changeset
4762
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4763 for (i=0; i<numtypes; i++)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4764 purple_debug_misc(NULL, " max type 0x%04x=%hd,",
5211
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5208
diff changeset
4765 i, maxitems[i]);
94d9756c381f [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5208
diff changeset
4766
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4767 purple_debug_misc(NULL, "\n");
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4768
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4769 if (numtypes >= 0)
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4770 od->rights.maxbuddies = maxitems[0];
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4771 if (numtypes >= 1)
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4772 od->rights.maxgroups = maxitems[1];
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4773 if (numtypes >= 2)
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4774 od->rights.maxpermits = maxitems[2];
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4775 if (numtypes >= 3)
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4776 od->rights.maxdenies = maxitems[3];
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4777
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4778 return 1;
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4779 }
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4780
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4781 static int purple_ssi_parselist(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...)
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4782 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4783 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4784 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4785 PurpleGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4786 PurpleBuddy *b;
2995
33231d4b2cd3 [gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents: 2994
diff changeset
4787 struct aim_ssi_item *curitem;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4788 guint32 tmp;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
4789 PurpleStoredImage *img;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4790 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4791 guint16 fmtver, numitems;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4792 guint32 timestamp;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4793
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4794 gc = od->gc;
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4795 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4796 account = purple_connection_get_account(gc);
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
4797
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4798 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4799 fmtver = (guint16)va_arg(ap, int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4800 numitems = (guint16)va_arg(ap, int);
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4801 timestamp = va_arg(ap, guint32);
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
4802 va_end(ap);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4803
12663
0e72aaa59cf5 [gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents: 12662
diff changeset
4804 /* Don't attempt to re-request our buddy list later */
0e72aaa59cf5 [gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents: 12662
diff changeset
4805 if (od->getblisttimer != 0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4806 purple_timeout_remove(od->getblisttimer);
12663
0e72aaa59cf5 [gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents: 12662
diff changeset
4807 od->getblisttimer = 0;
0e72aaa59cf5 [gaim-migrate @ 15006]
Mark Doliner <markdoliner@pidgin.im>
parents: 12662
diff changeset
4808
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4809 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
4810 "ssi: syncing local list and server list\n");
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4811
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
4812 if ((timestamp == 0) || (numitems == 0)) {
19832
84b69b21672b Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19820
diff changeset
4813 purple_debug_info("oscar", "Got AIM SSI with a 0 timestamp or 0 numitems--not syncing. This probably means your buddy list is empty.\n");
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
4814 return 1;
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
4815 }
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
4816
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4817 /* Clean the buddy list */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4818 aim_ssi_cleanlist(od);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4819
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4820 { /* If not in server list then prune from local list */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4821 PurpleBlistNode *gnode, *cnode, *bnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4822 PurpleBuddyList *blist;
9539
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4823 GSList *cur, *next;
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4824
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4825 /* Buddies */
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4826 cur = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4827 if ((blist = purple_get_blist()) != NULL) {
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4828 for (gnode = blist->root; gnode; gnode = gnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4829 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4830 continue;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4831 g = (PurpleGroup *)gnode;
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4832 for (cnode = gnode->child; cnode; cnode = cnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4833 if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4834 continue;
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4835 for (bnode = cnode->child; bnode; bnode = bnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4836 if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4837 continue;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4838 b = (PurpleBuddy *)bnode;
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4839 if (b->account == gc->account) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4840 if (aim_ssi_itemlist_exists(od->ssi.local, b->name)) {
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4841 /* If the buddy is an ICQ user then load his nickname */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4842 const char *servernick = purple_blist_node_get_string((PurpleBlistNode*)b, "servernick");
8214
8ba5bacfa054 [gaim-migrate @ 8937]
Nathan Walp <nwalp@pidgin.im>
parents: 8175
diff changeset
4843 char *alias;
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4844 if (servernick)
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4845 serv_got_alias(gc, b->name, servernick);
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4846
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4847 /* Store local alias on server */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4848 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
4849 if (!alias && b->alias && strlen(b->alias))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4850 aim_ssi_aliasbuddy(od, g->name, b->name, b->alias);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4851 g_free(alias);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4852 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4853 purple_debug_info("oscar",
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4854 "ssi: removing buddy %s from local list\n", b->name);
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4855 /* 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
4856 cur = g_slist_prepend(cur, b);
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4857 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4858 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4859 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4860 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4861 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4862 }
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
4863
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4864 while (cur != NULL) {
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4865 b = cur->data;
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4866 cur = g_slist_remove(cur, b);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4867 purple_blist_remove_buddy(b);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4868 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4869
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4870 /* Permit list */
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4871 if (gc->account->permit) {
9539
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4872 next = gc->account->permit;
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4873 while (next != NULL) {
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4874 cur = next;
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4875 next = next->next;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4876 if (!aim_ssi_itemlist_finditem(od->ssi.local, NULL, cur->data, AIM_SSI_TYPE_PERMIT)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4877 purple_debug_info("oscar",
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4878 "ssi: removing permit %s from local list\n", (const char *)cur->data);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4879 purple_privacy_permit_remove(account, cur->data, TRUE);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4880 }
9539
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4881 }
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4882 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4883
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4884 /* Deny list */
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4885 if (gc->account->deny) {
9539
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4886 next = gc->account->deny;
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4887 while (next != NULL) {
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4888 cur = next;
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4889 next = next->next;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4890 if (!aim_ssi_itemlist_finditem(od->ssi.local, NULL, cur->data, AIM_SSI_TYPE_DENY)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4891 purple_debug_info("oscar",
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4892 "ssi: removing deny %s from local list\n", (const char *)cur->data);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4893 purple_privacy_deny_remove(account, cur->data, TRUE);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4894 }
9539
5528f58dea4d [gaim-migrate @ 10367]
Mark Doliner <markdoliner@pidgin.im>
parents: 9532
diff changeset
4895 }
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4896 }
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4897 /* Presence settings (idle time visibility) */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4898 if ((tmp = aim_ssi_getpresence(od->ssi.local)) != 0xFFFFFFFF)
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4899 if (!(tmp & 0x400))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4900 aim_ssi_setpresence(od, tmp | 0x400);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4901 } /* end pruning buddies from local list */
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4902
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4903 /* Add from server list to local list */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4904 for (curitem=od->ssi.local; curitem; curitem=curitem->next) {
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4905 if ((curitem->name == NULL) || (g_utf8_validate(curitem->name, -1, NULL)))
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4906 switch (curitem->type) {
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4907 case 0x0000: { /* Buddy */
4251
7d62db57d86a [gaim-migrate @ 4501]
Mark Doliner <markdoliner@pidgin.im>
parents: 4249
diff changeset
4908 if (curitem->name) {
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4909 struct aim_ssi_item *groupitem = aim_ssi_itemlist_find(od->ssi.local, curitem->gid, 0x0000);
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4910 char *gname = groupitem ? groupitem->name : NULL;
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
4911 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
4912 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
4913 char *alias_utf8;
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4914
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4915 g = purple_find_group(gname_utf8 ? gname_utf8 : _("Orphans"));
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4916 if (g == NULL) {
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4917 g = purple_group_new(gname_utf8 ? gname_utf8 : _("Orphans"));
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4918 purple_blist_add_group(g, NULL);
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4919 }
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4920
14088
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4921 if (alias != NULL)
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4922 {
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4923 if (g_utf8_validate(alias, -1, NULL))
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4924 alias_utf8 = g_strdup(alias);
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4925 else
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4926 alias_utf8 = oscar_utf8_try_convert(account, alias);
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4927 g_free(alias);
14088
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4928 }
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4929 else
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4930 alias_utf8 = NULL;
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
4931
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4932 b = purple_find_buddy_in_group(gc->account, curitem->name, g);
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4933 if (b) {
4292
249d89e1b14c [gaim-migrate @ 4545]
Mark Doliner <markdoliner@pidgin.im>
parents: 4282
diff changeset
4934 /* Get server stored alias */
4705
cc6029a0379c [gaim-migrate @ 5016]
Nathan Walp <nwalp@pidgin.im>
parents: 4690
diff changeset
4935 if (alias_utf8) {
8150
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4936 g_free(b->alias);
1b48c11a456e [gaim-migrate @ 8862]
Mark Doliner <markdoliner@pidgin.im>
parents: 8143
diff changeset
4937 b->alias = g_strdup(alias_utf8);
4705
cc6029a0379c [gaim-migrate @ 5016]
Nathan Walp <nwalp@pidgin.im>
parents: 4690
diff changeset
4938 }
4282
93cc9fb8e29f [gaim-migrate @ 4533]
Mark Doliner <markdoliner@pidgin.im>
parents: 4276
diff changeset
4939 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4940 b = purple_buddy_new(gc->account, curitem->name, alias_utf8);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4941
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4942 purple_debug_info("oscar",
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4943 "ssi: adding buddy %s to group %s to local list\n", curitem->name, g->name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4944 purple_blist_add_buddy(b, NULL, g, NULL);
4251
7d62db57d86a [gaim-migrate @ 4501]
Mark Doliner <markdoliner@pidgin.im>
parents: 4249
diff changeset
4945 }
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
4946 if (!aim_sncmp(curitem->name, account->username)) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4947 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
4948 if (comment != NULL)
3ed1753cc08a [gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents: 14604
diff changeset
4949 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4950 purple_check_comment(od, comment);
14614
3ed1753cc08a [gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents: 14604
diff changeset
4951 g_free(comment);
3ed1753cc08a [gaim-migrate @ 17275]
Mark Doliner <markdoliner@pidgin.im>
parents: 14604
diff changeset
4952 }
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
4953 }
7162
dfd30c70acde [gaim-migrate @ 7729]
Nathan Walp <nwalp@pidgin.im>
parents: 7160
diff changeset
4954 g_free(gname_utf8);
dfd30c70acde [gaim-migrate @ 7729]
Nathan Walp <nwalp@pidgin.im>
parents: 7160
diff changeset
4955 g_free(alias_utf8);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4956 }
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 case 0x0001: { /* Group */
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4960 char *gname = curitem->name;
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4961 char *gname_utf8 = gname ? oscar_utf8_try_convert(gc->account, gname) : NULL;
19085
64f4b8a98800 Only try to add a group locally if it doesn't already exist. This
Mark Doliner <markdoliner@pidgin.im>
parents: 19071
diff changeset
4962 if (gname_utf8 != NULL && purple_find_group(gname_utf8) == NULL) {
19050
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4963 g = purple_group_new(gname_utf8);
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4964 purple_blist_add_group(g, NULL);
78ed2f8cd58d Some changes from Matthew Goldstein and I to not automatically remove
Mark Doliner <markdoliner@pidgin.im>
parents: 18940
diff changeset
4965 }
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 case 0x0002: { /* Permit buddy */
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4969 if (curitem->name) {
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4970 /* if (!find_permdeny_by_name(gc->permit, curitem->name)) { AAA */
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4971 GSList *list;
5575
bcc7e97af7eb [gaim-migrate @ 5979]
Sean Egan <seanegan@pidgin.im>
parents: 5556
diff changeset
4972 for (list=account->permit; (list && aim_sncmp(curitem->name, list->data)); list=list->next);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4973 if (!list) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4974 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
4975 "ssi: adding permit buddy %s to local list\n", curitem->name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4976 purple_privacy_permit_add(account, curitem->name, TRUE);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4977 }
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4978 }
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4979 } break;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4980
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4981 case 0x0003: { /* Deny buddy */
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4982 if (curitem->name) {
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4983 GSList *list;
5575
bcc7e97af7eb [gaim-migrate @ 5979]
Sean Egan <seanegan@pidgin.im>
parents: 5556
diff changeset
4984 for (list=account->deny; (list && aim_sncmp(curitem->name, list->data)); list=list->next);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4985 if (!list) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4986 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
4987 "ssi: adding deny buddy %s to local list\n", curitem->name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4988 purple_privacy_deny_add(account, curitem->name, TRUE);
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4989 }
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4990 }
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4991 } break;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4992
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
4993 case 0x0004: { /* Permit/deny setting */
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
4994 if (curitem->data) {
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
4995 guint8 permdeny;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
4996 if ((permdeny = aim_ssi_getpermdeny(od->ssi.local)) && (permdeny != account->perm_deny)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
4997 purple_debug_info("oscar",
5575
bcc7e97af7eb [gaim-migrate @ 5979]
Sean Egan <seanegan@pidgin.im>
parents: 5556
diff changeset
4998 "ssi: changing permdeny from %d to %hhu\n", account->perm_deny, permdeny);
bcc7e97af7eb [gaim-migrate @ 5979]
Sean Egan <seanegan@pidgin.im>
parents: 5556
diff changeset
4999 account->perm_deny = permdeny;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5000 if (od->icq && account->perm_deny == PURPLE_PRIVACY_ALLOW_USERS) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5001 purple_presence_set_status_active(account->presence, OSCAR_STATUS_ID_INVISIBLE, TRUE);
4342
a352530e1a6a [gaim-migrate @ 4607]
Aubin LaBrosse
parents: 4337
diff changeset
5002 }
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
5003 }
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
5004 }
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5005 } break;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5006
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5007 case 0x0005: { /* Presence setting */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5008 /* We don't want to change Purple's setting because it applies to all accounts */
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5009 } break;
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
5010 } /* End of switch on curitem->type */
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
5011 } /* End of for loop */
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5012
11965
0b8d4950b68a [gaim-migrate @ 14256]
Mark Doliner <markdoliner@pidgin.im>
parents: 11920
diff changeset
5013 oscar_set_extendedstatus(gc);
4901
8a9aebd9897f [gaim-migrate @ 5235]
Mark Doliner <markdoliner@pidgin.im>
parents: 4898
diff changeset
5014
4342
a352530e1a6a [gaim-migrate @ 4607]
Aubin LaBrosse
parents: 4337
diff changeset
5015 /* Activate SSI */
a352530e1a6a [gaim-migrate @ 4607]
Aubin LaBrosse
parents: 4337
diff changeset
5016 /* Sending the enable causes other people to be able to see you, and you to see them */
a352530e1a6a [gaim-migrate @ 4607]
Aubin LaBrosse
parents: 4337
diff changeset
5017 /* Make sure your privacy setting/invisibility is set how you want it before this! */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5018 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
5019 "ssi: activating server-stored buddy list\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5020 aim_ssi_enable(od);
4342
a352530e1a6a [gaim-migrate @ 4607]
Aubin LaBrosse
parents: 4337
diff changeset
5021
15255
f8f2e6c4fa72 [gaim-migrate @ 17982]
Mark Doliner <markdoliner@pidgin.im>
parents: 15232
diff changeset
5022 /*
f8f2e6c4fa72 [gaim-migrate @ 17982]
Mark Doliner <markdoliner@pidgin.im>
parents: 15232
diff changeset
5023 * Make sure our server-stored icon is updated correctly in
f8f2e6c4fa72 [gaim-migrate @ 17982]
Mark Doliner <markdoliner@pidgin.im>
parents: 15232
diff changeset
5024 * the event that the local user set a new icon while this
f8f2e6c4fa72 [gaim-migrate @ 17982]
Mark Doliner <markdoliner@pidgin.im>
parents: 15232
diff changeset
5025 * account was offline.
f8f2e6c4fa72 [gaim-migrate @ 17982]
Mark Doliner <markdoliner@pidgin.im>
parents: 15232
diff changeset
5026 */
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5027 img = purple_buddy_icons_find_account_icon(account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5028 oscar_set_icon(gc, img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5029 purple_imgstore_unref(img);
15255
f8f2e6c4fa72 [gaim-migrate @ 17982]
Mark Doliner <markdoliner@pidgin.im>
parents: 15232
diff changeset
5030
2991
692468b98a03 [gaim-migrate @ 3004]
Rob Flynn <gaim@robflynn.com>
parents: 2989
diff changeset
5031 return 1;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5032 }
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5033
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5034 static int purple_ssi_parseack(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5035 PurpleConnection *gc = od->gc;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5036 va_list ap;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5037 struct aim_ssi_tmp *retval;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5038
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5039 va_start(ap, fr);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5040 retval = va_arg(ap, struct aim_ssi_tmp *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5041 va_end(ap);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5042
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5043 while (retval) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5044 purple_debug_misc("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
5045 "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
5046
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5047 if (retval->ack != 0xffff)
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5048 switch (retval->ack) {
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5049 case 0x0000: { /* added successfully */
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5050 } break;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5051
4829
9dd8fea5795e [gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents: 4828
diff changeset
5052 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
5053 gchar *buf;
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
5054 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)")));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5055 if ((retval->name != NULL) && !purple_conv_present_error(retval->name, purple_connection_get_account(gc), buf))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5056 purple_notify_error(gc, NULL, _("Unable To Add"), buf);
4829
9dd8fea5795e [gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents: 4828
diff changeset
5057 g_free(buf);
9dd8fea5795e [gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents: 4828
diff changeset
5058 }
9dd8fea5795e [gaim-migrate @ 5154]
Mark Doliner <markdoliner@pidgin.im>
parents: 4828
diff changeset
5059
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
5060 case 0x000e: { /* buddy requires authorization */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5061 if ((retval->action == SNAC_SUBTYPE_FEEDBAG_ADD) && (retval->name))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5062 purple_auth_sendrequest(gc, retval->name);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5063 } break;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5064
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5065 default: { /* La la la */
5197
ab4d919050d7 [gaim-migrate @ 5563]
Mark Doliner <markdoliner@pidgin.im>
parents: 5167
diff changeset
5066 gchar *buf;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5067 purple_debug_error("oscar", "ssi: Action 0x%04hx was unsuccessful with error 0x%04hx\n", retval->action, retval->ack);
18340
72716c465b68 Get rid of the portion of this error message that says "The most
Mark Doliner <markdoliner@pidgin.im>
parents: 18269
diff changeset
5068 buf = g_strdup_printf(_("Could not add the buddy %s for an unknown reason."),
72716c465b68 Get rid of the portion of this error message that says "The most
Mark Doliner <markdoliner@pidgin.im>
parents: 18269
diff changeset
5069 (retval->name ? retval->name : _("(no name)")));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5070 if ((retval->name != NULL) && !purple_conv_present_error(retval->name, purple_connection_get_account(gc), buf))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5071 purple_notify_error(gc, NULL, _("Unable To Add"), buf);
5197
ab4d919050d7 [gaim-migrate @ 5563]
Mark Doliner <markdoliner@pidgin.im>
parents: 5167
diff changeset
5072 g_free(buf);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5073 } break;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5074 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5075
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5076 retval = retval->next;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5077 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5078
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5079 return 1;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5080 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5081
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5082 static int purple_ssi_parseadd(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5083 PurpleConnection *gc = od->gc;
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5084 char *gname, *gname_utf8, *alias, *alias_utf8;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5085 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5086 PurpleGroup *g;
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5087 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5088 guint16 type;
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5089 const char *name;
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5090
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5091 va_start(ap, fr);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5092 type = (guint16)va_arg(ap, int);
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5093 name = va_arg(ap, char *);
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5094 va_end(ap);
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5095
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5096 if ((type != 0x0000) || (name == NULL))
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5097 return 1;
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5098
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5099 gname = aim_ssi_itemlist_findparentname(od->ssi.local, name);
12608
6223da35dc2f [gaim-migrate @ 14944]
Richard Laager <rlaager@pidgin.im>
parents: 12603
diff changeset
5100 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
5101
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5102 alias = aim_ssi_getalias(od->ssi.local, gname, name);
14088
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5103 if (alias != NULL)
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5104 {
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5105 if (g_utf8_validate(alias, -1, NULL))
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5106 alias_utf8 = g_strdup(alias);
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5107 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5108 alias_utf8 = oscar_utf8_try_convert(purple_connection_get_account(gc), alias);
14088
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5109 }
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5110 else
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5111 alias_utf8 = NULL;
877eda665ce4 [gaim-migrate @ 16626]
Mark Doliner <markdoliner@pidgin.im>
parents: 14030
diff changeset
5112
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5113 b = purple_find_buddy(gc->account, name);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5114 g_free(alias);
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5115
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5116 if (b) {
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5117 /* Get server stored alias */
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5118 if (alias_utf8) {
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5119 g_free(b->alias);
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5120 b->alias = g_strdup(alias_utf8);
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5121 }
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5122 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5123 b = purple_buddy_new(gc->account, name, alias_utf8);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5124
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5125 if (!(g = purple_find_group(gname_utf8 ? gname_utf8 : _("Orphans")))) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5126 g = purple_group_new(gname_utf8 ? gname_utf8 : _("Orphans"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5127 purple_blist_add_group(g, NULL);
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5128 }
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5129
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5130 purple_debug_info("oscar",
9285
9cedf5d26577 [gaim-migrate @ 10088]
Mark Doliner <markdoliner@pidgin.im>
parents: 9244
diff changeset
5131 "ssi: adding buddy %s to group %s to local list\n", name, gname_utf8 ? gname_utf8 : _("Orphans"));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5132 purple_blist_add_buddy(b, NULL, g, NULL);
8227
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5133 }
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5134 g_free(gname_utf8);
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5135 g_free(alias_utf8);
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5136
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5137 return 1;
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5138 }
07e453e04577 [gaim-migrate @ 8950]
Mark Doliner <markdoliner@pidgin.im>
parents: 8225
diff changeset
5139
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5140 static int purple_ssi_authgiven(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5141 PurpleConnection *gc = od->gc;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5142 va_list ap;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5143 char *sn, *msg;
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5144 gchar *dialog_msg, *nombre;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5145 struct name_data *data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5146 PurpleBuddy *buddy;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5147
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5148 va_start(ap, fr);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5149 sn = va_arg(ap, char *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5150 msg = va_arg(ap, char *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5151 va_end(ap);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5152
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5153 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
5154 "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
5155
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5156 buddy = purple_find_buddy(gc->account, sn);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5157 if (buddy && (purple_buddy_get_alias_only(buddy)))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5158 nombre = g_strdup_printf("%s (%s)", sn, purple_buddy_get_alias_only(buddy));
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5159 else
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5160 nombre = g_strdup(sn);
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5161
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
5162 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);
16939
6b2bdb2147b2 Free nombre as soon as we're done using it, for clarity
Evan Schoenberg <evands@pidgin.im>
parents: 16938
diff changeset
5163 g_free(nombre);
6b2bdb2147b2 Free nombre as soon as we're done using it, for clarity
Evan Schoenberg <evands@pidgin.im>
parents: 16938
diff changeset
5164
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5165 data = g_new(struct name_data, 1);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5166 data->gc = gc;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5167 data->name = g_strdup(sn);
16938
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5168 data->nick = (buddy ? g_strdup(purple_buddy_get_alias_only(buddy)) : NULL);
5498
01eec144d71b [gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents: 5497
diff changeset
5169
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
5170 purple_request_yes_no_with_hint(gc, NULL, _("Authorization Given"), dialog_msg,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
5171 PURPLE_DEFAULT_ACTION_NONE,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
5172 purple_connection_get_account(gc), sn, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
5173 "blist", data,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5174 G_CALLBACK(purple_icq_buddyadd),
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
5175 G_CALLBACK(oscar_free_name_data));
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5176 g_free(dialog_msg);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5177
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5178 return 1;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5179 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5180
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5181 static int purple_ssi_authrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5182 PurpleConnection *gc = od->gc;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5183 va_list ap;
11102
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
5184 char *sn;
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
5185 char *msg;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5186 PurpleAccount *account = purple_connection_get_account(gc);
11567
14ffd9c34829 [gaim-migrate @ 13834]
Daniel Atallah <datallah@pidgin.im>
parents: 11537
diff changeset
5187 gchar *reason = NULL;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5188 struct name_data *data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5189 PurpleBuddy *buddy;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5190
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5191 va_start(ap, fr);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5192 sn = va_arg(ap, char *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5193 msg = va_arg(ap, char *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5194 va_end(ap);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5195
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5196 purple_debug_info("oscar",
5219
49255563aa61 [gaim-migrate @ 5589]
Christian Hammond <chipx86@chipx86.com>
parents: 5211
diff changeset
5197 "ssi: received authorization request from %s\n", sn);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5198
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5199 buddy = purple_find_buddy(account, sn);
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5200
11102
8f750ca03455 [gaim-migrate @ 13142]
Richard Laager <rlaager@pidgin.im>
parents: 11084
diff changeset
5201 if (msg != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5202 reason = purple_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
5203
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5204 data = g_new(struct name_data, 1);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5205 data->gc = gc;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5206 data->name = g_strdup(sn);
16938
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5207 data->nick = (buddy ? g_strdup(purple_buddy_get_alias_only(buddy)) : NULL);
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5208
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5209 purple_account_request_authorization(account, sn, NULL,
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5210 (buddy ? purple_buddy_get_alias_only(buddy) : NULL),
19335
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
5211 reason, buddy != NULL, purple_auth_grant,
4613b53d5741 Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents: 19317
diff changeset
5212 purple_auth_dontgrant_msgprompt, data);
15119
28d34487ac71 [gaim-migrate @ 17841]
Sean Egan <seanegan@pidgin.im>
parents: 15115
diff changeset
5213 g_free(reason);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5214
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5215 return 1;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5216 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5217
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5218 static int purple_ssi_authreply(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5219 PurpleConnection *gc = od->gc;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5220 va_list ap;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5221 char *sn, *msg;
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5222 gchar *dialog_msg, *nombre;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5223 guint8 reply;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5224 PurpleBuddy *buddy;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5225
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5226 va_start(ap, fr);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5227 sn = va_arg(ap, char *);
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5228 reply = (guint8)va_arg(ap, int);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5229 msg = va_arg(ap, char *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5230 va_end(ap);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5231
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5232 purple_debug_info("oscar",
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
5233 "ssi: received authorization reply from %s. Reply is 0x%04hhx\n", sn, reply);
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5234
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5235 buddy = purple_find_buddy(gc->account, sn);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5236 if (buddy && (purple_buddy_get_alias_only(buddy)))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5237 nombre = g_strdup_printf("%s (%s)", sn, purple_buddy_get_alias_only(buddy));
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5238 else
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5239 nombre = g_strdup(sn);
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5240
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5241 if (reply) {
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5242 /* Granted */
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
5243 dialog_msg = g_strdup_printf(_("The user %s has granted your request to add them to your buddy list."), nombre);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5244 purple_notify_info(gc, NULL, _("Authorization Granted"), dialog_msg);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5245 } else {
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5246 /* Denied */
7023
fc2e93673525 [gaim-migrate @ 7586]
Ambrose Li <ambrose.li@gmail.com>
parents: 7015
diff changeset
5247 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."));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5248 purple_notify_info(gc, NULL, _("Authorization Denied"), dialog_msg);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5249 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5250 g_free(dialog_msg);
4236
71a063fb2d7a [gaim-migrate @ 4482]
Etan Reisner <deryni@pidgin.im>
parents: 4233
diff changeset
5251 g_free(nombre);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5252
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5253 return 1;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5254 }
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5255
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5256 static int purple_ssi_gotadded(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5257 PurpleConnection *gc = od->gc;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5258 va_list ap;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5259 char *sn;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5260 PurpleBuddy *buddy;
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5261
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5262 va_start(ap, fr);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5263 sn = va_arg(ap, char *);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5264 va_end(ap);
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5265
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5266 buddy = purple_find_buddy(gc->account, sn);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5267 purple_debug_info("oscar", "ssi: %s added you to their buddy list\n", sn);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5268 purple_account_notify_added(gc->account, sn, NULL, (buddy ? purple_buddy_get_alias_only(buddy) : NULL), NULL);
4230
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5269
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5270 return 1;
b5393db78439 [gaim-migrate @ 4475]
Mark Doliner <markdoliner@pidgin.im>
parents: 4212
diff changeset
5271 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5272
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5273 GList *oscar_chat_info(PurpleConnection *gc) {
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5274 GList *m = NULL;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5275 struct proto_chat_entry *pce;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5276
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5277 pce = g_new0(struct proto_chat_entry, 1);
9770
d61fe8dcb6d9 [gaim-migrate @ 10638]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9758
diff changeset
5278 pce->label = _("_Room:");
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5279 pce->identifier = "room";
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10472
diff changeset
5280 pce->required = TRUE;
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5281 m = g_list_append(m, pce);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5282
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5283 pce = g_new0(struct proto_chat_entry, 1);
7841
0000a4c68bf8 [gaim-migrate @ 8494]
Mark Doliner <markdoliner@pidgin.im>
parents: 7805
diff changeset
5284 pce->label = _("_Exchange:");
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5285 pce->identifier = "exchange";
10475
1b7fe16233f3 [gaim-migrate @ 11762]
Richard Laager <rlaager@pidgin.im>
parents: 10472
diff changeset
5286 pce->required = TRUE;
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5287 pce->is_int = TRUE;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5288 pce->min = 4;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5289 pce->max = 20;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5290 m = g_list_append(m, pce);
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5291
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5292 return m;
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5293 }
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5294
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5295 GHashTable *oscar_chat_info_defaults(PurpleConnection *gc, const char *chat_name)
9754
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5296 {
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5297 GHashTable *defaults;
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5298
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5299 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
5300
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5301 if (chat_name != NULL)
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5302 g_hash_table_insert(defaults, "room", g_strdup(chat_name));
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5303
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5304 return defaults;
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5305 }
3a17eee239b2 [gaim-migrate @ 10621]
Nathan Fredrickson <nathan@silverorange.com>
parents: 9753
diff changeset
5306
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5307 char *
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5308 oscar_get_chat_name(GHashTable *data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5309 {
9917
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9914
diff changeset
5310 return g_strdup(g_hash_table_lookup(data, "room"));
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9914
diff changeset
5311 }
2fbb3c9fab2b [gaim-migrate @ 10809]
Daniel Atallah <datallah@pidgin.im>
parents: 9914
diff changeset
5312
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5313 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5314 oscar_join_chat(PurpleConnection *gc, GHashTable *data)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5315 {
8308
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5316 OscarData *od = (OscarData *)gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5317 FlapConnection *conn;
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5318 char *name, *exchange;
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5319
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5320 name = g_hash_table_lookup(data, "room");
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5321 exchange = g_hash_table_lookup(data, "exchange");
2205
68c42ce8eba6 [gaim-migrate @ 2215]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2197
diff changeset
5322
8308
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5323 if ((name == NULL) || (*name == '\0')) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5324 purple_notify_error(gc, NULL, _("Invalid chat name specified."), NULL);
8308
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5325 return;
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5326 }
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5327
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5328 purple_debug_info("oscar", "Attempting to join chat room %s.\n", name);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5329
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5330 if ((conn = flap_connection_getbytype(od, SNAC_FAMILY_CHATNAV)))
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5331 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5332 purple_debug_info("oscar", "chatnav exists, creating room\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5333 aim_chatnav_createroom(od, conn, name, atoi(exchange));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5334 } else {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5335 /* this gets tricky */
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
5336 struct create_room *cr = g_new0(struct create_room, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5337 purple_debug_info("oscar", "chatnav does not exist, opening chatnav\n");
5234
8320a1cb0274 [gaim-migrate @ 5604]
Nathan Walp <nwalp@pidgin.im>
parents: 5219
diff changeset
5338 cr->exchange = atoi(exchange);
2822
a1ddcd96da44 [gaim-migrate @ 2835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2821
diff changeset
5339 cr->name = g_strdup(name);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5340 od->create_rooms = g_slist_prepend(od->create_rooms, cr);
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
5341 aim_srv_requestnew(od, SNAC_FAMILY_CHATNAV);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5342 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5343 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5344
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5345 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5346 oscar_chat_invite(PurpleConnection *gc, int id, const char *message, const char *name)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5347 {
8308
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5348 OscarData *od = (OscarData *)gc->proto_data;
88f1dc8588a8 [gaim-migrate @ 9032]
Mark Doliner <markdoliner@pidgin.im>
parents: 8287
diff changeset
5349 struct chat_connection *ccon = find_oscar_chat(gc, id);
10404
9d66d897e96d [gaim-migrate @ 11649]
Mark Doliner <markdoliner@pidgin.im>
parents: 10401
diff changeset
5350
9d66d897e96d [gaim-migrate @ 11649]
Mark Doliner <markdoliner@pidgin.im>
parents: 10401
diff changeset
5351 if (ccon == NULL)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5352 return;
10404
9d66d897e96d [gaim-migrate @ 11649]
Mark Doliner <markdoliner@pidgin.im>
parents: 10401
diff changeset
5353
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5354 aim_im_sendch2_chatinvite(od, name, message ? message : "",
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5355 ccon->exchange, ccon->name, 0x0);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5356 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5357
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5358 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5359 oscar_chat_leave(PurpleConnection *gc, int id)
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5360 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5361 PurpleConversation *conv;
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5362 struct chat_connection *cc;
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5363
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5364 conv = purple_find_chat(gc, id);
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5365
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5366 g_return_if_fail(conv != NULL);
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5367
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5368 purple_debug_info("oscar", "Leaving chat room %s\n", conv->name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5369
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5370 cc = find_oscar_chat(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)));
10458
76fb2df916af [gaim-migrate @ 11727]
Mark Doliner <markdoliner@pidgin.im>
parents: 10444
diff changeset
5371 oscar_chat_kill(gc, cc);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5372 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5373
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5374 int oscar_send_chat(PurpleConnection *gc, int id, const char *message, PurpleMessageFlags flags) {
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
5375 OscarData *od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5376 PurpleConversation *conv = NULL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5377 struct chat_connection *c = NULL;
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5378 char *buf, *buf2, *buf3;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5379 guint16 charset, charsubset;
9807
ff713acc7204 [gaim-migrate @ 10675]
Mark Doliner <markdoliner@pidgin.im>
parents: 9806
diff changeset
5380 char *charsetstr = NULL;
10111
61dd88113afc [gaim-migrate @ 11144]
Nathan Walp <nwalp@pidgin.im>
parents: 10098
diff changeset
5381 int len;
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
5382
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5383 if (!(conv = purple_find_chat(gc, id)))
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
5384 return -EINVAL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5385
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
5386 if (!(c = find_oscar_chat_by_conv(gc, conv)))
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
5387 return -EINVAL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5388
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5389 buf = purple_strdup_withhtml(message);
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
5390
8962
5cd12e525d95 [gaim-migrate @ 9736]
Tim Ringenbach <marv@pidgin.im>
parents: 8950
diff changeset
5391 if (strstr(buf, "<IMG "))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5392 purple_conversation_write(conv, "",
13227
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
5393 _("Your IM Image was not sent. "
f011e198f246 [gaim-migrate @ 15591]
Mark Doliner <markdoliner@pidgin.im>
parents: 13201
diff changeset
5394 "You cannot send IM Images in AIM chats."),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5395 PURPLE_MESSAGE_ERROR, time(NULL));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5396
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5397 purple_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
5398 /*
9c6e76398a20 [gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents: 13674
diff changeset
5399 * Evan S. suggested that maxvis really does mean "number of
9c6e76398a20 [gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents: 13674
diff changeset
5400 * visible characters" and not "number of bytes"
9c6e76398a20 [gaim-migrate @ 16098]
Mark Doliner <markdoliner@pidgin.im>
parents: 13674
diff changeset
5401 */
8359
3c62ea91eba8 [gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents: 8353
diff changeset
5402 if ((len > c->maxlen) || (len > c->maxvis)) {
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5403 /* If the length was too long, try stripping the HTML and then running it back through
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5404 * purple_strdup_withhtml() and the encoding process. The result may be shorter. */
8359
3c62ea91eba8 [gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents: 8353
diff changeset
5405 g_free(buf2);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5406
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5407 buf3 = purple_markup_strip_html(buf);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5408 g_free(buf);
17693
fe721863e669 Remove a pair of unneeded strlen's
Mark Doliner <markdoliner@pidgin.im>
parents: 17692
diff changeset
5409
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5410 buf = purple_strdup_withhtml(buf3);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5411 g_free(buf3);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5412
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5413 purple_plugin_oscar_convert_to_best_encoding(gc, NULL, buf, &buf2, &len, &charset, &charsubset);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5414
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5415 if ((len > c->maxlen) || (len > c->maxvis)) {
19832
84b69b21672b Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19820
diff changeset
5416 purple_debug_warning("oscar", "Could not send %s because (%i > maxlen %i) or (%i > maxvis %i)\n",
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5417 buf2, len, c->maxlen, len, c->maxvis);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5418 g_free(buf);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5419 g_free(buf2);
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5420 return -E2BIG;
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5421 }
17693
fe721863e669 Remove a pair of unneeded strlen's
Mark Doliner <markdoliner@pidgin.im>
parents: 17692
diff changeset
5422
19832
84b69b21672b Patch from QuLogic. Fixes #2903 ('Missing newlines in debug messages.')
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19820
diff changeset
5423 purple_debug_info("oscar", "Sending %s as %s because the original was too long.\n",
17693
fe721863e669 Remove a pair of unneeded strlen's
Mark Doliner <markdoliner@pidgin.im>
parents: 17692
diff changeset
5424 message, buf2);
8359
3c62ea91eba8 [gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents: 8353
diff changeset
5425 }
3c62ea91eba8 [gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents: 8353
diff changeset
5426
9831
dfebe1c6bffe [gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents: 9830
diff changeset
5427 if (charset == AIM_CHARSET_ASCII)
dfebe1c6bffe [gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents: 9830
diff changeset
5428 charsetstr = "us-ascii";
dfebe1c6bffe [gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents: 9830
diff changeset
5429 else if (charset == AIM_CHARSET_UNICODE)
dfebe1c6bffe [gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents: 9830
diff changeset
5430 charsetstr = "unicode-2-0";
dfebe1c6bffe [gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents: 9830
diff changeset
5431 else if (charset == AIM_CHARSET_CUSTOM)
dfebe1c6bffe [gaim-migrate @ 10702]
Mark Doliner <markdoliner@pidgin.im>
parents: 9830
diff changeset
5432 charsetstr = "iso-8859-1";
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5433 aim_chat_send_im(od, c->conn, 0, buf2, len, charsetstr, "en");
8219
861fb38427f0 [gaim-migrate @ 8942]
Uli Luckas
parents: 8214
diff changeset
5434 g_free(buf2);
17691
75e11249e431 If a message is known to be too long to send to a chat or IM, and it's an HTML message, strip the HTML, re-encode, and try again. The chat part is particularly useful given the short maximum message length and the fact that purple_markup_linkify() will have linkified long links to being twice the number of characters. The IM part is not triggerred in my experience because MAXMSGLEN seems to be far above the number of characters allowed; perhaps it is a number of bytes, not characters?
Evan Schoenberg <evands@pidgin.im>
parents: 17668
diff changeset
5435 g_free(buf);
8359
3c62ea91eba8 [gaim-migrate @ 9083]
Mark Doliner <markdoliner@pidgin.im>
parents: 8353
diff changeset
5436
2167
cbb558585911 [gaim-migrate @ 2177]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2162
diff changeset
5437 return 0;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5438 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5439
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5440 const char *oscar_list_icon_icq(PurpleAccount *a, PurpleBuddy *b)
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5441 {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5442 if ((b == NULL) || (b->name == NULL) || aim_snvalid_sms(b->name))
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5443 {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5444 if (a == NULL || aim_snvalid_icq(purple_account_get_username(a)))
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5445 return "icq";
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5446 else
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5447 return "aim";
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5448 }
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5449
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5450 if (aim_snvalid_icq(b->name))
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5451 return "icq";
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5452 return "aim";
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5453 }
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5454
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5455 const char *oscar_list_icon_aim(PurpleAccount *a, PurpleBuddy *b)
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5456 {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5457 if ((b == NULL) || (b->name == NULL) || aim_snvalid_sms(b->name))
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
5458 {
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5459 if (a != NULL && aim_snvalid_icq(purple_account_get_username(a)))
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5460 return "icq";
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5461 else
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5462 return "aim";
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5463 }
5646
0aa637549d87 [gaim-migrate @ 6060]
Christian Hammond <chipx86@chipx86.com>
parents: 5638
diff changeset
5464
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5465 if (aim_snvalid_icq(b->name))
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5466 return "icq";
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5467 return "aim";
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5468 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5469
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5470 const char* oscar_list_emblem(PurpleBuddy *b)
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5471 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5472 PurpleConnection *gc = NULL;
7334
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5473 OscarData *od = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5474 PurpleAccount *account = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5475 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5476 PurpleStatus *status;
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5477 const char *status_id;
7334
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5478 aim_userinfo_t *userinfo = NULL;
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5479
13655
b8dda7d78514 [gaim-migrate @ 16056]
Mark Doliner <markdoliner@pidgin.im>
parents: 13641
diff changeset
5480 account = b->account;
7334
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5481 if (account != NULL)
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5482 gc = account->gc;
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5483 if (gc != NULL)
4d1a7f313b70 [gaim-migrate @ 7922]
Mark Doliner <markdoliner@pidgin.im>
parents: 7328
diff changeset
5484 od = gc->proto_data;
7945
7270cd25f841 [gaim-migrate @ 8619]
Mark Doliner <markdoliner@pidgin.im>
parents: 7880
diff changeset
5485 if (od != NULL)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5486 userinfo = aim_locate_finduserinfo(od, b->name);
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5487
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5488 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5489 status = purple_presence_get_active_status(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5490 status_id = purple_status_get_id(status);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5491
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5492 if (purple_presence_is_online(presence) == FALSE) {
5131
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5493 char *gname;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5494 if ((b->name) && (od) && (od->ssi.received_data) &&
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5495 (gname = aim_ssi_itemlist_findparentname(od->ssi.local, b->name)) &&
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5496 (aim_ssi_waitingforauth(od->ssi.local, gname, b->name))) {
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5497 return "not-authorized";
5131
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5498 }
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5499 }
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5500
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5501 if (userinfo != NULL ) {
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5502 if (userinfo->flags & AIM_FLAG_ADMINISTRATOR)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5503 return "admin";
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5504 if (userinfo->flags & AIM_FLAG_ACTIVEBUDDY)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5505 return "bot";
16851
e55f1961ad53 We're told by users that Hiptop is not the same thing as mobile, and should not be treated as such.
Sean Egan <seanegan@pidgin.im>
parents: 16821
diff changeset
5506 if (userinfo->capabilities & OSCAR_CAPABILITY_HIPTOP)
e55f1961ad53 We're told by users that Hiptop is not the same thing as mobile, and should not be treated as such.
Sean Egan <seanegan@pidgin.im>
parents: 16821
diff changeset
5507 return "hiptop";
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5508 if (userinfo->capabilities & OSCAR_CAPABILITY_SECUREIM)
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5509 return "secure";
20651
de8514d357d3 Use birthday emblem in OSCAR. Fixes #300
Sean Egan <seanegan@pidgin.im>
parents: 19865
diff changeset
5510 if (userinfo->icqinfo.status & AIM_ICQ_STATE_BIRTHDAY)
de8514d357d3 Use birthday emblem in OSCAR. Fixes #300
Sean Egan <seanegan@pidgin.im>
parents: 19865
diff changeset
5511 return "birthday";
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5512 }
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
5513 return NULL;
4687
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5514 }
91ad36873636 [gaim-migrate @ 4998]
Sean Egan <seanegan@pidgin.im>
parents: 4675
diff changeset
5515
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5516 void oscar_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5517 PurpleConnection *gc = b->account->gc;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
5518 OscarData *od = gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5519 aim_userinfo_t *userinfo = aim_locate_finduserinfo(od, b->name);
5131
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5520
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5521 if (PURPLE_BUDDY_IS_ONLINE(b)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5522 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5523 PurpleStatus *status;
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
5524 const char *message;
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
5525
12948
0867a553ed26 [gaim-migrate @ 15301]
Richard Laager <rlaager@pidgin.im>
parents: 12946
diff changeset
5526 if (full)
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15204
diff changeset
5527 oscar_string_append_info(gc, user_info, b, userinfo);
7011
00f405d9922b [gaim-migrate @ 7574]
Mark Doliner <markdoliner@pidgin.im>
parents: 6982
diff changeset
5528
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5529 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5530 status = purple_presence_get_active_status(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5531 message = purple_status_get_attr_string(status, "message");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5532
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5533 if (purple_status_is_available(status))
12433
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5534 {
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5535 if (message != NULL)
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5536 {
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
5537 /* Available status messages are plain text */
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5538 gchar *tmp;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5539 tmp = g_markup_escape_text(message, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5540 purple_notify_user_info_add_pair(user_info, _("Message"), tmp);
13452
1aeb81a13082 [gaim-migrate @ 15826]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 13382
diff changeset
5541 g_free(tmp);
12433
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5542 }
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5543 }
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5544 else
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5545 {
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5546 if (message != NULL)
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5547 {
12189
34cdc686d8cb [gaim-migrate @ 14491]
Evan Schoenberg <evands@pidgin.im>
parents: 12143
diff changeset
5548 /* Away messages are HTML */
7091
4430f44e86ad [gaim-migrate @ 7656]
Mark Doliner <markdoliner@pidgin.im>
parents: 7083
diff changeset
5549 gchar *tmp1, *tmp2;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5550 tmp2 = purple_markup_strip_html(message);
10732
5e314ab498bf [gaim-migrate @ 12334]
Richard Laager <rlaager@pidgin.im>
parents: 10715
diff changeset
5551 tmp1 = g_markup_escape_text(tmp2, -1);
7091
4430f44e86ad [gaim-migrate @ 7656]
Mark Doliner <markdoliner@pidgin.im>
parents: 7083
diff changeset
5552 g_free(tmp2);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5553 tmp2 = purple_str_sub_away_formatters(tmp1, purple_account_get_username(purple_connection_get_account(gc)));
8461
920171a59e45 [gaim-migrate @ 9191]
Mark Doliner <markdoliner@pidgin.im>
parents: 8446
diff changeset
5554 g_free(tmp1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5555 purple_notify_user_info_add_pair(user_info, _("Away Message"), tmp2);
8700
0c9288c5e40e [gaim-migrate @ 9453]
Mark Doliner <markdoliner@pidgin.im>
parents: 8697
diff changeset
5556 g_free(tmp2);
5836
88819e4cc840 [gaim-migrate @ 6267]
Mark Doliner <markdoliner@pidgin.im>
parents: 5828
diff changeset
5557 }
12433
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5558 else
d2ad67babd06 [gaim-migrate @ 14740]
Mark Doliner <markdoliner@pidgin.im>
parents: 12430
diff changeset
5559 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5560 purple_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
5561 }
5131
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5562 }
8701
333da120f414 [gaim-migrate @ 9454]
Mark Doliner <markdoliner@pidgin.im>
parents: 8700
diff changeset
5563 }
5131
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5564 }
ce6d77bc4102 [gaim-migrate @ 5494]
Mark Doliner <markdoliner@pidgin.im>
parents: 5129
diff changeset
5565
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5566 char *oscar_status_text(PurpleBuddy *b)
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5567 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5568 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5569 PurpleAccount *account;
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5570 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5571 const PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5572 const PurpleStatus *status;
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5573 const char *id;
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5574 const char *message;
5167
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5575 gchar *ret = NULL;
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5576
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5577 gc = purple_account_get_connection(purple_buddy_get_account(b));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5578 account = purple_connection_get_account(gc);
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5579 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5580 presence = purple_buddy_get_presence(b);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5581 status = purple_presence_get_active_status(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5582 id = purple_status_get_id(status);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5583
18269
0d9c99752498 Fix for a crash when trying to get oscar_status_text for a buddy on an
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18197
diff changeset
5584 if ((od != NULL) && !purple_presence_is_online(presence))
11248
18bdab55515d [gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11238
diff changeset
5585 {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5586 char *gname = aim_ssi_itemlist_findparentname(od->ssi.local, b->name);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5587 if (aim_ssi_waitingforauth(od->ssi.local, gname, b->name))
5167
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5588 ret = g_strdup(_("Not Authorized"));
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5589 else
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5590 ret = g_strdup(_("Offline"));
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5591 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5592 else if (purple_status_is_available(status) && !strcmp(id, OSCAR_STATUS_ID_AVAILABLE))
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5593 {
12365
69cf8ac53d5a [gaim-migrate @ 14669]
Mark Doliner <markdoliner@pidgin.im>
parents: 12361
diff changeset
5594 /* Available */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5595 message = purple_status_get_attr_string(status, "message");
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5596 if (message != NULL)
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5597 {
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5598 ret = g_markup_escape_text(message, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5599 purple_util_chrreplace(ret, '\n', ' ');
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5600 }
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5601 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5602 else if (!purple_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
5603 {
12365
69cf8ac53d5a [gaim-migrate @ 14669]
Mark Doliner <markdoliner@pidgin.im>
parents: 12361
diff changeset
5604 /* Away */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5605 message = purple_status_get_attr_string(status, "message");
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5606 if (message != NULL)
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5607 {
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5608 gchar *tmp1, *tmp2;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5609 tmp1 = purple_markup_strip_html(message);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5610 purple_util_chrreplace(tmp1, '\n', ' ');
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5611 tmp2 = g_markup_escape_text(tmp1, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5612 ret = purple_str_sub_away_formatters(tmp2, purple_account_get_username(account));
12347
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5613 g_free(tmp1);
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5614 g_free(tmp2);
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5615 }
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5616 else
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5617 {
5b3fea126c69 [gaim-migrate @ 14651]
Mark Doliner <markdoliner@pidgin.im>
parents: 12344
diff changeset
5618 ret = g_strdup(_("Away"));
11510
8f618fb35bd3 [gaim-migrate @ 13755]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11495
diff changeset
5619 }
11248
18bdab55515d [gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11238
diff changeset
5620 }
18bdab55515d [gaim-migrate @ 13417]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11238
diff changeset
5621 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5622 ret = g_strdup(purple_status_get_name(status));
5167
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5623
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5624 return ret;
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5625 }
e6674b684b55 [gaim-migrate @ 5531]
Mark Doliner <markdoliner@pidgin.im>
parents: 5163
diff changeset
5626
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
5627
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5628 static int oscar_icon_req(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5629 PurpleConnection *gc = od->gc;
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5630 va_list ap;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5631 guint16 type;
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
5632 guint8 flags = 0, length = 0;
11159
76ef02141bcb [gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents: 11155
diff changeset
5633 guchar *md5 = NULL;
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5634
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
5635 va_start(ap, fr);
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
5636 type = va_arg(ap, int);
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5637
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5638 switch(type) {
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5639 case 0x0000:
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5640 case 0x0001: {
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5641 flags = va_arg(ap, int);
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5642 length = va_arg(ap, int);
11159
76ef02141bcb [gaim-migrate @ 13246]
Mark Doliner <markdoliner@pidgin.im>
parents: 11155
diff changeset
5643 md5 = va_arg(ap, guchar *);
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5644
16885
7d49d9448682 flags of 0x00 in oscar_icon_req() can apparently mean 'you should upload your buddy icon' just as flags of 0x41 can. I'm really unclear as to why Adium with libpurple is getting the 0x00 response while Pidgin with the same libpurple code is getting 0x41 after sending identical data (with identical md5 hashes) for a buddy icon... but that's the way it is. This may fix other conditions in which AIM people claim that their buddy icon isn't being properly set; further insight into what's going on would certainly be appreciated.
Evan Schoenberg <evands@pidgin.im>
parents: 16876
diff changeset
5645 if ((flags == 0x00) || (flags == 0x41)) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5646 if (!flap_connection_getbytype(od, SNAC_FAMILY_BART) && !od->iconconnecting) {
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5647 od->iconconnecting = TRUE;
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5648 od->set_icon = TRUE;
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
5649 aim_srv_requestnew(od, SNAC_FAMILY_BART);
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5650 } else {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5651 PurpleAccount *account = purple_connection_get_account(gc);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5652 PurpleStoredImage *img = purple_buddy_icons_find_account_icon(account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5653 if (img == NULL) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5654 aim_ssi_delicon(od);
6039
0d9378194f65 [gaim-migrate @ 6489]
Mark Doliner <markdoliner@pidgin.im>
parents: 6037
diff changeset
5655 } else {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5656
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5657 purple_debug_info("oscar",
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5658 "Uploading icon to icon server\n");
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5659 aim_bart_upload(od, purple_imgstore_get_data(img),
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5660 purple_imgstore_get_size(img));
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5661 purple_imgstore_unref(img);
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5662 }
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5663 }
8363
d46380322c37 [gaim-migrate @ 9088]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8361
diff changeset
5664 } else if (flags == 0x81) {
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5665 PurpleAccount *account = purple_connection_get_account(gc);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5666 PurpleStoredImage *img = purple_buddy_icons_find_account_icon(account);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5667 if (img == NULL)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5668 aim_ssi_delicon(od);
11303
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11285
diff changeset
5669 else {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5670 aim_ssi_seticon(od, md5, length);
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
5671 purple_imgstore_unref(img);
11303
448b8bae1ca7 [gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents: 11285
diff changeset
5672 }
8363
d46380322c37 [gaim-migrate @ 9088]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8361
diff changeset
5673 }
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5674 } break;
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5675
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5676 case 0x0002: { /* We just set an "available" message? */
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5677 } break;
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5678 }
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5679
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
5680 va_end(ap);
5844
a0f8b06669e7 [gaim-migrate @ 6275]
Mark Doliner <markdoliner@pidgin.im>
parents: 5842
diff changeset
5681
a0f8b06669e7 [gaim-migrate @ 6275]
Mark Doliner <markdoliner@pidgin.im>
parents: 5842
diff changeset
5682 return 0;
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
5683 }
5892
fe6738e57d73 [gaim-migrate @ 6324]
Mark Doliner <markdoliner@pidgin.im>
parents: 5872
diff changeset
5684
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5685 void oscar_set_permit_deny(PurpleConnection *gc) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5686 PurpleAccount *account = purple_connection_get_account(gc);
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
5687 OscarData *od = (OscarData *)gc->proto_data;
10866
40eab743e22b [gaim-migrate @ 12552]
Mark Doliner <markdoliner@pidgin.im>
parents: 10860
diff changeset
5688
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5689 if (od->ssi.received_data) {
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5690 switch (account->perm_deny) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5691 case PURPLE_PRIVACY_ALLOW_ALL:
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5692 aim_ssi_setpermdeny(od, 0x01, 0xffffffff);
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5693 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5694 case PURPLE_PRIVACY_ALLOW_BUDDYLIST:
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5695 aim_ssi_setpermdeny(od, 0x05, 0xffffffff);
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5696 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5697 case PURPLE_PRIVACY_ALLOW_USERS:
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5698 aim_ssi_setpermdeny(od, 0x03, 0xffffffff);
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5699 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5700 case PURPLE_PRIVACY_DENY_ALL:
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5701 aim_ssi_setpermdeny(od, 0x02, 0xffffffff);
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5702 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5703 case PURPLE_PRIVACY_DENY_USERS:
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5704 aim_ssi_setpermdeny(od, 0x04, 0xffffffff);
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5705 break;
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5706 default:
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5707 aim_ssi_setpermdeny(od, 0x01, 0xffffffff);
8175
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5708 break;
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5709 }
4e79974d452c [gaim-migrate @ 8889]
Mark Doliner <markdoliner@pidgin.im>
parents: 8170
diff changeset
5710 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5711 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5712
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5713 void oscar_add_permit(PurpleConnection *gc, const char *who) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
5714 OscarData *od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5715 purple_debug_info("oscar", "ssi: About to add a permit\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5716 if (od->ssi.received_data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5717 aim_ssi_addpermit(od, who);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5718 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5719
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5720 void oscar_add_deny(PurpleConnection *gc, const char *who) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
5721 OscarData *od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5722 purple_debug_info("oscar", "ssi: About to add a deny\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5723 if (od->ssi.received_data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5724 aim_ssi_adddeny(od, who);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5725 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5726
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5727 void oscar_rem_permit(PurpleConnection *gc, const char *who) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
5728 OscarData *od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5729 purple_debug_info("oscar", "ssi: About to delete a permit\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5730 if (od->ssi.received_data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5731 aim_ssi_delpermit(od, who);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5732 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5733
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5734 void oscar_rem_deny(PurpleConnection *gc, const char *who) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
5735 OscarData *od = (OscarData *)gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5736 purple_debug_info("oscar", "ssi: About to delete a deny\n");
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5737 if (od->ssi.received_data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5738 aim_ssi_deldeny(od, who);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5739 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5740
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
5741 GList *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5742 oscar_status_types(PurpleAccount *account)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5743 {
12662
061eb8a9e421 [gaim-migrate @ 15005]
Mark Doliner <markdoliner@pidgin.im>
parents: 12661
diff changeset
5744 gboolean is_icq;
9975
ea6d503b89cb [gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents: 9973
diff changeset
5745 GList *status_types = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5746 PurpleStatusType *type;
2501
5e1fa4926c93 [gaim-migrate @ 2514]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2432
diff changeset
5747
9973
e163f8e7e8a4 [gaim-migrate @ 10884]
Mark Doliner <markdoliner@pidgin.im>
parents: 9972
diff changeset
5748 g_return_val_if_fail(account != NULL, NULL);
e163f8e7e8a4 [gaim-migrate @ 10884]
Mark Doliner <markdoliner@pidgin.im>
parents: 9972
diff changeset
5749
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5750 /* Used to flag some statuses as "user settable" or not */
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5751 is_icq = aim_snvalid_icq(purple_account_get_username(account));
12662
061eb8a9e421 [gaim-migrate @ 15005]
Mark Doliner <markdoliner@pidgin.im>
parents: 12661
diff changeset
5752
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5753 /* Common status types */
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5754 /* Really the available message should only be settable for AIM accounts */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5755 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE,
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5756 OSCAR_STATUS_ID_AVAILABLE,
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5757 NULL, TRUE, TRUE, FALSE,
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5758 "message", _("Message"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5759 purple_value_new(PURPLE_TYPE_STRING),
15689
bcf3c0ddb974 Allow setting of the iTunes Music Store URL for AIM accounts. It's
Mark Doliner <markdoliner@pidgin.im>
parents: 15686
diff changeset
5760 "itmsurl", _("iTunes Music Store Link"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5761 purple_value_new(PURPLE_TYPE_STRING), NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5762 status_types = g_list_prepend(status_types, type);
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5763
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5764 type = purple_status_type_new_full(PURPLE_STATUS_AVAILABLE,
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5765 OSCAR_STATUS_ID_FREE4CHAT,
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5766 _("Free For Chat"), TRUE, is_icq, FALSE);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5767 status_types = g_list_prepend(status_types, type);
9976
5fceb5de48b8 [gaim-migrate @ 10887]
Dave West <kat@users.sourceforge.net>
parents: 9975
diff changeset
5768
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5769 type = purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY,
10195
18379f7920fa [gaim-migrate @ 11310]
Mark Doliner <markdoliner@pidgin.im>
parents: 10157
diff changeset
5770 OSCAR_STATUS_ID_AWAY,
12595
8108c22aa723 [gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents: 12588
diff changeset
5771 NULL, TRUE, TRUE, FALSE,
10195
18379f7920fa [gaim-migrate @ 11310]
Mark Doliner <markdoliner@pidgin.im>
parents: 10157
diff changeset
5772 "message", _("Message"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5773 purple_value_new(PURPLE_TYPE_STRING), NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5774 status_types = g_list_prepend(status_types, type);
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5775
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5776 type = purple_status_type_new_full(PURPLE_STATUS_INVISIBLE,
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5777 OSCAR_STATUS_ID_INVISIBLE,
12595
8108c22aa723 [gaim-migrate @ 14925]
Richard Laager <rlaager@pidgin.im>
parents: 12588
diff changeset
5778 NULL, TRUE, TRUE, FALSE);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5779 status_types = g_list_prepend(status_types, type);
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5780
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5781 type = purple_status_type_new_full(PURPLE_STATUS_MOBILE, OSCAR_STATUS_ID_MOBILE, NULL, FALSE, FALSE, TRUE);
15588
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
5782 status_types = g_list_prepend(status_types, type);
e6e89a427ed5 Use the status API to handle mobileness, and convert AIM to use it. This makes mobile buddies prioritze lower in Perons, and ensures the UI is notified of changes in mobileness. Other protocols to follow.
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
5783
10042
b9091ec2b708 [gaim-migrate @ 11001]
Dave West <kat@users.sourceforge.net>
parents: 10039
diff changeset
5784 /* ICQ-specific status types */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5785 type = purple_status_type_new_with_attrs(PURPLE_STATUS_UNAVAILABLE,
14209
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5786 OSCAR_STATUS_ID_OCCUPIED,
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5787 _("Occupied"), TRUE, is_icq, FALSE,
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5788 "message", _("Message"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5789 purple_value_new(PURPLE_TYPE_STRING), NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5790 status_types = g_list_prepend(status_types, type);
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5791
16462
7a2c98e06f77 Sean proposed changing ICQ's "do not disturb" status from being
Mark Doliner <markdoliner@pidgin.im>
parents: 16405
diff changeset
5792 type = purple_status_type_new_with_attrs(PURPLE_STATUS_UNAVAILABLE,
14209
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5793 OSCAR_STATUS_ID_DND,
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5794 _("Do Not Disturb"), TRUE, is_icq, FALSE,
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5795 "message", _("Message"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5796 purple_value_new(PURPLE_TYPE_STRING), NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5797 status_types = g_list_prepend(status_types, type);
13007
8878d47d3595 [gaim-migrate @ 15360]
Mark Doliner <markdoliner@pidgin.im>
parents: 12970
diff changeset
5798
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5799 type = purple_status_type_new_with_attrs(PURPLE_STATUS_EXTENDED_AWAY,
14209
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5800 OSCAR_STATUS_ID_NA,
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5801 _("Not Available"), TRUE, is_icq, FALSE,
f629f12af598 [gaim-migrate @ 16791]
Henning Norén <henning.noren@gmail.com>
parents: 14171
diff changeset
5802 "message", _("Message"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5803 purple_value_new(PURPLE_TYPE_STRING), NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5804 status_types = g_list_prepend(status_types, type);
12658
4aa7a873628d [gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents: 12655
diff changeset
5805
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5806 type = purple_status_type_new_full(PURPLE_STATUS_OFFLINE,
12658
4aa7a873628d [gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents: 12655
diff changeset
5807 OSCAR_STATUS_ID_OFFLINE,
4aa7a873628d [gaim-migrate @ 15001]
Mark Doliner <markdoliner@pidgin.im>
parents: 12655
diff changeset
5808 NULL, TRUE, TRUE, FALSE);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5809 status_types = g_list_prepend(status_types, type);
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5810
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5811 status_types = g_list_reverse(status_types);
9975
ea6d503b89cb [gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents: 9973
diff changeset
5812
ea6d503b89cb [gaim-migrate @ 10886]
Mark Doliner <markdoliner@pidgin.im>
parents: 9973
diff changeset
5813 return status_types;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
5814 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
5815
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5816 static void oscar_ssi_editcomment(struct name_data *data, const char *text) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5817 PurpleConnection *gc = data->gc;
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
5818 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5819 PurpleBuddy *b;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5820 PurpleGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5821
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5822 if (!(b = purple_find_buddy(purple_connection_get_account(data->gc), data->name))) {
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5823 oscar_free_name_data(data);
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5824 return;
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5825 }
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5826
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5827 if (!(g = purple_buddy_get_group(b))) {
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5828 oscar_free_name_data(data);
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5829 return;
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5830 }
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5831
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5832 aim_ssi_editcomment(od, g->name, data->name, text);
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
5833
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
5834 if (!aim_sncmp(data->name, gc->account->username))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5835 purple_check_comment(od, text);
8341
dc43b1acfc1a [gaim-migrate @ 9065]
Mark Doliner <markdoliner@pidgin.im>
parents: 8308
diff changeset
5836
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5837 oscar_free_name_data(data);
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5838 }
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5839
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5840 static void oscar_buddycb_edit_comment(PurpleBlistNode *node, gpointer ignore) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5841
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5842 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5843 PurpleConnection *gc;
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
5844 OscarData *od;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
5845 struct name_data *data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5846 PurpleGroup *g;
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5847 char *comment;
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5848 gchar *comment_utf8;
9631
65565164149f [gaim-migrate @ 10475]
Jon Oberheide
parents: 9627
diff changeset
5849 gchar *title;
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5850
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5851 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5852
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5853 buddy = (PurpleBuddy *) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5854 gc = purple_account_get_connection(buddy->account);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
5855 od = gc->proto_data;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
5856
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
5857 data = g_new(struct name_data, 1);
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
5858
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5859 if (!(g = purple_buddy_get_group(buddy)))
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5860 return;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5861 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
5862 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
5863
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5864 data->gc = gc;
16938
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5865 data->name = g_strdup(purple_buddy_get_name(buddy));
d398661ad227 Pass the screenname properly to purple_account_request_authorization(), passing the nick (if available) separately. Store the nick for use in callbacks in data->nick where possible.
Evan Schoenberg <evands@pidgin.im>
parents: 16885
diff changeset
5866 data->nick = g_strdup(purple_buddy_get_alias_only(buddy));
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5867
9631
65565164149f [gaim-migrate @ 10475]
Jon Oberheide
parents: 9627
diff changeset
5868 title = g_strdup_printf(_("Buddy Comment for %s"), data->name);
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
5869 purple_request_input_with_hint(gc, title, _("Buddy Comment:"), NULL,
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8670
diff changeset
5870 comment_utf8, TRUE, FALSE, NULL,
15356
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
5871 _("_OK"), G_CALLBACK(oscar_ssi_editcomment),
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
5872 _("_Cancel"), G_CALLBACK(oscar_free_name_data),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
5873 purple_connection_get_account(gc), data->name, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
5874 "buddy", data);
9631
65565164149f [gaim-migrate @ 10475]
Jon Oberheide
parents: 9627
diff changeset
5875 g_free(title);
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5876
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5877 g_free(comment);
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5878 g_free(comment_utf8);
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5879 }
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5880
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5881 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5882 oscar_ask_directim_yes_cb(struct oscar_ask_directim_data *data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5883 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5884 peer_connection_propose(data->od, OSCAR_CAPABILITY_DIRECTIM, data->who);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5885 g_free(data->who);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5886 g_free(data);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5887 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5888
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5889 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5890 oscar_ask_directim_no_cb(struct oscar_ask_directim_data *data)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5891 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5892 g_free(data->who);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5893 g_free(data);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5894 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5895
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5896 /* This is called from right-click menu on a buddy node. */
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5897 static void
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5898 oscar_ask_directim(gpointer object, gpointer ignored)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5899 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5900 PurpleBlistNode *node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5901 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5902 PurpleConnection *gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5903 gchar *buf;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5904 struct oscar_ask_directim_data *data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5905
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5906 node = object;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5907
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5908 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5909
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5910 buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5911 gc = purple_account_get_connection(buddy->account);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5912
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5913 data = g_new0(struct oscar_ask_directim_data, 1);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5914 data->who = g_strdup(buddy->name);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5915 data->od = gc->proto_data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5916 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
5917 buddy->name);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5918
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
5919 purple_request_action_with_hint(gc, NULL, buf,
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5920 _("Because this reveals your IP address, it "
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5921 "may be considered a security risk. Do you "
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5922 "wish to continue?"),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
5923 0,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
5924 purple_connection_get_account(gc), data->who, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
5925 "buddy", data, 2,
15356
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
5926 _("C_onnect"), G_CALLBACK(oscar_ask_directim_yes_cb),
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
5927 _("_Cancel"), G_CALLBACK(oscar_ask_directim_no_cb));
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5928 g_free(buf);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5929 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5930
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5931 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5932 oscar_get_aim_info_cb(PurpleBlistNode *node, gpointer ignore)
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5933 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5934 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5935 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5936
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5937 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5938
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5939 buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5940 gc = purple_account_get_connection(buddy->account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5941
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5942 aim_locate_getinfoshort(gc->proto_data, purple_buddy_get_name(buddy), 0x00000003);
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5943 }
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5944
15115
6233e27145ee [gaim-migrate @ 17837]
Mark Doliner <markdoliner@pidgin.im>
parents: 15074
diff changeset
5945 static GList *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5946 oscar_buddy_menu(PurpleBuddy *buddy) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5947
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5948 PurpleConnection *gc;
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5949 OscarData *od;
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5950 GList *menu;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5951 PurpleMenuAction *act;
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5952 aim_userinfo_t *userinfo;
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5953
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5954 gc = purple_account_get_connection(buddy->account);
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5955 od = gc->proto_data;
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5956 userinfo = aim_locate_finduserinfo(od, buddy->name);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5957 menu = NULL;
12919
519199cca273 [gaim-migrate @ 15272]
Etan Reisner <deryni@pidgin.im>
parents: 12918
diff changeset
5958
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
5959 if (od->icq && aim_snvalid_icq(purple_buddy_get_name(buddy)))
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5960 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5961 act = purple_menu_action_new(_("Get AIM Info"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5962 PURPLE_CALLBACK(oscar_get_aim_info_cb),
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5963 NULL, NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5964 menu = g_list_prepend(menu, act);
13937
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5965 }
d5606a63400f [gaim-migrate @ 16349]
Mark Doliner <markdoliner@pidgin.im>
parents: 13935
diff changeset
5966
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5967 act = purple_menu_action_new(_("Edit Buddy Comment"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5968 PURPLE_CALLBACK(oscar_buddycb_edit_comment),
12919
519199cca273 [gaim-migrate @ 15272]
Etan Reisner <deryni@pidgin.im>
parents: 12918
diff changeset
5969 NULL, NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5970 menu = g_list_prepend(menu, act);
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7166
diff changeset
5971
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
5972 #if 0
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5973 if (od->icq)
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5974 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5975 act = purple_menu_action_new(_("Get Status Msg"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5976 PURPLE_CALLBACK(oscar_get_icqstatusmsg),
12919
519199cca273 [gaim-migrate @ 15272]
Etan Reisner <deryni@pidgin.im>
parents: 12918
diff changeset
5977 NULL, NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5978 menu = g_list_prepend(menu, act);
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5979 }
4624
8bf85f27e60c [gaim-migrate @ 4915]
Mark Doliner <markdoliner@pidgin.im>
parents: 4617
diff changeset
5980 #endif
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5981
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5982 if (userinfo &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5983 aim_sncmp(purple_account_get_username(buddy->account), buddy->name) &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5984 PURPLE_BUDDY_IS_ONLINE(buddy))
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5985 {
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5986 if (userinfo->capabilities & OSCAR_CAPABILITY_DIRECTIM)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
5987 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5988 act = purple_menu_action_new(_("Direct IM"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5989 PURPLE_CALLBACK(oscar_ask_directim),
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5990 NULL, NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5991 menu = g_list_prepend(menu, act);
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5992 }
9466
b6425eab60ca [gaim-migrate @ 10291]
Daniel Atallah <datallah@pidgin.im>
parents: 9463
diff changeset
5993 #if 0
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5994 /* TODO: This menu item should be added by the core */
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5995 if (userinfo->capabilities & OSCAR_CAPABILITY_GETFILE) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5996 act = purple_menu_action_new(_("Get File"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
5997 PURPLE_CALLBACK(oscar_ask_getfile),
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
5998 NULL, NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
5999 menu = g_list_prepend(menu, act);
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6000 }
4826
ce211ce6a336 [gaim-migrate @ 5151]
Mark Doliner <markdoliner@pidgin.im>
parents: 4825
diff changeset
6001 #endif
13606
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6002 }
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6003
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6004 if (od->ssi.received_data)
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6005 {
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6006 char *gname;
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6007 gname = aim_ssi_itemlist_findparentname(od->ssi.local, buddy->name);
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6008 if (gname && aim_ssi_waitingforauth(od->ssi.local, gname, buddy->name))
edf40f4c8b77 [gaim-migrate @ 15991]
Mark Doliner <markdoliner@pidgin.im>
parents: 13605
diff changeset
6009 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6010 act = purple_menu_action_new(_("Re-request Authorization"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6011 PURPLE_CALLBACK(purple_auth_sendrequest_menu),
12919
519199cca273 [gaim-migrate @ 15272]
Etan Reisner <deryni@pidgin.im>
parents: 12918
diff changeset
6012 NULL, NULL);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6013 menu = g_list_prepend(menu, act);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6014 }
4916
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4901
diff changeset
6015 }
10157
650fd69090cd [gaim-migrate @ 11237]
Mark Doliner <markdoliner@pidgin.im>
parents: 10152
diff changeset
6016
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6017 menu = g_list_reverse(menu);
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6018
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6019 return menu;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6020 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6021
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6022
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6023 GList *oscar_blist_node_menu(PurpleBlistNode *node) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6024 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6025 return oscar_buddy_menu((PurpleBuddy *) node);
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6026 } else {
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6027 return NULL;
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6028 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6029 }
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6030
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6031 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6032 oscar_icq_privacy_opts(PurpleConnection *gc, PurpleRequestFields *fields)
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6033 {
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6034 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6035 PurpleAccount *account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6036 PurpleRequestField *f;
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
6037 gboolean auth, web_aware;
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6038
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6039 f = purple_request_fields_get_field(fields, "authorization");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6040 auth = purple_request_field_bool_get_value(f);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6041
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6042 f = purple_request_fields_get_field(fields, "web_aware");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6043 web_aware = purple_request_field_bool_get_value(f);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6044
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6045 purple_account_set_bool(account, "authorization", auth);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6046 purple_account_set_bool(account, "web_aware", web_aware);
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6047
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
6048 oscar_set_extendedstatus(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6049 aim_icq_setsecurity(od, auth, web_aware);
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6050 }
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6051
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6052 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6053 oscar_show_icq_privacy_opts(PurplePluginAction *action)
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6054 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6055 PurpleConnection *gc = (PurpleConnection *) action->context;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6056 PurpleAccount *account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6057 PurpleRequestFields *fields;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6058 PurpleRequestFieldGroup *g;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6059 PurpleRequestField *f;
12652
363cd78076e0 [gaim-migrate @ 14995]
Mark Doliner <markdoliner@pidgin.im>
parents: 12645
diff changeset
6060 gboolean auth, web_aware;
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6061
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6062 auth = purple_account_get_bool(account, "authorization", OSCAR_DEFAULT_AUTHORIZATION);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6063 web_aware = purple_account_get_bool(account, "web_aware", OSCAR_DEFAULT_WEB_AWARE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6064
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6065 fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6066
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6067 g = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6068
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6069 f = purple_request_field_bool_new("authorization", _("Require authorization"), auth);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6070 purple_request_field_group_add_field(g, f);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6071
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6072 f = purple_request_field_bool_new("web_aware", _("Web aware (enabling this will cause you to receive SPAM!)"), web_aware);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6073 purple_request_field_group_add_field(g, f);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6074
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6075 purple_request_fields_add_group(fields, g);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6076
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
6077 purple_request_fields_with_hint(gc, _("ICQ Privacy Options"), _("ICQ Privacy Options"),
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6078 NULL, fields,
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6079 _("OK"), G_CALLBACK(oscar_icq_privacy_opts),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
6080 _("Cancel"), NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
6081 purple_connection_get_account(gc), NULL, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
6082 "account", gc);
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6083 }
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9016
diff changeset
6084
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6085 static void oscar_format_screenname(PurpleConnection *gc, const char *nick) {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6086 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6087 if (!aim_sncmp(purple_account_get_username(purple_connection_get_account(gc)), nick)) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6088 if (!flap_connection_getbytype(od, SNAC_FAMILY_ADMIN)) {
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6089 od->setnick = TRUE;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6090 od->newsn = g_strdup(nick);
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
6091 aim_srv_requestnew(od, SNAC_FAMILY_ADMIN);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6092 } else {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6093 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
6094 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6095 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6096 purple_notify_error(gc, NULL, _("The new formatting is invalid."),
8152
f26c9406b4b3 [gaim-migrate @ 8864]
Mark Doliner <markdoliner@pidgin.im>
parents: 8151
diff changeset
6097 _("Screen name formatting can change only capitalization and whitespace."));
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6098 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6099 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6100
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6101 static void oscar_confirm_account(PurplePluginAction *action)
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6102 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6103 PurpleConnection *gc;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6104 OscarData *od;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6105 FlapConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6106
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6107 gc = (PurpleConnection *)action->context;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6108 od = gc->proto_data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6109
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6110 conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6111 if (conn != NULL) {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6112 aim_admin_reqconfirm(od, conn);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6113 } else {
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6114 od->conf = TRUE;
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
6115 aim_srv_requestnew(od, SNAC_FAMILY_ADMIN);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6116 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6117 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6118
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6119 static void oscar_show_email(PurplePluginAction *action)
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6120 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6121 PurpleConnection *gc = (PurpleConnection *) action->context;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6122 OscarData *od = gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6123 FlapConnection *conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6124
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6125 if (conn) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6126 aim_admin_getinfo(od, conn, 0x11);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6127 } else {
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6128 od->reqemail = TRUE;
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
6129 aim_srv_requestnew(od, SNAC_FAMILY_ADMIN);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6130 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6131 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6132
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6133 static void oscar_change_email(PurpleConnection *gc, const char *email)
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6134 {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6135 OscarData *od = gc->proto_data;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6136 FlapConnection *conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6137
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6138 if (conn) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6139 aim_admin_setemail(od, conn, email);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6140 } else {
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6141 od->setemail = TRUE;
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6142 od->email = g_strdup(email);
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
6143 aim_srv_requestnew(od, SNAC_FAMILY_ADMIN);
2768
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6144 }
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6145 }
908aa476ee73 [gaim-migrate @ 2781]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2762
diff changeset
6146
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6147 static void oscar_show_change_email(PurplePluginAction *action)
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6148 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6149 PurpleConnection *gc = (PurpleConnection *) action->context;
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
6150 purple_request_input_with_hint(gc, NULL, _("Change Address To:"), NULL, NULL,
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8670
diff changeset
6151 FALSE, FALSE, NULL,
15356
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
6152 _("_OK"), G_CALLBACK(oscar_change_email),
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
6153 _("_Cancel"), NULL,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
6154 purple_connection_get_account(gc), NULL, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
6155 "account", gc);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6156 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6157
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6158 static void oscar_show_awaitingauth(PurplePluginAction *action)
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6159 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6160 PurpleConnection *gc = (PurpleConnection *) action->context;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6161 OscarData *od = gc->proto_data;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6162 gchar *nombre, *text, *tmp;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6163 PurpleBlistNode *gnode, *cnode, *bnode;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6164 int num=0;
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6165
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6166 text = g_strdup("");
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6167
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6168 for (gnode = purple_get_blist()->root; gnode; gnode = gnode->next) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6169 PurpleGroup *group = (PurpleGroup *)gnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6170 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
4785
9af09a0b5ac1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
6171 continue;
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6172 for (cnode = gnode->child; cnode; cnode = cnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6173 if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
4785
9af09a0b5ac1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4783
diff changeset
6174 continue;
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6175 for (bnode = cnode->child; bnode; bnode = bnode->next) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6176 PurpleBuddy *buddy = (PurpleBuddy *)bnode;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6177 if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6178 continue;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6179 if (buddy->account == gc->account && aim_ssi_waitingforauth(od->ssi.local, group->name, buddy->name)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6180 if (purple_buddy_get_alias_only(buddy))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6181 nombre = g_strdup_printf(" %s (%s)", buddy->name, purple_buddy_get_alias_only(buddy));
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6182 else
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6183 nombre = g_strdup_printf(" %s", buddy->name);
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6184 tmp = g_strdup_printf("%s%s<br>", text, nombre);
6695
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6185 g_free(text);
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6186 text = tmp;
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6187 g_free(nombre);
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6188 num++;
2a63688f0d6d [gaim-migrate @ 7221]
Nathan Walp <nwalp@pidgin.im>
parents: 6640
diff changeset
6189 }
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6190 }
2979
ea91012810b3 [gaim-migrate @ 2992]
Rob Flynn <gaim@robflynn.com>
parents: 2947
diff changeset
6191 }
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6192 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6193
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6194 if (!num) {
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6195 g_free(text);
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6196 text = g_strdup(_("<i>you are not waiting for authorization</i>"));
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6197 }
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6198
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6199 purple_notify_formatted(gc, NULL, _("You are awaiting authorization from "
6873
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6200 "the following buddies"), _("You can re-request "
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6201 "authorization from these buddies by "
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6202 "right-clicking on them and selecting "
70cc4cd04196 [gaim-migrate @ 7419]
Mark Doliner <markdoliner@pidgin.im>
parents: 6871
diff changeset
6203 "\"Re-request Authorization.\""), text, NULL, NULL);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6204 g_free(text);
2979
ea91012810b3 [gaim-migrate @ 2992]
Rob Flynn <gaim@robflynn.com>
parents: 2947
diff changeset
6205 }
ea91012810b3 [gaim-migrate @ 2992]
Rob Flynn <gaim@robflynn.com>
parents: 2947
diff changeset
6206
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6207 static void search_by_email_cb(PurpleConnection *gc, const char *email)
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6208 {
8950
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8907
diff changeset
6209 OscarData *od = (OscarData *)gc->proto_data;
1b90ece5fb4f [gaim-migrate @ 9722]
Mark Doliner <markdoliner@pidgin.im>
parents: 8907
diff changeset
6210
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6211 aim_search_address(od, email);
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6212 }
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6213
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6214 static void oscar_show_find_email(PurplePluginAction *action)
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6215 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6216 PurpleConnection *gc = (PurpleConnection *) action->context;
20685
039aef89faf6 Updated hinting to be less invasive
Gabriel Schulhof <nix@go-nix.ca>
parents: 20684
diff changeset
6217 purple_request_input_with_hint(gc, _("Find Buddy by E-Mail"),
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6218 _("Search for a buddy by e-mail address"),
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6219 _("Type the e-mail address of the buddy you are "
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6220 "searching for."),
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8670
diff changeset
6221 NULL, FALSE, FALSE, NULL,
15356
a5ad506222a1 [gaim-migrate @ 18085]
Mark Doliner <markdoliner@pidgin.im>
parents: 15345
diff changeset
6222 _("_Search"), G_CALLBACK(search_by_email_cb),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
6223 _("_Cancel"), NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16462
diff changeset
6224 purple_connection_get_account(gc), NULL, NULL,
19267
8d51ec40763b Added hints to oscar oscar.c
Gabriel Schulhof <nix@go-nix.ca>
parents: 19113
diff changeset
6225 "buddy", gc);
7080
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6226 }
a443c1992270 [gaim-migrate @ 7645]
Christian Hammond <chipx86@chipx86.com>
parents: 7067
diff changeset
6227
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6228 static void oscar_show_set_info(PurplePluginAction *action)
7067
c57295414efa [gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents: 7063
diff changeset
6229 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6230 PurpleConnection *gc = (PurpleConnection *) action->context;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6231 purple_account_request_change_user_info(purple_connection_get_account(gc));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6232 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6233
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6234 static void oscar_show_set_info_icqurl(PurplePluginAction *action)
8576
2bbdbfa1bb83 [gaim-migrate @ 9325]
Ambrose Li <ambrose.li@gmail.com>
parents: 8571
diff changeset
6235 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6236 PurpleConnection *gc = (PurpleConnection *) action->context;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6237 purple_notify_uri(gc, "http://www.icq.com/whitepages/user_details.php");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6238 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6239
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6240 static void oscar_change_pass(PurplePluginAction *action)
7063
4bfe512a4b8c [gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents: 7060
diff changeset
6241 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6242 PurpleConnection *gc = (PurpleConnection *) action->context;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6243 purple_account_request_change_password(purple_connection_get_account(gc));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6244 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6245
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6246 static void oscar_show_chpassurl(PurplePluginAction *action)
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6247 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6248 PurpleConnection *gc = (PurpleConnection *) action->context;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6249 OscarData *od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6250 gchar *substituted = purple_strreplace(od->authinfo->chpassurl, "%s", purple_account_get_username(purple_connection_get_account(gc)));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6251 purple_notify_uri(gc, substituted);
5517
1d7b99ac846c [gaim-migrate @ 5916]
Mark Doliner <markdoliner@pidgin.im>
parents: 5498
diff changeset
6252 g_free(substituted);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6253 }
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6254
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6255 static void oscar_show_imforwardingurl(PurplePluginAction *action)
7026
7828abff32da [gaim-migrate @ 7589]
Mark Doliner <markdoliner@pidgin.im>
parents: 7023
diff changeset
6256 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6257 PurpleConnection *gc = (PurpleConnection *) action->context;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6258 purple_notify_uri(gc, "http://mymobile.aol.com/dbreg/register?action=imf&clientID=1");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6259 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6260
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6261 void oscar_set_icon(PurpleConnection *gc, PurpleStoredImage *img)
5842
8c35097a15b5 [gaim-migrate @ 6273]
Sean Egan <seanegan@pidgin.im>
parents: 5837
diff changeset
6262 {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6263 OscarData *od = gc->proto_data;
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6264
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6265 if (img == NULL) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6266 aim_ssi_delicon(od);
16538
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6267 } else {
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6268 PurpleCipher *cipher;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6269 PurpleCipherContext *context;
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6270 guchar md5[16];
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6271 gconstpointer data = purple_imgstore_get_data(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6272 size_t len = purple_imgstore_get_size(img);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6273
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6274
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6275 cipher = purple_ciphers_find_cipher("md5");
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6276 context = purple_cipher_context_new(cipher, NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6277 purple_cipher_context_append(context, data, len);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6278 purple_cipher_context_digest(context, 16, md5, NULL);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6279 purple_cipher_context_destroy(context);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6280
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6281 aim_ssi_seticon(od, md5, 16);
c7e61e2917c9 Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents: 16534
diff changeset
6282 }
13593
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
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6285 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6286 * Called by the Purple core to determine whether or not we're
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6287 * allowed to send a file to this user.
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6288 */
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
6289 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6290 oscar_can_receive_file(PurpleConnection *gc, const char *who)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6291 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6292 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6293 PurpleAccount *account;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6294
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6295 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6296 account = purple_connection_get_account(gc);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6297
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6298 if (od != NULL)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6299 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6300 aim_userinfo_t *userinfo;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6301 userinfo = aim_locate_finduserinfo(od, who);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6302
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6303 /*
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6304 * 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
6305 * file transfer, and don't allow sending to ourselves.
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6306 */
13970
0d9441d1cfea [gaim-migrate @ 16404]
Mark Doliner <markdoliner@pidgin.im>
parents: 13937
diff changeset
6307 if (((userinfo == NULL) ||
0d9441d1cfea [gaim-migrate @ 16404]
Mark Doliner <markdoliner@pidgin.im>
parents: 13937
diff changeset
6308 (userinfo->capabilities & OSCAR_CAPABILITY_SENDFILE)) &&
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6309 aim_sncmp(who, purple_account_get_username(account)))
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6310 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6311 return TRUE;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6312 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6313 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6314
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6315 return FALSE;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6316 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6317
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6318 PurpleXfer *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6319 oscar_new_xfer(PurpleConnection *gc, const char *who)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6320 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6321 PurpleXfer *xfer;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6322 OscarData *od;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6323 PurpleAccount *account;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6324 PeerConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6325
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6326 od = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6327 account = purple_connection_get_account(gc);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6328
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6329 xfer = purple_xfer_new(account, PURPLE_XFER_SEND, who);
15345
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6330 if (xfer)
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6331 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6332 purple_xfer_ref(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6333 purple_xfer_set_init_fnc(xfer, peer_oft_sendcb_init);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6334 purple_xfer_set_cancel_send_fnc(xfer, peer_oft_cb_generic_cancel);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6335 purple_xfer_set_request_denied_fnc(xfer, peer_oft_cb_generic_cancel);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6336 purple_xfer_set_ack_fnc(xfer, peer_oft_sendcb_ack);
15345
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6337
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6338 conn = peer_connection_new(od, OSCAR_CAPABILITY_SENDFILE, who);
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6339 conn->flags |= PEER_CONNECTION_FLAG_INITIATED_BY_ME;
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6340 conn->flags |= PEER_CONNECTION_FLAG_APPROVED;
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6341 aim_icbm_makecookie(conn->cookie);
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6342 conn->xfer = xfer;
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6343 xfer->data = conn;
797936e968ff [gaim-migrate @ 18073]
Evan Schoenberg <evands@pidgin.im>
parents: 15317
diff changeset
6344 }
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6345
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6346 return xfer;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6347 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6348
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6349 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6350 * Called by the Purple core when the user indicates that a
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6351 * file is to be sent to a special someone.
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6352 */
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
6353 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6354 oscar_send_file(PurpleConnection *gc, const char *who, const char *file)
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6355 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6356 PurpleXfer *xfer;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6357
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6358 xfer = oscar_new_xfer(gc, who);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6359
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6360 if (file != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6361 purple_xfer_request_accepted(xfer, file);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6362 else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6363 purple_xfer_request(xfer);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6364 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6365
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
6366 GList *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6367 oscar_actions(PurplePlugin *plugin, gpointer context)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6368 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6369 PurpleConnection *gc = (PurpleConnection *) context;
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6370 OscarData *od = gc->proto_data;
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6371 GList *menu = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6372 PurplePluginAction *act;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6373
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6374 act = purple_plugin_action_new(_("Set User Info..."),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6375 oscar_show_set_info);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6376 menu = g_list_prepend(menu, act);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6377
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6378 if (od->icq)
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6379 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6380 act = purple_plugin_action_new(_("Set User Info (URL)..."),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6381 oscar_show_set_info_icqurl);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6382 menu = g_list_prepend(menu, act);
8576
2bbdbfa1bb83 [gaim-migrate @ 9325]
Ambrose Li <ambrose.li@gmail.com>
parents: 8571
diff changeset
6383 }
2bbdbfa1bb83 [gaim-migrate @ 9325]
Ambrose Li <ambrose.li@gmail.com>
parents: 8571
diff changeset
6384
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6385 act = purple_plugin_action_new(_("Change Password..."),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6386 oscar_change_pass);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6387 menu = g_list_prepend(menu, act);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6388
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6389 if (od->authinfo->chpassurl != NULL)
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6390 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6391 act = purple_plugin_action_new(_("Change Password (URL)"),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6392 oscar_show_chpassurl);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6393 menu = g_list_prepend(menu, act);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6394
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6395 act = purple_plugin_action_new(_("Configure IM Forwarding (URL)"),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6396 oscar_show_imforwardingurl);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6397 menu = g_list_prepend(menu, act);
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6398 }
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6399
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6400 menu = g_list_prepend(menu, NULL);
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6401
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6402 if (od->icq)
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6403 {
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6404 /* ICQ actions */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6405 act = purple_plugin_action_new(_("Set Privacy Options..."),
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6406 oscar_show_icq_privacy_opts);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6407 menu = g_list_prepend(menu, act);
10570
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6408 }
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6409 else
54b00f6b9147 [gaim-migrate @ 11960]
Ettore Simone
parents: 10567
diff changeset
6410 {
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6411 /* AIM actions */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6412 act = purple_plugin_action_new(_("Confirm Account"),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6413 oscar_confirm_account);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6414 menu = g_list_prepend(menu, act);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6415
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6416 act = purple_plugin_action_new(_("Display Currently Registered E-Mail Address"),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6417 oscar_show_email);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6418 menu = g_list_prepend(menu, act);
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6419
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6420 act = purple_plugin_action_new(_("Change Currently Registered E-Mail Address..."),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6421 oscar_show_change_email);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6422 menu = g_list_prepend(menu, act);
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6423 }
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6424
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6425 menu = g_list_prepend(menu, NULL);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6426
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6427 act = purple_plugin_action_new(_("Show Buddies Awaiting Authorization"),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6428 oscar_show_awaitingauth);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6429 menu = g_list_prepend(menu, act);
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6430
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6431 menu = g_list_prepend(menu, NULL);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6432
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6433 act = purple_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
6434 oscar_show_find_email);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6435 menu = g_list_prepend(menu, act);
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4317
diff changeset
6436
8591
ae42ad1cd127 [gaim-migrate @ 9342]
Mark Doliner <markdoliner@pidgin.im>
parents: 8590
diff changeset
6437 #if 0
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6438 act = purple_plugin_action_new(_("Search for Buddy by Information"),
9015
3c27e9074fa2 [gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents: 8995
diff changeset
6439 show_find_info);
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6440 menu = g_list_prepend(menu, act);
8591
ae42ad1cd127 [gaim-migrate @ 9342]
Mark Doliner <markdoliner@pidgin.im>
parents: 8590
diff changeset
6441 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6442
14410
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6443 menu = g_list_reverse(menu);
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6444
a5ae93474db6 [gaim-migrate @ 17050]
Mark Doliner <markdoliner@pidgin.im>
parents: 14344
diff changeset
6445 return menu;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6446 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6447
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6448 void oscar_change_passwd(PurpleConnection *gc, const char *old, const char *new)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6449 {
7283
aa76f7c93746 [gaim-migrate @ 7863]
Mark Doliner <markdoliner@pidgin.im>
parents: 7282
diff changeset
6450 OscarData *od = gc->proto_data;
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6451
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6452 if (od->icq) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6453 aim_icq_changepasswd(od, new);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6454 } else {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6455 FlapConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6456 conn = flap_connection_getbytype(od, SNAC_FAMILY_ADMIN);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6457 if (conn) {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6458 aim_admin_changepasswd(od, conn, new, old);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6459 } else {
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6460 od->chpass = TRUE;
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6461 od->oldp = g_strdup(old);
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6462 od->newp = g_strdup(new);
15147
101192282f5d [gaim-migrate @ 17871]
Mark Doliner <markdoliner@pidgin.im>
parents: 15142
diff changeset
6463 aim_srv_requestnew(od, SNAC_FAMILY_ADMIN);
4617
35d860860593 [gaim-migrate @ 4908]
Mark Doliner <markdoliner@pidgin.im>
parents: 4608
diff changeset
6464 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6465 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6466 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6467
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
6468 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6469 oscar_convo_closed(PurpleConnection *gc, const char *who)
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
6470 {
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6471 OscarData *od;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6472 PeerConnection *conn;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6473
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6474 od = gc->proto_data;
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6475 conn = peer_connection_find_by_type(od, who, OSCAR_CAPABILITY_DIRECTIM);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6476
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6477 if (conn != NULL)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6478 {
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6479 if (!conn->ready)
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6480 aim_im_sendch2_cancel(conn);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6481
14464
b7bca43f75b3 [gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents: 14454
diff changeset
6482 peer_connection_destroy(conn, OSCAR_DISCONNECT_LOCAL_CLOSED, NULL);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6483 }
2246
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
6484 }
8ade8b7421af [gaim-migrate @ 2256]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2235
diff changeset
6485
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6486 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6487 recent_buddies_cb(const char *name, PurplePrefType type,
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12730
diff changeset
6488 gconstpointer value, gpointer data)
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6489 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6490 PurpleConnection *gc = data;
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6491 OscarData *od = gc->proto_data;
13235
72bddc689630 [gaim-migrate @ 15600]
Mark Doliner <markdoliner@pidgin.im>
parents: 13232
diff changeset
6492 guint32 presence;
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6493
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6494 presence = aim_ssi_getpresence(od->ssi.local);
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6495
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6496 if (value) {
12486
58a4a7b22512 [gaim-migrate @ 14798]
Mark Doliner <markdoliner@pidgin.im>
parents: 12454
diff changeset
6497 presence &= ~AIM_SSI_PRESENCE_FLAG_NORECENTBUDDIES;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6498 aim_ssi_setpresence(od, presence);
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6499 } else {
12486
58a4a7b22512 [gaim-migrate @ 14798]
Mark Doliner <markdoliner@pidgin.im>
parents: 12454
diff changeset
6500 presence |= AIM_SSI_PRESENCE_FLAG_NORECENTBUDDIES;
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6501 aim_ssi_setpresence(od, presence);
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6502 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6503 }
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6504
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6505 #ifdef USE_PRPL_PREFERENCES
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6506 ppref = purple_plugin_pref_new_with_name_and_label("/plugins/prpl/oscar/recent_buddies", _("Use recent buddies group"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6507 purple_plugin_pref_frame_add(frame, ppref);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6508
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6509 ppref = purple_plugin_pref_new_with_name_and_label("/plugins/prpl/oscar/show_idle", _("Show how long you have been idle"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6510 purple_plugin_pref_frame_add(frame, ppref);
13593
3450a7cede99 [gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents: 13572
diff changeset
6511 #endif
9935
45473da3a39b [gaim-migrate @ 10827]
Mark Doliner <markdoliner@pidgin.im>
parents: 9933
diff changeset
6512
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
6513 const char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6514 oscar_normalize(const PurpleAccount *account, const char *str)
11153
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6515 {
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6516 static char buf[BUF_LEN];
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6517 char *tmp1, *tmp2;
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6518 int i, j;
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6519
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6520 g_return_val_if_fail(str != NULL, NULL);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6521
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6522 strncpy(buf, str, BUF_LEN);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6523 for (i=0, j=0; buf[j]; i++, j++)
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6524 {
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6525 while (buf[j] == ' ')
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6526 j++;
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6527 buf[i] = buf[j];
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6528 }
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6529 buf[i] = '\0';
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6530
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6531 tmp1 = g_utf8_strdown(buf, -1);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6532 tmp2 = g_utf8_normalize(tmp1, -1, G_NORMALIZE_DEFAULT);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6533 g_snprintf(buf, sizeof(buf), "%s", tmp2);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6534 g_free(tmp2);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6535 g_free(tmp1);
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6536
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6537 return buf;
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6538 }
b5c721366f2d [gaim-migrate @ 13235]
Evan Schoenberg <evands@pidgin.im>
parents: 11102
diff changeset
6539
15030
6a6cf7be07ea [gaim-migrate @ 17747]
Sean Egan <seanegan@pidgin.im>
parents: 14964
diff changeset
6540 gboolean
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6541 oscar_offline_message(const PurpleBuddy *buddy)
12645
a907ba243930 [gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12624
diff changeset
6542 {
17003
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6543 OscarData *od = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6544 PurpleAccount *account;
17003
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6545 PurpleConnection *gc = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6546
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6547 account = purple_buddy_get_account(buddy);
17003
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6548 if (account != NULL) {
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6549 gc = purple_account_get_connection(account);
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6550 if (gc != NULL)
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6551 od = (OscarData *)gc->proto_data;
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6552 }
02656ccd953e Fix #755 - Crash on disconnection due to oscar offline messaging check invalid pointer deref.
Daniel Atallah <datallah@pidgin.im>
parents: 16939
diff changeset
6553
19820
0f82885da3d8 A little function name shuffling.
Mark Doliner <markdoliner@pidgin.im>
parents: 19819
diff changeset
6554 return (od != NULL && od->icq && aim_snvalid_icq(purple_account_get_username(account)));
12645
a907ba243930 [gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12624
diff changeset
6555 }
a907ba243930 [gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12624
diff changeset
6556
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6557 /* TODO: Find somewhere to put this instead of including it in a bunch of places.
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6558 * Maybe just change purple_accounts_find() to return anything for the prpl if there is no acct_id.
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6559 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6560 static PurpleAccount *find_acct(const char *prpl, const char *acct_id)
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6561 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6562 PurpleAccount *acct = NULL;
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6563
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6564 /* If we have a specific acct, use it */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6565 if (acct_id) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6566 acct = purple_accounts_find(acct_id, prpl);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6567 if (acct && !purple_account_is_connected(acct))
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6568 acct = NULL;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6569 } else { /* Otherwise find an active account for the protocol */
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
6570 GList *l = purple_accounts_get_all();
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6571 while (l) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6572 if (!strcmp(prpl, purple_account_get_protocol_id(l->data))
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6573 && purple_account_is_connected(l->data)) {
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6574 acct = l->data;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6575 break;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6576 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6577 l = l->next;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6578 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6579 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6580
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6581 return acct;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6582 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6583
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6584
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6585 static gboolean oscar_uri_handler(const char *proto, const char *cmd, GHashTable *params)
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6586 {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6587 char *acct_id = g_hash_table_lookup(params, "account");
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6588 char prpl[11];
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6589 PurpleAccount *acct;
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6590
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6591 if (g_ascii_strcasecmp(proto, "aim") && g_ascii_strcasecmp(proto, "icq"))
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6592 return FALSE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6593
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6594 g_snprintf(prpl, sizeof(prpl), "prpl-%s", proto);
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6595
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6596 acct = find_acct(prpl, acct_id);
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6597
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6598 if (!acct)
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6599 return FALSE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6600
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6601 /* aim:GoIM?screenname=SCREENNAME&message=MESSAGE */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6602 if (!g_ascii_strcasecmp(cmd, "GoIM")) {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6603 char *sname = g_hash_table_lookup(params, "screenname");
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6604 if (sname) {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6605 char *message = g_hash_table_lookup(params, "message");
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6606
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6607 PurpleConversation *conv = purple_find_conversation_with_account(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6608 PURPLE_CONV_TYPE_IM, sname, acct);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6609 if (conv == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6610 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, sname);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6611 purple_conversation_present(conv);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6612
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6613 if (message) {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6614 /* Spaces are encoded as '+' */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6615 g_strdelimit(message, "+", ' ');
18940
8a9341775495 Don't actually send messages using the protocol handlers (open the window and pre-populate the message, but require the user to actually send the message). Fixes #1961.
Daniel Atallah <datallah@pidgin.im>
parents: 18879
diff changeset
6616 purple_conv_send_confirm(conv, message);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6617 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6618 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6619 /*else
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6620 **If pidgindialogs_im() was in the core, we could use it here.
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6621 * It is all purple_request_* based, but I'm not sure it really belongs in the core
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6622 pidgindialogs_im();*/
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6623
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6624 return TRUE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6625 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6626 /* aim:GoChat?roomname=CHATROOMNAME&exchange=4 */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6627 else if (!g_ascii_strcasecmp(cmd, "GoChat")) {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6628 char *rname = g_hash_table_lookup(params, "roomname");
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6629 if (rname) {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6630 /* This is somewhat hacky, but the params aren't useful after this command */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6631 g_hash_table_insert(params, g_strdup("exchange"), g_strdup("4"));
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6632 g_hash_table_insert(params, g_strdup("room"), g_strdup(rname));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6633 serv_join_chat(purple_account_get_connection(acct), params);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6634 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6635 /*else
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6636 ** Same as above (except that this would have to be re-written using purple_request_*)
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6637 pidgin_blist_joinchat_show(); */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6638
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6639 return TRUE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6640 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6641 /* aim:AddBuddy?screenname=SCREENNAME&groupname=GROUPNAME*/
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6642 else if (!g_ascii_strcasecmp(cmd, "AddBuddy")) {
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6643 char *sname = g_hash_table_lookup(params, "screenname");
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6644 char *gname = g_hash_table_lookup(params, "groupname");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6645 purple_blist_request_add_buddy(acct, sname, gname, NULL);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6646 return TRUE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6647 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6648
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6649 return FALSE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6650 }
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6651
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6652 void oscar_init(PurplePluginProtocolInfo *prpl_info)
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6653 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6654 PurpleAccountOption *option;
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6655 static gboolean init = FALSE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6656
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6657 option = purple_account_option_string_new(_("Server"), "server", OSCAR_DEFAULT_LOGIN_SERVER);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6658 prpl_info->protocol_options = g_list_append(prpl_info->protocol_options, option);
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6659
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6660 option = purple_account_option_int_new(_("Port"), "port", OSCAR_DEFAULT_LOGIN_PORT);
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6661 prpl_info->protocol_options = g_list_append(prpl_info->protocol_options, option);
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6662
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6663 option = purple_account_option_bool_new(
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6664 _("Always use ICQ proxy server for file transfers\n(slower, but does not reveal your IP address)"), "always_use_rv_proxy",
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6665 OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY);
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6666 prpl_info->protocol_options = g_list_append(prpl_info->protocol_options, option);
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6667
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6668 if (init)
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6669 return;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6670 init = TRUE;
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6671
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6672 /* Preferences */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6673 purple_prefs_add_none("/plugins/prpl/oscar");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6674 purple_prefs_add_bool("/plugins/prpl/oscar/recent_buddies", FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6675 purple_prefs_add_bool("/plugins/prpl/oscar/show_idle", FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6676 purple_prefs_remove("/plugins/prpl/oscar/always_use_rv_proxy");
15685
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6677
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6678 /* protocol handler */
483b223d0b60 uri-handler support for AIM/ICQ, Yahoo and MSN
Daniel Atallah <datallah@pidgin.im>
parents: 15684
diff changeset
6679 /* TODO: figure out a good instance to use here */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6680 purple_signal_connect(purple_get_core(), "uri-handler", &init,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6681 PURPLE_CALLBACK(oscar_uri_handler), NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6682 }
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15860
diff changeset
6683

mercurial