Mercurial > pidgin
annotate src/protocols/gg/gg.c @ 10812:d087e928ffd1
[gaim-migrate @ 12465]
" A variety of spacing normalization I've done as I've
navigated the source making other changes. The specific
changes should be uncontroversial. I'm submitting these to
shrink the deltas between my local tree and the CVS
source. If spacing changes are unwelcome as a general
rule, let me know." --rlaager
I said not to do this sort of patch often.
also a spelling fix.
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Mon, 11 Apr 2005 04:32:26 +0000 |
parents | bf5e48215158 |
children | c94f40ffcafb |
rev | line source |
---|---|
2393 | 1 /* |
2 * gaim - Gadu-Gadu Protocol Plugin | |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
3 * $Id: gg.c 12465 2005-04-11 04:32:26Z lschiere $ |
2393 | 4 * |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
5 * Copyright (C) 2001 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL> |
6787
faa491042c66
[gaim-migrate @ 7326]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
6 * |
2393 | 7 * This program is free software; you can redistribute it and/or modify |
8 * it under the terms of the GNU General Public License as published by | |
9 * the Free Software Foundation; either version 2 of the License, or | |
10 * (at your option) any later version. | |
11 * | |
12 * This program is distributed in the hope that it will be useful, | |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 * GNU General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU General Public License | |
18 * along with this program; if not, write to the Free Software | |
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
20 * | |
21 */ | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
22 #include "internal.h" |
2393 | 23 |
24 /* Library from EKG (Eksperymentalny Klient Gadu-Gadu) */ | |
25 #include "libgg.h" | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
26 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
27 #include "account.h" |
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5618
diff
changeset
|
28 #include "accountopt.h" |
9030 | 29 #include "blist.h" |
10740 | 30 #include "connection.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
31 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
32 #include "notify.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
33 #include "proxy.h" |
2393 | 34 #include "prpl.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
35 #include "server.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
36 #include "util.h" |
9943 | 37 #include "version.h" |
2393 | 38 |
5603 | 39 #define GG_CONNECT_STEPS 5 |
40 | |
2393 | 41 #define AGG_BUF_LEN 1024 |
42 | |
43 #define AGG_GENDER_NONE -1 | |
44 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
45 #define AGG_PUBDIR_USERLIST_EXPORT_FORM "/appsvc/fmcontactsput.asp" |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
46 #define AGG_PUBDIR_USERLIST_IMPORT_FORM "/appsvc/fmcontactsget.asp" |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
47 #define AGG_PUBDIR_SEARCH_FORM "/appsvc/fmpubquery2.asp" |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
48 #define AGG_REGISTER_DATA_FORM "/appsvc/fmregister.asp" |
2393 | 49 #define AGG_PUBDIR_MAX_ENTRIES 200 |
50 | |
51 #define AGG_STATUS_AVAIL _("Available") | |
52 #define AGG_STATUS_AVAIL_FRIENDS _("Available for friends only") | |
53 #define AGG_STATUS_BUSY _("Away") | |
54 #define AGG_STATUS_BUSY_FRIENDS _("Away for friends only") | |
55 #define AGG_STATUS_INVISIBLE _("Invisible") | |
56 #define AGG_STATUS_INVISIBLE_FRIENDS _("Invisible for friends only") | |
57 #define AGG_STATUS_NOT_AVAIL _("Unavailable") | |
58 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
59 #define AGG_HTTP_NONE 0 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
60 #define AGG_HTTP_SEARCH 1 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
61 #define AGG_HTTP_USERLIST_IMPORT 2 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
62 #define AGG_HTTP_USERLIST_EXPORT 3 |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
63 #define AGG_HTTP_USERLIST_DELETE 4 |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
64 #define AGG_HTTP_PASSWORD_CHANGE 5 |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
65 |
2501
227cc42ffa6e
[gaim-migrate @ 2514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2423
diff
changeset
|
66 #define UC_NORMAL 2 |
227cc42ffa6e
[gaim-migrate @ 2514]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2423
diff
changeset
|
67 |
2393 | 68 struct agg_data { |
69 struct gg_session *sess; | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
70 int own_status; |
2393 | 71 }; |
72 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
73 struct agg_http { |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
74 GaimConnection *gc; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
75 gchar *request; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
76 gchar *form; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
77 gchar *host; |
2393 | 78 int inpa; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
79 int type; |
2393 | 80 }; |
81 | |
82 | |
3466 | 83 static gchar *charset_convert(const gchar *locstr, const char *encsrc, const char *encdst) |
2393 | 84 { |
10407 | 85 gchar *msg; |
86 GError *err = NULL; | |
87 | |
88 msg = g_convert_with_fallback(locstr, strlen(locstr), encdst, encsrc, "?", NULL, NULL, &err); | |
89 if (err != NULL) { | |
90 gaim_debug_error("gg", "Error converting from %s to %s: %s\n", | |
91 encsrc, encdst, err->message); | |
92 g_error_free(err); | |
93 } | |
94 | |
95 /* Just in case? */ | |
96 if (msg == NULL) | |
97 msg = g_strdup(locstr); | |
98 | |
99 return msg; | |
2393 | 100 } |
101 | |
3466 | 102 static gboolean invalid_uin(const char *uin) |
2393 | 103 { |
104 unsigned long int res = strtol(uin, (char **)NULL, 10); | |
7631 | 105 if (res == ULONG_MAX || res == 0) |
2393 | 106 return TRUE; |
107 return FALSE; | |
108 } | |
109 | |
110 static gint args_compare(gconstpointer a, gconstpointer b) | |
111 { | |
4793 | 112 return g_ascii_strcasecmp((const gchar *)a,(const gchar *)b); |
2393 | 113 } |
114 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
115 static gboolean allowed_uin(GaimConnection *gc, char *uin) |
2393 | 116 { |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
117 GaimAccount *account = gaim_connection_get_account(gc); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
118 |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
119 switch (account->perm_deny) { |
2393 | 120 case 1: |
121 /* permit all, deny none */ | |
122 return TRUE; | |
123 break; | |
124 case 2: | |
125 /* deny all, permit none. */ | |
126 return FALSE; | |
127 break; | |
128 case 3: | |
129 /* permit some. */ | |
4491 | 130 if (g_slist_find_custom(gc->account->permit, uin, args_compare)) |
2393 | 131 return TRUE; |
132 return FALSE; | |
133 break; | |
134 case 4: | |
135 /* deny some. */ | |
4491 | 136 if (g_slist_find_custom(gc->account->deny, uin, args_compare)) |
2393 | 137 return FALSE; |
138 return TRUE; | |
139 break; | |
140 default: | |
141 return TRUE; | |
142 break; | |
143 } | |
144 } | |
145 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
146 static char *handle_errcode(GaimConnection *gc, int errcode) |
2393 | 147 { |
148 static char msg[AGG_BUF_LEN]; | |
149 | |
150 switch (errcode) { | |
151 case GG_FAILURE_RESOLVING: | |
152 g_snprintf(msg, sizeof(msg), _("Unable to resolve hostname.")); | |
153 break; | |
154 case GG_FAILURE_CONNECTING: | |
155 g_snprintf(msg, sizeof(msg), _("Unable to connect to server.")); | |
156 break; | |
157 case GG_FAILURE_INVALID: | |
158 g_snprintf(msg, sizeof(msg), _("Invalid response from server.")); | |
159 break; | |
160 case GG_FAILURE_READING: | |
161 g_snprintf(msg, sizeof(msg), _("Error while reading from socket.")); | |
162 break; | |
163 case GG_FAILURE_WRITING: | |
3100 | 164 g_snprintf(msg, sizeof(msg), _("Error while writing to socket.")); |
2393 | 165 break; |
166 case GG_FAILURE_PASSWORD: | |
3100 | 167 g_snprintf(msg, sizeof(msg), _("Authentication failed.")); |
2393 | 168 break; |
169 default: | |
170 g_snprintf(msg, sizeof(msg), _("Unknown Error Code.")); | |
171 break; | |
172 } | |
173 | |
5603 | 174 gaim_connection_error(gc, msg); |
2393 | 175 |
176 return msg; | |
177 } | |
178 | |
9950 | 179 static void agg_set_status(GaimAccount *account, GaimStatus *status) |
2393 | 180 { |
10751 | 181 GaimConnection *gc; |
182 struct agg_data *gd; | |
183 int status_num; | |
9950 | 184 const char *status_id; |
185 char *msg = NULL; | |
10206 | 186 |
10751 | 187 gc = gaim_account_get_connection(account); |
188 | |
189 if (gc == NULL) | |
190 return; | |
191 | |
192 gd = (struct agg_data *)gc->proto_data; | |
193 status_num = gd->own_status; | |
9950 | 194 status_id = gaim_status_get_id(status); |
10206 | 195 |
9950 | 196 if (!strcmp(status_id, "available")) |
197 status_num = GG_STATUS_AVAIL; | |
198 else if (!strcmp(status_id, "available-friends")) | |
199 status_num = GG_STATUS_AVAIL | GG_STATUS_FRIENDS_MASK; | |
200 else if (!strcmp(status_id, "away")) | |
201 status_num = GG_STATUS_BUSY; | |
202 else if (!strcmp(status_id, "away-friends")) | |
203 status_num = GG_STATUS_BUSY | GG_STATUS_FRIENDS_MASK; | |
204 else if (!strcmp(status_id, "invisible")) | |
205 status_num = GG_STATUS_INVISIBLE; | |
206 else if (!strcmp(status_id, "invisible-friends")) | |
207 status_num = GG_STATUS_INVISIBLE | GG_STATUS_FRIENDS_MASK; | |
208 else if (!strcmp(status_id, "unavailable")) | |
209 status_num = GG_STATUS_NOT_AVAIL; | |
210 else | |
10206 | 211 /* Don't need to do anything */ |
212 return; | |
2393 | 213 |
9950 | 214 /* XXX: this was added between the status_rewrite and now and needs to be fixed */ |
10206 | 215 if (msg != NULL) { |
9950 | 216 switch (status_num) { |
9415 | 217 case GG_STATUS_AVAIL: |
9950 | 218 status_num = GG_STATUS_AVAIL_DESCR; |
9415 | 219 break; |
220 case GG_STATUS_BUSY: | |
9950 | 221 status_num = GG_STATUS_BUSY_DESCR; |
9415 | 222 break; |
223 case GG_STATUS_INVISIBLE: | |
9950 | 224 status_num = GG_STATUS_INVISIBLE_DESCR; |
9415 | 225 break; |
226 case GG_STATUS_NOT_AVAIL: | |
9950 | 227 status_num = GG_STATUS_NOT_AVAIL_DESCR; |
9415 | 228 break; |
229 } | |
230 } | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
231 |
9950 | 232 gd->own_status = status_num; |
233 | |
9415 | 234 if (msg) |
9950 | 235 gg_change_status_descr(gd->sess, status_num, msg); |
9415 | 236 else |
9950 | 237 gg_change_status(gd->sess, status_num); |
9415 | 238 } |
239 | |
9950 | 240 |
9421 | 241 #if 0 |
9415 | 242 static void agg_get_away(GaimConnection *gc, const char *who) |
243 { | |
244 GaimBuddy *buddy; | |
245 char *dialog_msg, **splitmsg; | |
246 | |
247 if (invalid_uin(who)) | |
9421 | 248 return; |
9415 | 249 |
250 buddy = gaim_find_buddy(gaim_connection_get_account(gc), who); | |
251 if (buddy->proto_data) { | |
9421 | 252 /* Split at (carriage return/newline)'s, then rejoin later with BRs between. */ |
253 splitmsg = g_strsplit(buddy->proto_data, "\r\n", 0); | |
9415 | 254 |
9421 | 255 dialog_msg = g_strdup_printf(_("<B>UIN:</B> %s<BR><B>Status:</B> %s<HR>%s"), who, (char *)buddy->proto_data, g_strjoinv("<BR>", splitmsg)); |
9797 | 256 gaim_notify_userinfo(gc, who, NULL, _("Buddy Information"), buddy->proto_data, dialog_msg, NULL, NULL); |
9415 | 257 } |
2393 | 258 } |
9421 | 259 #endif |
2393 | 260 |
9950 | 261 static gchar *get_away_text(GaimBuddy *buddy) |
2393 | 262 { |
9950 | 263 GaimPresence *presence = gaim_buddy_get_presence(buddy); |
264 | |
265 if (gaim_presence_is_status_active(presence, "available")) | |
2393 | 266 return AGG_STATUS_AVAIL; |
9950 | 267 else if (gaim_presence_is_status_active(presence, "available-friends")) |
2393 | 268 return AGG_STATUS_AVAIL_FRIENDS; |
9950 | 269 else if (gaim_presence_is_status_active(presence, "away")) |
2393 | 270 return AGG_STATUS_BUSY; |
9950 | 271 else if (gaim_presence_is_status_active(presence, "away-friends")) |
2393 | 272 return AGG_STATUS_BUSY_FRIENDS; |
9950 | 273 else if (gaim_presence_is_status_active(presence, "invisible")) |
274 return AGG_STATUS_INVISIBLE; | |
275 else if (gaim_presence_is_status_active(presence, "invisible-friends")) | |
276 return AGG_STATUS_INVISIBLE_FRIENDS; | |
277 else if (gaim_presence_is_status_active(presence, "unavailable")) | |
2393 | 278 return AGG_STATUS_NOT_AVAIL; |
9950 | 279 |
280 return AGG_STATUS_AVAIL; | |
2393 | 281 } |
282 | |
9950 | 283 |
284 static GList *agg_status_types(GaimAccount *account) | |
2393 | 285 { |
9950 | 286 GaimStatusType *type; |
287 GList *types = NULL; | |
288 | |
289 type = gaim_status_type_new(GAIM_STATUS_OFFLINE, "offline", | |
290 _("Offline"), FALSE); | |
291 types = g_list_append(types, type); | |
292 | |
293 type = gaim_status_type_new(GAIM_STATUS_ONLINE, "online", | |
294 _("Online"), FALSE); | |
295 types = g_list_append(types, type); | |
296 | |
297 type = gaim_status_type_new_with_attrs( | |
298 GAIM_STATUS_AVAILABLE, "available", AGG_STATUS_AVAIL, | |
299 TRUE, TRUE, FALSE, | |
10009 | 300 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 301 types = g_list_append(types, type); |
302 | |
303 type = gaim_status_type_new_with_attrs( | |
304 GAIM_STATUS_AWAY, "away", AGG_STATUS_BUSY, | |
305 TRUE, TRUE, FALSE, | |
10009 | 306 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 307 types = g_list_append(types, type); |
2393 | 308 |
9950 | 309 type = gaim_status_type_new_with_attrs( |
310 GAIM_STATUS_HIDDEN, "invisible", AGG_STATUS_INVISIBLE, | |
311 TRUE, TRUE, FALSE, | |
10009 | 312 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 313 types = g_list_append(types, type); |
314 | |
315 type = gaim_status_type_new_with_attrs( | |
316 GAIM_STATUS_AVAILABLE, "available-friends", AGG_STATUS_AVAIL_FRIENDS, | |
317 TRUE, TRUE, FALSE, | |
10009 | 318 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 319 types = g_list_append(types, type); |
320 | |
321 type = gaim_status_type_new_with_attrs( | |
322 GAIM_STATUS_AWAY, "away-friends", AGG_STATUS_BUSY_FRIENDS, | |
323 TRUE, TRUE, FALSE, | |
10009 | 324 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 325 types = g_list_append(types, type); |
326 | |
327 type = gaim_status_type_new_with_attrs( | |
10206 | 328 GAIM_STATUS_HIDDEN, "invisible-friends", AGG_STATUS_INVISIBLE_FRIENDS, |
9950 | 329 TRUE, TRUE, FALSE, |
10009 | 330 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 331 types = g_list_append(types, type); |
332 | |
333 type = gaim_status_type_new_with_attrs( | |
334 GAIM_STATUS_UNAVAILABLE, "unavailable", AGG_STATUS_NOT_AVAIL, | |
335 TRUE, TRUE, FALSE, | |
10009 | 336 "message", _("Message"), gaim_value_new(GAIM_TYPE_STRING), NULL); |
9950 | 337 types = g_list_append(types, type); |
338 | |
339 return types; | |
2393 | 340 } |
341 | |
342 /* Enhance these functions, more options and such stuff */ | |
9030 | 343 static GList *agg_buddy_menu(GaimBuddy *buddy) |
2393 | 344 { |
345 GList *m = NULL; | |
9030 | 346 GaimBlistNodeAction *act; |
347 | |
2393 | 348 static char buf[AGG_BUF_LEN]; |
9950 | 349 g_snprintf(buf, sizeof(buf), _("Status: %s"), get_away_text(buddy)); |
2393 | 350 |
9030 | 351 /* um... this seems silly. since in this pass, I'm only converting |
352 over the menu building, I'm not going to mess with it though */ | |
353 /* XXX: shouldn't this be in the tooltip instead? */ | |
10662
54ac161a876e
[gaim-migrate @ 12199]
Etan Reisner <pidgin@unreliablesource.net>
parents:
10630
diff
changeset
|
354 act = gaim_blist_node_action_new(buf, NULL, NULL, NULL); |
9030 | 355 m = g_list_append(m, act); |
2393 | 356 |
357 return m; | |
358 } | |
359 | |
9030 | 360 |
361 static GList * | |
362 agg_blist_node_menu(GaimBlistNode *node) | |
363 { | |
364 if(GAIM_BLIST_NODE_IS_BUDDY(node)) { | |
365 return agg_buddy_menu((GaimBuddy *) node); | |
366 } else { | |
367 return NULL; | |
368 } | |
369 } | |
370 | |
371 | |
8775 | 372 static void agg_load_buddy_list(GaimConnection *gc, char *buddylist) |
373 { | |
374 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
375 gchar *ptr = buddylist; | |
376 gchar **users_tbl; | |
377 int i; | |
378 uin_t *userlist = NULL; | |
379 int userlist_size = 0; | |
380 | |
381 users_tbl = g_strsplit(ptr, "\r\n", AGG_PUBDIR_MAX_ENTRIES); | |
382 | |
383 /* Parse array of Buddies List */ | |
384 for (i = 0; users_tbl[i] != NULL; i++) { | |
385 gchar **data_tbl; | |
386 gchar *name, *show; | |
387 | |
388 if (strlen(users_tbl[i])==0) { | |
389 gaim_debug(GAIM_DEBUG_MISC, "gg", | |
390 "import_buddies_server_results: users_tbl[i] is empty\n"); | |
391 continue; | |
392 } | |
393 | |
394 data_tbl = g_strsplit(users_tbl[i], ";", 8); | |
395 | |
396 show = charset_convert(data_tbl[3], "CP1250", "UTF-8"); | |
397 name = data_tbl[6]; | |
8996 | 398 |
8775 | 399 if (invalid_uin(name)) { |
400 continue; | |
401 } | |
402 | |
403 gaim_debug(GAIM_DEBUG_MISC, "gg", | |
404 "import_buddies_server_results: uin: %s\n", name); | |
405 if (!gaim_find_buddy(gc->account, name)) { | |
406 GaimBuddy *b; | |
407 GaimGroup *g; | |
408 /* Default group if none specified on server */ | |
409 gchar *group = g_strdup("Gadu-Gadu"); | |
410 if (strlen(data_tbl[5])) { | |
411 gchar **group_tbl = g_strsplit(data_tbl[5], ",", 2); | |
412 if (strlen(group_tbl[0])) { | |
413 g_free(group); | |
414 group = g_strdup(group_tbl[0]); | |
415 } | |
416 g_strfreev(group_tbl); | |
417 } | |
418 /* Add Buddy to our userlist */ | |
419 if (!(g = gaim_find_group(group))) { | |
420 g = gaim_group_new(group); | |
421 gaim_blist_add_group(g, NULL); | |
422 } | |
423 b = gaim_buddy_new(gc->account, name, strlen(show) ? show : NULL); | |
424 gaim_blist_add_buddy(b,NULL,g,NULL); | |
8996 | 425 |
8775 | 426 userlist_size++; |
427 userlist = g_renew(uin_t, userlist, userlist_size); | |
428 userlist[userlist_size - 1] = | |
429 (uin_t) strtol((char *)name, (char **)NULL, 10); | |
8996 | 430 |
8775 | 431 g_free(group); |
432 } | |
433 g_free(show); | |
434 g_strfreev(data_tbl); | |
435 } | |
436 g_strfreev(users_tbl); | |
8996 | 437 |
8775 | 438 if (userlist) { |
439 gg_notify(gd->sess, userlist, userlist_size); | |
440 g_free(userlist); | |
441 } | |
442 } | |
443 | |
9285 | 444 static void agg_save_buddy_list(GaimConnection *gc, char *existlist) |
8775 | 445 { |
9285 | 446 struct agg_data *gd = (struct agg_data *)gc->proto_data; |
8775 | 447 GaimBlistNode *gnode, *cnode, *bnode; |
448 char *buddylist = g_strdup(existlist ? existlist : ""); | |
449 char *ptr; | |
450 | |
451 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { | |
452 GaimGroup *g = (GaimGroup *)gnode; | |
453 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
454 continue; | |
455 for(cnode = gnode->child; cnode; cnode = cnode->next) { | |
456 if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) | |
457 continue; | |
458 for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
459 GaimBuddy *b = (GaimBuddy *)bnode; | |
460 | |
461 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | |
462 continue; | |
463 | |
464 if(b->account == gc->account) { | |
465 gchar *newdata; | |
466 /* GG Number */ | |
467 gchar *name = b->name; | |
468 /* GG Pseudo */ | |
469 gchar *show = b->alias ? b->alias : b->name; | |
470 /* Group Name */ | |
471 gchar *gname = g->name; | |
472 | |
473 newdata = g_strdup_printf("%s;%s;%s;%s;%s;%s;%s;%s%s\r\n", | |
474 show, show, show, show, "", gname, name, "", ""); | |
8996 | 475 |
8775 | 476 ptr = buddylist; |
477 buddylist = g_strconcat(ptr, newdata, NULL); | |
8996 | 478 |
8775 | 479 g_free(newdata); |
480 g_free(ptr); | |
481 } | |
482 } | |
483 } | |
484 } | |
8996 | 485 |
8775 | 486 /* save the list to the gadu gadu server */ |
487 gg_userlist_request(gd->sess, GG_USERLIST_PUT, buddylist); | |
488 } | |
489 | |
2393 | 490 static void main_callback(gpointer data, gint source, GaimInputCondition cond) |
491 { | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
492 GaimConnection *gc = data; |
9944 | 493 GaimAccount *account = gaim_connection_get_account(gc); |
2393 | 494 struct agg_data *gd = gc->proto_data; |
495 struct gg_event *e; | |
496 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
497 gaim_debug(GAIM_DEBUG_INFO, "gg", "main_callback enter: begin\n"); |
2393 | 498 |
499 if (gd->sess->fd != source) | |
500 gd->sess->fd = source; | |
501 | |
4511 | 502 if (source == 0) { |
5603 | 503 gaim_connection_error(gc, _("Could not connect")); |
2393 | 504 return; |
505 } | |
506 | |
507 if (!(e = gg_watch_fd(gd->sess))) { | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
508 gaim_debug(GAIM_DEBUG_ERROR, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
509 "main_callback: gg_watch_fd failed - CRITICAL!\n"); |
5603 | 510 gaim_connection_error(gc, _("Unable to read socket")); |
2393 | 511 return; |
512 } | |
513 | |
514 switch (e->type) { | |
515 case GG_EVENT_NONE: | |
516 /* do nothing */ | |
517 break; | |
518 case GG_EVENT_CONN_SUCCESS: | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
519 gaim_debug(GAIM_DEBUG_WARNING, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
520 "main_callback: CONNECTED AGAIN!?\n"); |
2393 | 521 break; |
522 case GG_EVENT_CONN_FAILED: | |
523 if (gc->inpa) | |
524 gaim_input_remove(gc->inpa); | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
525 handle_errcode(gc, e->event.failure); |
2393 | 526 break; |
527 case GG_EVENT_MSG: | |
528 { | |
529 gchar *imsg; | |
8442 | 530 gchar *jmsg; |
2393 | 531 gchar user[20]; |
532 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
533 g_snprintf(user, sizeof(user), "%lu", e->event.msg.sender); |
2393 | 534 if (!allowed_uin(gc, user)) |
535 break; | |
4051 | 536 imsg = charset_convert(e->event.msg.message, "CP1250", "UTF-8"); |
7478
3c21f3084ff0
[gaim-migrate @ 8091]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
7386
diff
changeset
|
537 gaim_str_strip_cr(imsg); |
10732
c4cb90065e1d
[gaim-migrate @ 12334]
Luke Schierer <lschiere@pidgin.im>
parents:
10662
diff
changeset
|
538 jmsg = g_markup_escape_text(imsg, -1); |
10630 | 539 serv_got_im(gc, user, jmsg, 0, e->event.msg.time); |
2393 | 540 g_free(imsg); |
8442 | 541 g_free(jmsg); |
2393 | 542 } |
543 break; | |
544 case GG_EVENT_NOTIFY: | |
545 { | |
546 gchar user[20]; | |
547 struct gg_notify_reply *n = e->event.notify; | |
9950 | 548 const char *status_id; |
2393 | 549 |
550 while (n->uin) { | |
551 switch (n->status) { | |
9950 | 552 case GG_STATUS_NOT_AVAIL: |
553 status_id = "unavailable"; | |
554 break; | |
555 | |
556 case GG_STATUS_AVAIL: | |
557 status_id = "available"; | |
558 break; | |
559 | |
560 case GG_STATUS_BUSY: | |
561 status_id = "away"; | |
562 break; | |
563 | |
564 case GG_STATUS_INVISIBLE: | |
565 status_id = "invisible"; | |
566 break; | |
567 | |
568 default: | |
569 status_id = "available"; | |
570 break; | |
571 | |
2393 | 572 } |
573 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
574 g_snprintf(user, sizeof(user), "%lu", n->uin); |
9950 | 575 gaim_prpl_got_user_status(account, user, status_id, NULL); |
2393 | 576 n++; |
577 } | |
578 } | |
579 break; | |
8775 | 580 case GG_EVENT_NOTIFY60: |
581 { | |
582 gchar user[20]; | |
9950 | 583 const char *status_id; |
9415 | 584 guint i = 0; |
585 | |
586 for (i = 0; e->event.notify60[i].uin; i++) { | |
587 GaimBuddy *buddy; | |
588 | |
589 g_snprintf(user, sizeof(user), "%lu", (long unsigned int)e->event.notify60[i].uin); | |
8775 | 590 |
9415 | 591 buddy = gaim_find_buddy(gaim_connection_get_account(gc), user); |
592 if (buddy && buddy->proto_data != NULL) { | |
593 g_free(buddy->proto_data); | |
594 buddy->proto_data = NULL; | |
595 } | |
596 | |
597 switch (e->event.notify60[i].status) { | |
9950 | 598 case GG_STATUS_NOT_AVAIL: |
599 case GG_STATUS_NOT_AVAIL_DESCR: | |
600 status_id = "unavailable"; | |
601 break; | |
602 | |
603 case GG_STATUS_AVAIL: | |
604 case GG_STATUS_AVAIL_DESCR: | |
605 status_id = "available"; | |
606 break; | |
607 | |
608 case GG_STATUS_BUSY: | |
609 case GG_STATUS_BUSY_DESCR: | |
610 status_id = "away"; | |
611 break; | |
612 | |
613 case GG_STATUS_INVISIBLE: | |
614 case GG_STATUS_INVISIBLE_DESCR: | |
615 status_id = "invisible"; | |
616 break; | |
617 | |
618 default: | |
619 status_id = "available"; | |
620 break; | |
8775 | 621 } |
9415 | 622 |
623 if (buddy && e->event.notify60[i].descr != NULL) { | |
624 buddy->proto_data = g_strdup(e->event.notify60[i].descr); | |
625 } | |
8775 | 626 |
9950 | 627 gaim_prpl_got_user_status(account, user, status_id, NULL); |
9415 | 628 i++; |
8775 | 629 } |
630 } | |
631 break; | |
2393 | 632 case GG_EVENT_STATUS: |
633 { | |
634 gchar user[20]; | |
9950 | 635 const char *status_id; |
2393 | 636 |
637 switch (e->event.status.status) { | |
9950 | 638 case GG_STATUS_NOT_AVAIL: |
639 status_id = "unavailable"; | |
640 break; | |
641 | |
642 case GG_STATUS_AVAIL: | |
643 status_id = "available"; | |
644 break; | |
645 | |
646 case GG_STATUS_BUSY: | |
647 status_id = "away"; | |
648 break; | |
649 | |
650 case GG_STATUS_INVISIBLE: | |
651 status_id = "invisible"; | |
652 break; | |
653 | |
654 default: | |
655 status_id = "available"; | |
656 break; | |
2393 | 657 } |
658 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
659 g_snprintf(user, sizeof(user), "%lu", e->event.status.uin); |
9950 | 660 gaim_prpl_got_user_status(account, user, status_id, NULL); |
2393 | 661 } |
662 break; | |
8775 | 663 case GG_EVENT_STATUS60: |
664 { | |
665 gchar user[20]; | |
9950 | 666 const char *status_id; |
8775 | 667 |
9415 | 668 GaimBuddy *buddy; |
669 | |
670 g_snprintf(user, sizeof(user), "%lu", e->event.status60.uin); | |
671 | |
672 buddy = gaim_find_buddy(gaim_connection_get_account(gc), user); | |
673 if (buddy && buddy->proto_data != NULL) { | |
674 g_free(buddy->proto_data); | |
675 buddy->proto_data = NULL; | |
676 } | |
677 | |
8775 | 678 switch (e->event.status60.status) { |
9950 | 679 case GG_STATUS_NOT_AVAIL_DESCR: |
680 case GG_STATUS_NOT_AVAIL: | |
681 status_id = "unavailable"; | |
682 break; | |
683 | |
684 case GG_STATUS_AVAIL: | |
685 case GG_STATUS_AVAIL_DESCR: | |
686 status_id = "available"; | |
687 break; | |
688 | |
689 case GG_STATUS_BUSY: | |
690 case GG_STATUS_BUSY_DESCR: | |
691 status_id = "away"; | |
692 break; | |
693 | |
694 case GG_STATUS_INVISIBLE: | |
695 case GG_STATUS_INVISIBLE_DESCR: | |
696 status_id = "invisible"; | |
697 break; | |
698 | |
699 default: | |
700 status_id = "available"; | |
701 break; | |
8775 | 702 } |
9950 | 703 |
9415 | 704 if (buddy && e->event.status60.descr != NULL) { |
705 buddy->proto_data = g_strdup(e->event.status60.descr); | |
706 } | |
9950 | 707 |
708 gaim_prpl_got_user_status(account, user, status_id, NULL); | |
8775 | 709 } |
8997 | 710 break; |
2393 | 711 case GG_EVENT_ACK: |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
712 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
713 "main_callback: message %d to %lu sent with status %d\n", |
2393 | 714 e->event.ack.seq, e->event.ack.recipient, e->event.ack.status); |
715 break; | |
8775 | 716 case GG_EVENT_USERLIST: |
717 { | |
718 gaim_debug(GAIM_DEBUG_MISC, "gg", "main_callback: received userlist reply\n"); | |
719 switch (e->event.userlist.type) { | |
720 case GG_USERLIST_GET_REPLY: | |
721 { | |
8996 | 722 |
8775 | 723 if (e->event.userlist.reply) { |
724 agg_load_buddy_list(gc, e->event.userlist.reply); | |
725 } | |
726 break; | |
727 } | |
728 | |
729 case GG_USERLIST_PUT_REPLY: | |
730 { | |
731 /* ignored */ | |
732 } | |
733 } | |
734 } | |
735 | |
2393 | 736 default: |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
737 gaim_debug(GAIM_DEBUG_ERROR, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
738 "main_callback: unsupported event %d\n", e->type); |
2393 | 739 break; |
740 } | |
741 gg_free_event(e); | |
742 } | |
743 | |
3630 | 744 void login_callback(gpointer data, gint source, GaimInputCondition cond) |
2393 | 745 { |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
746 GaimConnection *gc = data; |
2393 | 747 struct agg_data *gd = gc->proto_data; |
748 struct gg_event *e; | |
749 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
750 gaim_debug(GAIM_DEBUG_INFO, "gg", "login_callback...\n"); |
5605 | 751 if (!g_list_find(gaim_connections_get_all(), gc)) { |
2393 | 752 close(source); |
753 return; | |
754 } | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
755 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
756 gaim_debug(GAIM_DEBUG_INFO, "gg", "Found GG connection\n"); |
5603 | 757 |
4511 | 758 if (source == 0) { |
5603 | 759 gaim_connection_error(gc, _("Unable to connect.")); |
2393 | 760 return; |
761 } | |
4452 | 762 |
763 gd->sess->fd = source; | |
764 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
765 gaim_debug(GAIM_DEBUG_MISC, "gg", "Source is valid.\n"); |
3630 | 766 if (gc->inpa == 0) { |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
767 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
768 "login_callback.. checking gc->inpa .. is 0.. setting fd watch\n"); |
2393 | 769 gc->inpa = gaim_input_add(gd->sess->fd, GAIM_INPUT_READ, login_callback, gc); |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
770 gaim_debug(GAIM_DEBUG_INFO, "gg", "Adding watch on fd\n"); |
3630 | 771 } |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
772 gaim_debug(GAIM_DEBUG_INFO, "gg", "Checking State.\n"); |
2393 | 773 switch (gd->sess->state) { |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
774 case GG_STATE_READING_DATA: |
8896 | 775 gaim_connection_update_progress(gc, _("Reading data"), 1, GG_CONNECT_STEPS); |
2835
d8e67ff8022f
[gaim-migrate @ 2848]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2806
diff
changeset
|
776 break; |
2393 | 777 case GG_STATE_CONNECTING_GG: |
8896 | 778 gaim_connection_update_progress(gc, _("Balancer handshake"), 2, GG_CONNECT_STEPS); |
2393 | 779 break; |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
780 case GG_STATE_READING_KEY: |
8896 | 781 gaim_connection_update_progress(gc, _("Reading server key"), 3, GG_CONNECT_STEPS); |
2835
d8e67ff8022f
[gaim-migrate @ 2848]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2806
diff
changeset
|
782 break; |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
783 case GG_STATE_READING_REPLY: |
8896 | 784 gaim_connection_update_progress(gc, _("Exchanging key hash"), 4, GG_CONNECT_STEPS); |
2393 | 785 break; |
786 default: | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
787 gaim_debug(GAIM_DEBUG_INFO, "gg", "No State found\n"); |
2393 | 788 break; |
789 } | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
790 gaim_debug(GAIM_DEBUG_MISC, "gg", "gg_watch_fd\n"); |
2393 | 791 if (!(e = gg_watch_fd(gd->sess))) { |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
792 gaim_debug(GAIM_DEBUG_ERROR, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
793 "login_callback: gg_watch_fd failed - CRITICAL!\n"); |
5603 | 794 gaim_connection_error(gc, _("Critical error in GG library\n")); |
2393 | 795 return; |
796 } | |
797 | |
3630 | 798 /* If we are GG_STATE_CONNECTING_GG then we still need to connect, as |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
799 we could not use gaim_proxy_connect in libgg.c */ |
3630 | 800 switch( gd->sess->state ) { |
801 case GG_STATE_CONNECTING_GG: | |
802 { | |
803 struct in_addr ip; | |
804 char buf[256]; | |
4634 | 805 |
3630 | 806 /* Remove watch on initial socket - now that we have ip and port of login server */ |
807 gaim_input_remove(gc->inpa); | |
808 | |
809 ip.s_addr = gd->sess->server_ip; | |
4634 | 810 |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
811 if (gaim_proxy_connect(gc->account, inet_ntoa(ip), gd->sess->port, login_callback, gc) < 0) { |
3630 | 812 g_snprintf(buf, sizeof(buf), _("Connect to %s failed"), inet_ntoa(ip)); |
5603 | 813 gaim_connection_error(gc, buf); |
3630 | 814 return; |
815 } | |
816 break; | |
817 } | |
818 case GG_STATE_READING_KEY: | |
819 /* Set new watch on login server ip */ | |
820 if(gc->inpa) | |
821 gc->inpa = gaim_input_add(gd->sess->fd, GAIM_INPUT_READ, login_callback, gc); | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
822 gaim_debug(GAIM_DEBUG_INFO, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
823 "Setting watch on connection with login server.\n"); |
3630 | 824 break; |
825 }/* end switch() */ | |
826 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
827 gaim_debug(GAIM_DEBUG_MISC, "gg", "checking gg_event\n"); |
2393 | 828 switch (e->type) { |
829 case GG_EVENT_NONE: | |
830 /* nothing */ | |
831 break; | |
832 case GG_EVENT_CONN_SUCCESS: | |
833 /* Setup new input handler */ | |
834 if (gc->inpa) | |
835 gaim_input_remove(gc->inpa); | |
836 gc->inpa = gaim_input_add(gd->sess->fd, GAIM_INPUT_READ, main_callback, gc); | |
837 | |
838 /* Our signon is complete */ | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
839 gaim_connection_set_state(gc, GAIM_CONNECTED); |
2393 | 840 |
841 break; | |
842 case GG_EVENT_CONN_FAILED: | |
843 gaim_input_remove(gc->inpa); | |
844 gc->inpa = 0; | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
845 handle_errcode(gc, e->event.failure); |
2393 | 846 break; |
847 default: | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
848 gaim_debug(GAIM_DEBUG_MISC, "gg", "no gg_event\n"); |
2393 | 849 break; |
850 } | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
851 gaim_debug(GAIM_DEBUG_INFO, "gg", "Returning from login_callback\n"); |
2393 | 852 gg_free_event(e); |
853 } | |
854 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
855 static void agg_keepalive(GaimConnection *gc) |
2393 | 856 { |
857 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
858 if (gg_ping(gd->sess) < 0) { | |
5603 | 859 gaim_connection_error(gc, _("Unable to ping server")); |
2393 | 860 return; |
861 } | |
862 } | |
863 | |
10401 | 864 static void agg_login(GaimAccount *account, GaimStatus *status) |
2393 | 865 { |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
866 GaimConnection *gc = gaim_account_get_connection(account); |
2393 | 867 struct agg_data *gd = gc->proto_data = g_new0(struct agg_data, 1); |
868 char buf[80]; | |
869 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
870 #if 0 |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
871 gc->checkbox = _("Send as message"); |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
872 #endif |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
873 |
2393 | 874 gd->sess = g_new0(struct gg_session, 1); |
875 | |
8896 | 876 gaim_connection_update_progress(gc, _("Looking up GG server"), 0, GG_CONNECT_STEPS); |
2393 | 877 |
4491 | 878 if (invalid_uin(account->username)) { |
5603 | 879 gaim_connection_error(gc, _("Invalid Gadu-Gadu UIN specified")); |
2393 | 880 return; |
881 } | |
882 | |
883 gc->inpa = 0; | |
884 | |
885 /* | |
886 if (gg_login(gd->sess, strtol(user->username, (char **)NULL, 10), user->password, 1) < 0) { | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
887 gaim_debug(GAIM_DEBUG_MISC, "gg", "uin=%u, pass=%s", strtol(user->username, (char **)NULL, 10), user->password); |
6321 | 888 gaim_connection_error(gc, _("Unable to connect.")); |
2393 | 889 signoff(gc); |
890 return; | |
891 } | |
892 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
893 gg_login() sucks for me, so I'm using gaim_proxy_connect() |
2393 | 894 */ |
895 | |
4491 | 896 gd->sess->uin = (uin_t) strtol(account->username, (char **)NULL, 10); |
10751 | 897 gd->sess->password = g_strdup(gaim_connection_get_password(gc)); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
898 gd->sess->state = GG_STATE_CONNECTING; |
2393 | 899 gd->sess->check = GG_CHECK_WRITE; |
900 gd->sess->async = 1; | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
901 if (gaim_proxy_connect(account, GG_APPMSG_HOST, GG_APPMSG_PORT, login_callback, gc) < 0) { |
2393 | 902 g_snprintf(buf, sizeof(buf), _("Connect to %s failed"), GG_APPMSG_HOST); |
5603 | 903 gaim_connection_error(gc, buf); |
2393 | 904 return; |
905 } | |
906 } | |
907 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
908 static void agg_close(GaimConnection *gc) |
2393 | 909 { |
910 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
911 if (gc->inpa) | |
912 gaim_input_remove(gc->inpa); | |
913 gg_logoff(gd->sess); | |
3339 | 914 gd->own_status = GG_STATUS_NOT_AVAIL; |
2393 | 915 gg_free_session(gd->sess); |
916 g_free(gc->proto_data); | |
917 } | |
918 | |
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7108
diff
changeset
|
919 static int agg_send_im(GaimConnection *gc, const char *who, const char *msg, GaimConvImFlags flags) |
2393 | 920 { |
921 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
922 gchar *imsg; | |
923 | |
924 if (invalid_uin(who)) { | |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
925 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
926 _("You are trying to send a message to an " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
927 "invalid Gadu-Gadu UIN."), NULL); |
2393 | 928 return -1; |
929 } | |
930 | |
931 if (strlen(msg) > 0) { | |
4051 | 932 imsg = charset_convert(msg, "UTF-8", "CP1250"); |
6622 | 933 if (gg_send_message(gd->sess, GG_CLASS_CHAT, |
2393 | 934 strtol(who, (char **)NULL, 10), imsg) < 0) |
935 return -1; | |
936 g_free(imsg); | |
937 } | |
938 return 1; | |
939 } | |
940 | |
9285 | 941 static void agg_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) |
2393 | 942 { |
943 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
9285 | 944 if (invalid_uin(buddy->name)) |
2393 | 945 return; |
9285 | 946 gg_add_notify(gd->sess, strtol(buddy->name, (char **)NULL, 10)); |
8775 | 947 agg_save_buddy_list(gc, NULL); |
2393 | 948 } |
949 | |
9285 | 950 static void agg_rem_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) |
2393 | 951 { |
952 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
9285 | 953 if (invalid_uin(buddy->name)) |
2393 | 954 return; |
9285 | 955 gg_remove_notify(gd->sess, strtol(buddy->name, (char **)NULL, 10)); |
8775 | 956 agg_save_buddy_list(gc, NULL); |
2393 | 957 } |
958 | |
9285 | 959 static void agg_add_buddies(GaimConnection *gc, GList *buddies, GList *groups) |
2393 | 960 { |
961 struct agg_data *gd = (struct agg_data *)gc->proto_data; | |
962 uin_t *userlist = NULL; | |
963 int userlist_size = 0; | |
964 | |
9285 | 965 while (buddies) { |
966 GaimBuddy *buddy = buddies->data; | |
967 if (!invalid_uin(buddy->name)) { | |
2393 | 968 userlist_size++; |
969 userlist = g_renew(uin_t, userlist, userlist_size); | |
970 userlist[userlist_size - 1] = | |
9285 | 971 (uin_t) strtol(buddy->name, (char **)NULL, 10); |
2393 | 972 } |
9285 | 973 buddies = g_list_next(buddies); |
2393 | 974 } |
975 | |
976 if (userlist) { | |
977 gg_notify(gd->sess, userlist, userlist_size); | |
978 g_free(userlist); | |
979 } | |
8997 | 980 |
8775 | 981 agg_save_buddy_list(gc, NULL); |
2393 | 982 } |
983 | |
9415 | 984 static void agg_buddy_free (GaimBuddy *buddy) |
985 { | |
986 if (buddy->proto_data) { | |
987 g_free(buddy->proto_data); | |
988 buddy->proto_data = NULL; | |
989 } | |
990 } | |
991 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
992 static void search_results(GaimConnection *gc, gchar *webdata) |
2393 | 993 { |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
994 gchar **webdata_tbl; |
2393 | 995 gchar *buf; |
996 char *ptr; | |
997 int i, j; | |
998 | |
999 if ((ptr = strstr(webdata, "query_results:")) == NULL || (ptr = strchr(ptr, '\n')) == NULL) { | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1000 gaim_debug(GAIM_DEBUG_MISC, "gg", "search_callback: pubdir result [%s]\n", webdata); |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1001 gaim_notify_error(gc, NULL, _("Couldn't get search results"), NULL); |
2393 | 1002 return; |
1003 } | |
1004 ptr++; | |
1005 | |
1006 buf = g_strconcat("<B>", _("Gadu-Gadu Search Engine"), "</B><BR>\n", NULL); | |
1007 | |
1008 webdata_tbl = g_strsplit(ptr, "\n", AGG_PUBDIR_MAX_ENTRIES); | |
1009 | |
1010 j = 0; | |
1011 | |
1012 /* Parse array */ | |
9285 | 1013 /* XXX - Make this use a GString */ |
2393 | 1014 for (i = 0; webdata_tbl[i] != NULL; i++) { |
1015 gchar *p, *oldibuf; | |
1016 static gchar *ibuf; | |
1017 | |
1018 g_strdelimit(webdata_tbl[i], "\t\n", ' '); | |
1019 | |
1020 /* GG_PUBDIR_HOST service returns 7 lines of data per directory entry */ | |
1021 if (i % 8 == 0) | |
1022 j = 0; | |
1023 | |
4051 | 1024 p = charset_convert(g_strstrip(webdata_tbl[i]), "CP1250", "UTF-8"); |
2393 | 1025 |
1026 oldibuf = ibuf; | |
1027 | |
1028 switch (j) { | |
1029 case 0: | |
1030 ibuf = g_strconcat("---------------------------------<BR>\n", NULL); | |
1031 oldibuf = ibuf; | |
1032 ibuf = g_strconcat(oldibuf, "<B>", _("Active"), ":</B> ", | |
4606 | 1033 (atoi(p) == 2) ? _("Yes") : _("No"), "<BR>\n", NULL); |
2393 | 1034 g_free(oldibuf); |
1035 break; | |
1036 case 1: | |
1037 ibuf = g_strconcat(oldibuf, "<B>", _("UIN"), ":</B> ", p, "<BR>\n", NULL); | |
1038 g_free(oldibuf); | |
1039 break; | |
1040 case 2: | |
7981 | 1041 ibuf = g_strconcat(oldibuf, "<B>", _("First Name"), ":</B> ", p, "<BR>\n", NULL); |
2393 | 1042 g_free(oldibuf); |
1043 break; | |
1044 case 3: | |
1045 ibuf = | |
6623 | 1046 g_strconcat(oldibuf, "<B>", _("Last Name"), ":</B> ", p, "<BR>\n", NULL); |
2393 | 1047 g_free(oldibuf); |
1048 break; | |
1049 case 4: | |
1050 ibuf = g_strconcat(oldibuf, "<B>", _("Nick"), ":</B> ", p, "<BR>\n", NULL); | |
1051 g_free(oldibuf); | |
1052 break; | |
1053 case 5: | |
1054 /* Hack, invalid_uin does what we really want here but may change in future */ | |
1055 if (invalid_uin(p)) | |
1056 ibuf = | |
8063 | 1057 g_strconcat(oldibuf, "<B>", _("Birth Year"), ":</B> <BR>\n", NULL); |
2393 | 1058 else |
1059 ibuf = | |
8063 | 1060 g_strconcat(oldibuf, "<B>", _("Birth Year"), ":</B> ", p, "<BR>\n", |
2393 | 1061 NULL); |
1062 g_free(oldibuf); | |
1063 break; | |
1064 case 6: | |
1065 if (atoi(p) == GG_GENDER_FEMALE) | |
1066 ibuf = g_strconcat(oldibuf, "<B>", _("Sex"), ":</B> woman<BR>\n", NULL); | |
1067 else if (atoi(p) == GG_GENDER_MALE) | |
1068 ibuf = g_strconcat(oldibuf, "<B>", _("Sex"), ":</B> man<BR>\n", NULL); | |
1069 else | |
1070 ibuf = g_strconcat(oldibuf, "<B>", _("Sex"), ":</B> <BR>\n", NULL); | |
1071 g_free(oldibuf); | |
1072 break; | |
1073 case 7: | |
1074 ibuf = g_strconcat(oldibuf, "<B>", _("City"), ":</B> ", p, "<BR>\n", NULL); | |
1075 g_free(oldibuf); | |
1076 | |
1077 /* We have all lines, so add them to buffer */ | |
1078 { | |
1079 gchar *oldbuf = buf; | |
1080 buf = g_strconcat(oldbuf, ibuf, NULL); | |
1081 g_free(oldbuf); | |
1082 } | |
1083 | |
1084 g_free(ibuf); | |
1085 break; | |
1086 } | |
1087 | |
1088 g_free(p); | |
1089 | |
1090 j++; | |
1091 } | |
1092 | |
1093 g_strfreev(webdata_tbl); | |
1094 | |
7062
86ed8b2aa665
[gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
1095 gaim_notify_formatted(gc, NULL, _("Buddy Information"), NULL, |
86ed8b2aa665
[gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
1096 buf, NULL, NULL); |
2393 | 1097 |
1098 g_free(buf); | |
1099 } | |
1100 | |
7063
7fdac700deb1
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1101 static void |
9015 | 1102 change_pass(GaimPluginAction *action) |
7063
7fdac700deb1
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1103 { |
9015 | 1104 GaimConnection *gc = (GaimConnection *) action->context; |
1105 GaimAccount *account = gaim_connection_get_account(gc); | |
1106 gaim_account_request_change_password(account); | |
7063
7fdac700deb1
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1107 } |
7fdac700deb1
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1108 |
8775 | 1109 #if 0 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1110 static void import_buddies_server_results(GaimConnection *gc, gchar *webdata) |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1111 { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1112 gchar *ptr; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1113 gchar **users_tbl; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1114 int i; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1115 if (strstr(webdata, "no_data:")) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1116 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1117 _("There is no Buddy List stored on the " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1118 "Gadu-Gadu server."), NULL); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1119 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1120 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1121 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1122 if ((ptr = strstr(webdata, "get_results:")) == NULL || (ptr = strchr(ptr, ':')) == NULL) { |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1123 gaim_debug(GAIM_DEBUG_MISC, "gg", "import_buddies_server_results: import buddies result [%s]\n", webdata); |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1124 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1125 _("Couldn't Import Buddy List from Server"), NULL); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1126 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1127 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1128 ptr++; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1129 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1130 users_tbl = g_strsplit(ptr, "\n", AGG_PUBDIR_MAX_ENTRIES); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1131 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1132 /* Parse array of Buddies List */ |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1133 for (i = 0; users_tbl[i] != NULL; i++) { |
4520
4fe661860577
[gaim-migrate @ 4798]
Christian Hammond <chipx86@chipx86.com>
parents:
4516
diff
changeset
|
1134 gchar **data_tbl; |
4fe661860577
[gaim-migrate @ 4798]
Christian Hammond <chipx86@chipx86.com>
parents:
4516
diff
changeset
|
1135 gchar *name, *show; |
4fe661860577
[gaim-migrate @ 4798]
Christian Hammond <chipx86@chipx86.com>
parents:
4516
diff
changeset
|
1136 |
4516 | 1137 if (strlen(users_tbl[i])==0) { |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1138 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1139 "import_buddies_server_results: users_tbl[i] is empty\n"); |
4530 | 1140 continue; |
4516 | 1141 } |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1142 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1143 g_strdelimit(users_tbl[i], "\r\t\n\015", ' '); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1144 data_tbl = g_strsplit(users_tbl[i], ";", 8); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1145 |
4437 | 1146 show = charset_convert(data_tbl[3], "CP1250", "UTF-8"); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1147 name = data_tbl[6]; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1148 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1149 if (invalid_uin(name)) { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1150 continue; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1151 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1152 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1153 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1154 "import_buddies_server_results: uin: %s\n", name); |
4687 | 1155 if (!gaim_find_buddy(gc->account, name)) { |
6695 | 1156 GaimBuddy *b; |
1157 GaimGroup *g; | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1158 /* Default group if none specified on server */ |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1159 gchar *group = g_strdup("Gadu-Gadu"); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1160 if (strlen(data_tbl[5])) { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1161 gchar **group_tbl = g_strsplit(data_tbl[5], ",", 2); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1162 if (strlen(group_tbl[0])) { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1163 g_free(group); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1164 group = g_strdup(group_tbl[0]); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1165 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1166 g_strfreev(group_tbl); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1167 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1168 /* Add Buddy to our userlist */ |
4775 | 1169 if (!(g = gaim_find_group(group))) { |
4687 | 1170 g = gaim_group_new(group); |
4775 | 1171 gaim_blist_add_group(g, NULL); |
1172 } | |
4687 | 1173 b = gaim_buddy_new(gc->account, name, strlen(show) ? show : NULL); |
9295 | 1174 gaim_blist_add_buddy(b, NULL, g, NULL); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1175 g_free(group); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1176 } |
4437 | 1177 g_free(show); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1178 g_strfreev(data_tbl); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1179 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1180 g_strfreev(users_tbl); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1181 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1182 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1183 static void export_buddies_server_results(GaimConnection *gc, gchar *webdata) |
2393 | 1184 { |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1185 if (strstr(webdata, "put_success:")) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1186 gaim_notify_info(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1187 _("Buddy List successfully transferred to " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1188 "Gadu-Gadu server"), NULL); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1189 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1190 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1191 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1192 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1193 "export_buddies_server_results: webdata [%s]\n", webdata); |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1194 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1195 _("Couldn't transfer Buddy List to Gadu-Gadu server"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1196 NULL); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1197 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1198 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1199 static void delete_buddies_server_results(GaimConnection *gc, gchar *webdata) |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1200 { |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1201 if (strstr(webdata, "put_success:")) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1202 gaim_notify_info(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1203 _("Buddy List successfully deleted from " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1204 "Gadu-Gadu server"), NULL); |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1205 return; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1206 } |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1207 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1208 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1209 "delete_buddies_server_results: webdata [%s]\n", webdata); |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1210 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1211 _("Couldn't delete Buddy List from Gadu-Gadu server"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1212 NULL); |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1213 } |
8775 | 1214 #endif |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1215 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1216 static void password_change_server_results(GaimConnection *gc, gchar *webdata) |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1217 { |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1218 if (strstr(webdata, "reg_success:")) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1219 gaim_notify_info(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1220 _("Password changed successfully"), NULL); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1221 return; |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1222 } |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1223 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1224 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1225 "password_change_server_results: webdata [%s]\n", webdata); |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1226 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1227 _("Password couldn't be changed"), NULL); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1228 } |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1229 |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1230 static void http_results(gpointer data, gint source, GaimInputCondition cond) |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1231 { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1232 struct agg_http *hdata = data; |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1233 GaimConnection *gc = hdata->gc; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1234 char *webdata; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1235 int len; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1236 char read_data; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1237 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1238 gaim_debug(GAIM_DEBUG_INFO, "gg", "http_results: begin\n"); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1239 |
5605 | 1240 if (!g_list_find(gaim_connections_get_all(), gc)) { |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1241 gaim_debug(GAIM_DEBUG_ERROR, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1242 "search_callback: g_slist_find error\n"); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1243 gaim_input_remove(hdata->inpa); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1244 g_free(hdata); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1245 close(source); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1246 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1247 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1248 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1249 webdata = NULL; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1250 len = 0; |
3717
988485669631
[gaim-migrate @ 3850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3630
diff
changeset
|
1251 |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1252 while (read(source, &read_data, 1) > 0 || errno == EWOULDBLOCK) { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1253 if (errno == EWOULDBLOCK) { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1254 errno = 0; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1255 continue; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1256 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1257 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1258 if (!read_data) |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1259 continue; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1260 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1261 len++; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1262 webdata = g_realloc(webdata, len); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1263 webdata[len - 1] = read_data; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1264 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1265 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1266 webdata = g_realloc(webdata, len + 1); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1267 webdata[len] = 0; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1268 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1269 gaim_input_remove(hdata->inpa); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1270 close(source); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1271 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1272 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1273 "http_results: type %d, webdata [%s]\n", hdata->type, webdata); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1274 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1275 switch (hdata->type) { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1276 case AGG_HTTP_SEARCH: |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1277 search_results(gc, webdata); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1278 break; |
8775 | 1279 #if 0 |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1280 case AGG_HTTP_USERLIST_IMPORT: |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1281 import_buddies_server_results(gc, webdata); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1282 break; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1283 case AGG_HTTP_USERLIST_EXPORT: |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1284 export_buddies_server_results(gc, webdata); |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1285 break; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1286 case AGG_HTTP_USERLIST_DELETE: |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1287 delete_buddies_server_results(gc, webdata); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1288 break; |
8775 | 1289 #endif |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1290 case AGG_HTTP_PASSWORD_CHANGE: |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1291 password_change_server_results(gc, webdata); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1292 break; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1293 case AGG_HTTP_NONE: |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1294 default: |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1295 gaim_debug(GAIM_DEBUG_ERROR, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1296 "http_results: unsupported type %d\n", hdata->type); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1297 break; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1298 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1299 |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1300 g_free(webdata); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1301 g_free(hdata); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1302 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1303 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1304 static void http_req_callback(gpointer data, gint source, GaimInputCondition cond) |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1305 { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1306 struct agg_http *hdata = data; |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1307 GaimConnection *gc = hdata->gc; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1308 gchar *request = hdata->request; |
2393 | 1309 gchar *buf; |
1310 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1311 gaim_debug(GAIM_DEBUG_INFO, "gg", "http_req_callback: begin\n"); |
2393 | 1312 |
5605 | 1313 if (!g_list_find(gaim_connections_get_all(), gc)) { |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1314 gaim_debug(GAIM_DEBUG_ERROR, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1315 "http_req_callback: g_slist_find error\n"); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1316 g_free(request); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1317 g_free(hdata); |
2393 | 1318 close(source); |
1319 return; | |
1320 } | |
1321 | |
4511 | 1322 if (source == 0) { |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1323 g_free(request); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1324 g_free(hdata); |
2393 | 1325 return; |
1326 } | |
1327 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1328 gaim_debug(GAIM_DEBUG_MISC, "gg", |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1329 "http_req_callback: http request [%s]\n", request); |
2393 | 1330 |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1331 buf = g_strdup_printf("POST %s HTTP/1.0\r\n" |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1332 "Host: %s\r\n" |
2393 | 1333 "Content-Type: application/x-www-form-urlencoded\r\n" |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1334 "User-Agent: " GG_HTTP_USERAGENT "\r\n" |
2393 | 1335 "Content-Length: %d\r\n" |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1336 "Pragma: no-cache\r\n" "\r\n" "%s\r\n", |
7386 | 1337 hdata->form, hdata->host, (int)strlen(request), request); |
2393 | 1338 |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1339 g_free(request); |
2393 | 1340 |
1341 if (write(source, buf, strlen(buf)) < strlen(buf)) { | |
1342 g_free(buf); | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1343 g_free(hdata); |
2393 | 1344 close(source); |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1345 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1346 _("Error communicating with Gadu-Gadu server"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1347 _("Gaim was unable to complete your request due " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1348 "to a problem communicating with the Gadu-Gadu " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1349 "HTTP server. Please try again later.")); |
2393 | 1350 return; |
1351 } | |
1352 | |
1353 g_free(buf); | |
1354 | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1355 hdata->inpa = gaim_input_add(source, GAIM_INPUT_READ, http_results, hdata); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1356 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1357 |
8775 | 1358 #if 0 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1359 static void import_buddies_server(GaimConnection *gc) |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1360 { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1361 struct agg_http *hi = g_new0(struct agg_http, 1); |
5603 | 1362 gchar *u = gg_urlencode(gaim_account_get_username(gc->account)); |
10740 | 1363 gchar *p = gg_urlencode(gaim_connection_get_password(gc)); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1364 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1365 hi->gc = gc; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1366 hi->type = AGG_HTTP_USERLIST_IMPORT; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1367 hi->form = AGG_PUBDIR_USERLIST_IMPORT_FORM; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1368 hi->host = GG_PUBDIR_HOST; |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1369 hi->request = g_strdup_printf("FmNum=%s&Pass=%s", u, p); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1370 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1371 g_free(u); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1372 g_free(p); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1373 |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
1374 if (gaim_proxy_connect(gc->account, GG_PUBDIR_HOST, GG_PUBDIR_PORT, http_req_callback, hi) < 0) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1375 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1376 _("Unable to import Gadu-Gadu buddy list"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1377 _("Gaim was unable to connect to the Gadu-Gadu " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1378 "buddy list server. Please try again later.")); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1379 g_free(hi->request); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1380 g_free(hi); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1381 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1382 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1383 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1384 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1385 static void export_buddies_server(GaimConnection *gc) |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1386 { |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1387 struct agg_http *he = g_new0(struct agg_http, 1); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1388 gchar *ptr; |
5603 | 1389 gchar *u = gg_urlencode(gaim_account_get_username(gc->account)); |
10740 | 1390 gchar *p = gg_urlencode(gaim_connection_get_password(gc)); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1391 |
6695 | 1392 GaimBlistNode *gnode, *cnode, *bnode; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1393 |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1394 he->gc = gc; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1395 he->type = AGG_HTTP_USERLIST_EXPORT; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1396 he->form = AGG_PUBDIR_USERLIST_EXPORT_FORM; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1397 he->host = GG_PUBDIR_HOST; |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1398 he->request = g_strdup_printf("FmNum=%s&Pass=%s&Contacts=", u, p); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1399 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1400 g_free(u); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1401 g_free(p); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1402 |
4785 | 1403 for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
6695 | 1404 GaimGroup *g = (GaimGroup *)gnode; |
4516 | 1405 int num_added=0; |
4785 | 1406 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
1407 continue; | |
6695 | 1408 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
1409 if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) | |
1410 continue; | |
1411 for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
1412 GaimBuddy *b = (GaimBuddy *)bnode; | |
4785 | 1413 |
6695 | 1414 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
1415 continue; | |
4349 | 1416 |
6695 | 1417 if(b->account == gc->account) { |
1418 gchar *newdata; | |
1419 /* GG Number */ | |
1420 gchar *name = gg_urlencode(b->name); | |
1421 /* GG Pseudo */ | |
1422 gchar *show = gg_urlencode(b->alias ? b->alias : b->name); | |
1423 /* Group Name */ | |
1424 gchar *gname = gg_urlencode(g->name); | |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1425 |
6695 | 1426 ptr = he->request; |
1427 newdata = g_strdup_printf("%s;%s;%s;%s;%s;%s;%s", | |
1428 show, show, show, show, "", gname, name); | |
4516 | 1429 |
6695 | 1430 if(num_added > 0) |
1431 he->request = g_strconcat(ptr, "%0d%0a", newdata, NULL); | |
1432 else | |
1433 he->request = g_strconcat(ptr, newdata, NULL); | |
4516 | 1434 |
6695 | 1435 num_added++; |
1436 | |
1437 g_free(newdata); | |
1438 g_free(ptr); | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1439 |
6695 | 1440 g_free(gname); |
1441 g_free(show); | |
1442 g_free(name); | |
1443 } | |
4349 | 1444 } |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1445 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1446 } |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1447 |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
1448 if (gaim_proxy_connect(gc->account, GG_PUBDIR_HOST, GG_PUBDIR_PORT, http_req_callback, he) < 0) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1449 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1450 _("Couldn't export buddy list"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1451 _("Gaim was unable to connect to the buddy " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1452 "list server. Please try again later.")); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1453 g_free(he->request); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1454 g_free(he); |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1455 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1456 } |
2393 | 1457 } |
1458 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1459 static void delete_buddies_server(GaimConnection *gc) |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1460 { |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1461 struct agg_http *he = g_new0(struct agg_http, 1); |
5603 | 1462 gchar *u = gg_urlencode(gaim_account_get_username(gc->account)); |
10740 | 1463 gchar *p = gg_urlencode(gaim_connection_get_password(gc)); |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1464 |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1465 he->gc = gc; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1466 he->type = AGG_HTTP_USERLIST_DELETE; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1467 he->form = AGG_PUBDIR_USERLIST_EXPORT_FORM; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1468 he->host = GG_PUBDIR_HOST; |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1469 he->request = g_strdup_printf("FmNum=%s&Pass=%s&Delete=1", u, p); |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1470 |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
1471 if (gaim_proxy_connect(gc->account, GG_PUBDIR_HOST, GG_PUBDIR_PORT, http_req_callback, he) < 0) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1472 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1473 _("Unable to delete Gadu-Gadu buddy list"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1474 _("Gaim was unable to connect to the buddy " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1475 "list server. Please try again later.")); |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1476 g_free(he->request); |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1477 g_free(he); |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1478 return; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1479 } |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1480 } |
8775 | 1481 #endif |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
1482 |
8950 | 1483 #if 0 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1484 static void agg_dir_search(GaimConnection *gc, const char *first, const char *middle, |
3466 | 1485 const char *last, const char *maiden, const char *city, const char *state, |
1486 const char *country, const char *email) | |
2393 | 1487 { |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1488 struct agg_http *srch = g_new0(struct agg_http, 1); |
2393 | 1489 srch->gc = gc; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1490 srch->type = AGG_HTTP_SEARCH; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1491 srch->form = AGG_PUBDIR_SEARCH_FORM; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1492 srch->host = GG_PUBDIR_HOST; |
2393 | 1493 |
1494 if (email && strlen(email)) { | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1495 gchar *eemail = gg_urlencode(email); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1496 srch->request = g_strdup_printf("Mode=1&Email=%s", eemail); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1497 g_free(eemail); |
2393 | 1498 } else { |
4051 | 1499 gchar *new_first = charset_convert(first, "UTF-8", "CP1250"); |
1500 gchar *new_last = charset_convert(last, "UTF-8", "CP1250"); | |
1501 gchar *new_city = charset_convert(city, "UTF-8", "CP1250"); | |
2393 | 1502 |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1503 gchar *enew_first = gg_urlencode(new_first); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1504 gchar *enew_last = gg_urlencode(new_last); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1505 gchar *enew_city = gg_urlencode(new_city); |
2393 | 1506 |
1507 g_free(new_first); | |
1508 g_free(new_last); | |
1509 g_free(new_city); | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1510 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1511 /* For active only add &ActiveOnly= */ |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1512 srch->request = g_strdup_printf("Mode=0&FirstName=%s&LastName=%s&Gender=%d" |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1513 "&NickName=%s&City=%s&MinBirth=%d&MaxBirth=%d", |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1514 enew_first, enew_last, AGG_GENDER_NONE, |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1515 "", enew_city, 0, 0); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1516 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1517 g_free(enew_first); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1518 g_free(enew_last); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1519 g_free(enew_city); |
2393 | 1520 } |
1521 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
1522 if (gaim_proxy_connect(gc->account, GG_PUBDIR_HOST, GG_PUBDIR_PORT, http_req_callback, srch) < 0) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1523 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1524 _("Unable to access directory"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1525 _("Gaim was unable to search the Directory " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1526 "because it was unable to connect to the " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1527 "directory server. Please try again later.")); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1528 g_free(srch->request); |
2393 | 1529 g_free(srch); |
1530 return; | |
1531 } | |
1532 } | |
8950 | 1533 #endif |
2393 | 1534 |
10395 | 1535 static void agg_change_passwd(GaimConnection *gc, const char *old, const char *new) |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1536 { |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1537 struct agg_http *hpass = g_new0(struct agg_http, 1); |
5603 | 1538 gchar *u = gg_urlencode(gaim_account_get_username(gc->account)); |
10740 | 1539 gchar *p = gg_urlencode(gaim_connection_get_password(gc)); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1540 gchar *enew = gg_urlencode(new); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1541 gchar *eold = gg_urlencode(old); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1542 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1543 hpass->gc = gc; |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1544 hpass->type = AGG_HTTP_PASSWORD_CHANGE; |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1545 hpass->form = AGG_REGISTER_DATA_FORM; |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1546 hpass->host = GG_REGISTER_HOST; |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1547 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1548 /* We are using old password as place for email - it's ugly */ |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1549 hpass->request = g_strdup_printf("fmnumber=%s&fmpwd=%s&pwd=%s&email=%s&code=%u", |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1550 u, p, enew, eold, gg_http_hash(old, new)); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1551 |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1552 g_free(u); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1553 g_free(p); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1554 g_free(enew); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1555 g_free(eold); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1556 |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
1557 if (gaim_proxy_connect(gc->account, GG_REGISTER_HOST, GG_REGISTER_PORT, http_req_callback, hpass) < 0) { |
8997 | 1558 gaim_notify_error(gc, NULL, |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1559 _("Unable to change Gadu-Gadu password"), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1560 _("Gaim was unable to change your password " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1561 "due to an error connecting to the " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1562 "Gadu-Gadu server. Please try again " |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1563 "later.")); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1564 g_free(hpass->request); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1565 g_free(hpass); |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1566 return; |
8997 | 1567 } |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1568 } |
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1569 |
9015 | 1570 static GList *agg_actions(GaimPlugin *plugin, gpointer context) |
2393 | 1571 { |
1572 GList *m = NULL; | |
9015 | 1573 GaimPluginAction *act = NULL; |
2393 | 1574 |
7062
86ed8b2aa665
[gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
1575 #if 0 |
9015 | 1576 act = gaim_plugin_action_new(_("Directory Search"), show_find_info); |
1577 m = g_list_append(m, act); | |
4333 | 1578 m = g_list_append(m, NULL); |
7062
86ed8b2aa665
[gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents:
6982
diff
changeset
|
1579 #endif |
4333 | 1580 |
9015 | 1581 act = gaim_plugin_action_new(_("Change Password"), change_pass); |
1582 m = g_list_append(m, act); | |
4333 | 1583 |
8775 | 1584 #if 0 |
9015 | 1585 act = gaim_plugin_action_new(_("Import Buddy List from Server"), |
1586 import_buddies_server); | |
1587 m = g_list_append(m, act); | |
4333 | 1588 |
9015 | 1589 act = gaim_plugin_action_new(_("Export Buddy List to Server"), |
1590 export_buddies_server); | |
1591 m = g_list_append(m, act); | |
4333 | 1592 |
9015 | 1593 act = gaim_plugin_action_new(_("Delete Buddy List from Server"), |
1594 delete_buddies_server); | |
1595 m = g_list_append(m, act); | |
8775 | 1596 #endif |
2393 | 1597 |
1598 return m; | |
1599 } | |
1600 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1601 static void agg_get_info(GaimConnection *gc, const char *who) |
2393 | 1602 { |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1603 struct agg_http *srch = g_new0(struct agg_http, 1); |
2393 | 1604 srch->gc = gc; |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1605 srch->type = AGG_HTTP_SEARCH; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1606 srch->form = AGG_PUBDIR_SEARCH_FORM; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1607 srch->host = GG_PUBDIR_HOST; |
2393 | 1608 |
1609 /* If it's invalid uin then maybe it's nickname? */ | |
1610 if (invalid_uin(who)) { | |
4051 | 1611 gchar *new_who = charset_convert(who, "UTF-8", "CP1250"); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1612 gchar *enew_who = gg_urlencode(new_who); |
8997 | 1613 |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1614 g_free(new_who); |
2393 | 1615 |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1616 srch->request = g_strdup_printf("Mode=0&FirstName=%s&LastName=%s&Gender=%d" |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1617 "&NickName=%s&City=%s&MinBirth=%d&MaxBirth=%d", |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1618 "", "", AGG_GENDER_NONE, enew_who, "", 0, 0); |
2393 | 1619 |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1620 g_free(enew_who); |
2393 | 1621 } else |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1622 srch->request = g_strdup_printf("Mode=3&UserId=%s", who); |
2393 | 1623 |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5645
diff
changeset
|
1624 if (gaim_proxy_connect(gc->account, GG_PUBDIR_HOST, GG_PUBDIR_PORT, http_req_callback, srch) < 0) { |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1625 gaim_notify_error(gc, NULL, |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1626 _("Unable to access user profile."), |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1627 _("Gaim was unable to access this user's " |
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1628 "profile due to an error connecting to the " |
10812
d087e928ffd1
[gaim-migrate @ 12465]
Luke Schierer <lschiere@pidgin.im>
parents:
10751
diff
changeset
|
1629 "directory server. Please try again later.")); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
1630 g_free(srch->request); |
2393 | 1631 g_free(srch); |
1632 return; | |
1633 } | |
1634 } | |
1635 | |
6695 | 1636 static const char *agg_list_icon(GaimAccount *a, GaimBuddy *b) |
2393 | 1637 { |
4687 | 1638 return "gadu-gadu"; |
1639 } | |
4916 | 1640 |
9953 | 1641 static void agg_list_emblems(GaimBuddy *b, const char **se, const char **sw, |
1642 const char **nw, const char **ne) | |
4916 | 1643 { |
9944 | 1644 GaimPresence *presence = gaim_buddy_get_presence(b); |
1645 | |
1646 if (!GAIM_BUDDY_IS_ONLINE(b)) | |
4916 | 1647 *se = "offline"; |
9944 | 1648 else if (gaim_presence_is_status_active(presence, "away") || |
1649 gaim_presence_is_status_active(presence, "away-friends")) | |
1650 { | |
4916 | 1651 *se = "away"; |
9944 | 1652 } |
1653 else if (gaim_presence_is_status_active(presence, "invisible") || | |
1654 gaim_presence_is_status_active(presence, "invisible-friends")) | |
1655 { | |
1656 *se = "invisible"; | |
4916 | 1657 } |
2393 | 1658 } |
4916 | 1659 |
2393 | 1660 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1661 static void agg_set_permit_deny_dummy(GaimConnection *gc) |
2393 | 1662 { |
1663 /* It's implemented on client side because GG server doesn't support this */ | |
1664 } | |
1665 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
1666 static void agg_permit_deny_dummy(GaimConnection *gc, const char *who) |
2393 | 1667 { |
1668 /* It's implemented on client side because GG server doesn't support this */ | |
1669 } | |
1670 | |
8796 | 1671 static void agg_group_buddy (GaimConnection *gc, const char *who, |
8775 | 1672 const char *old_group, const char *new_group) |
1673 { | |
1674 GaimBuddy *buddy = gaim_find_buddy(gaim_connection_get_account(gc), who); | |
1675 gchar *newdata; | |
1676 /* GG Number */ | |
1677 gchar *name = buddy->name; | |
1678 /* GG Pseudo */ | |
1679 gchar *show = buddy->alias ? buddy->alias : buddy->name; | |
1680 /* Group Name */ | |
1681 const gchar *gname = new_group; | |
1682 | |
1683 newdata = g_strdup_printf("%s;%s;%s;%s;%s;%s;%s;%s%s\r\n", | |
1684 show, show, show, show, "", gname, name, "", ""); | |
1685 agg_save_buddy_list(gc, newdata); | |
1686 g_free(newdata); | |
1687 } | |
1688 | |
9285 | 1689 static void agg_rename_group (GaimConnection *gc, const char *old_name, |
1690 GaimGroup *group, GList *moved_buddies) | |
8775 | 1691 { |
1692 agg_save_buddy_list(gc, NULL); | |
1693 } | |
1694 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1695 static GaimPlugin *my_protocol = NULL; |
2393 | 1696 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1697 static GaimPluginProtocolInfo prpl_info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1698 { |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1699 0, |
9475 | 1700 NULL, /* user_splits */ |
1701 NULL, /* protocol_options */ | |
9950 | 1702 NO_BUDDY_ICONS, /* icon_spec */ |
1703 agg_list_icon, /* list_icon */ | |
1704 agg_list_emblems, /* list_emblems */ | |
9475 | 1705 NULL, /* status_text */ |
1706 NULL, /* tooltip_text */ | |
9950 | 1707 agg_status_types, /* status_types */ |
9475 | 1708 agg_blist_node_menu, /* blist_node_menu */ |
1709 NULL, /* chat_info */ | |
9754 | 1710 NULL, /* chat_info_defaults */ |
9950 | 1711 agg_login, /* login */ |
1712 agg_close, /* close */ | |
1713 agg_send_im, /* send_im */ | |
9475 | 1714 NULL, /* set_info */ |
1715 NULL, /* send_typing */ | |
9950 | 1716 agg_get_info, /* get_info */ |
1717 agg_set_status, /* set_away */ | |
9475 | 1718 NULL, /* set_idle */ |
9950 | 1719 agg_change_passwd, /* change_passwd */ |
1720 agg_add_buddy, /* add_buddy */ | |
1721 agg_add_buddies, /* add_buddies */ | |
1722 agg_rem_buddy, /* remove_buddy */ | |
9475 | 1723 NULL, /* remove_buddies */ |
1724 agg_permit_deny_dummy, /* add_permit */ | |
1725 agg_permit_deny_dummy, /* add_deny */ | |
1726 agg_permit_deny_dummy, /* rem_permit */ | |
1727 agg_permit_deny_dummy, /* rem_deny */ | |
1728 agg_set_permit_deny_dummy, /* set_permit_deny */ | |
1729 NULL, /* warn */ | |
1730 NULL, /* join_chat */ | |
1731 NULL, /* reject_chat */ | |
9917 | 1732 NULL, /* get_chat_name */ |
9475 | 1733 NULL, /* chat_invite */ |
1734 NULL, /* chat_leave */ | |
1735 NULL, /* chat_whisper */ | |
1736 NULL, /* chat_send */ | |
9950 | 1737 agg_keepalive, /* keepalive */ |
9475 | 1738 NULL, /* register_user */ |
1739 NULL, /* get_cb_info */ | |
1740 NULL, /* get_cb_away */ | |
1741 NULL, /* alias_buddy */ | |
9950 | 1742 agg_group_buddy, /* group_buddy */ |
1743 agg_rename_group, /* rename_group */ | |
1744 agg_buddy_free, /* buddy_free */ | |
9475 | 1745 NULL, /* convo_closed */ |
1746 NULL, /* normalize */ | |
1747 NULL, /* set_buddy_icon */ | |
1748 NULL, /* remove_group */ | |
1749 NULL, /* get_cb_real_name */ | |
1750 NULL, /* set_chat_topic */ | |
1751 NULL, /* find_blist_chat */ | |
1752 NULL, /* roomlist_get_list */ | |
1753 NULL, /* roomlist_cancel */ | |
1754 NULL, /* roomlist_expand_category */ | |
1755 NULL, /* can_receive_file */ | |
1756 NULL /* send_file */ | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1757 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1758 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1759 static GaimPluginInfo info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1760 { |
9943 | 1761 GAIM_PLUGIN_MAGIC, |
1762 GAIM_MAJOR_VERSION, | |
1763 GAIM_MINOR_VERSION, | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1764 GAIM_PLUGIN_PROTOCOL, /**< type */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1765 NULL, /**< ui_requirement */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1766 0, /**< flags */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1767 NULL, /**< dependencies */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1768 GAIM_PRIORITY_DEFAULT, /**< priority */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1769 |
9030 | 1770 "prpl-gg", /**< id */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1771 "Gadu-Gadu", /**< name */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1772 VERSION, /**< version */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1773 /** summary */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1774 N_("Gadu-Gadu Protocol Plugin"), |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1775 /** description */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1776 N_("Gadu-Gadu Protocol Plugin"), |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1777 "Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>", /**< author */ |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6321
diff
changeset
|
1778 GAIM_WEBSITE, /**< homepage */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1779 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1780 NULL, /**< load */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1781 NULL, /**< unload */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1782 NULL, /**< destroy */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1783 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1784 NULL, /**< ui_info */ |
8993 | 1785 &prpl_info, /**< extra_info */ |
1786 NULL, | |
9015 | 1787 agg_actions |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1788 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1789 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1790 static void |
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
1791 init_plugin(GaimPlugin *plugin) |
2393 | 1792 { |
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5618
diff
changeset
|
1793 GaimAccountOption *option; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1794 |
5645
a9cd11fd0d6f
[gaim-migrate @ 6059]
Christian Hammond <chipx86@chipx86.com>
parents:
5638
diff
changeset
|
1795 option = gaim_account_option_string_new(_("Nick"), "nick", |
9030 | 1796 "Gadu-Gadu User"); |
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5618
diff
changeset
|
1797 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
9030 | 1798 option); |
3572 | 1799 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1800 my_protocol = plugin; |
2393 | 1801 } |
1802 | |
9863 | 1803 GAIM_INIT_PLUGIN(gg, init_plugin, info) |