libpurple/protocols/gg/gg.c

Fri, 17 Aug 2012 17:44:23 +0200

author
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
date
Fri, 17 Aug 2012 17:44:23 +0200
branch
soc.2012.gg
changeset 33342
26ba5e4e8c24
parent 33341
481258ec30de
child 33343
09f740724036
permissions
-rw-r--r--

Gadu-Gadu: status refactoring - polishing

11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1 /**
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
2 * @file gg.c Gadu-Gadu protocol plugin
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
4 * purple
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
5 *
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
6 * Copyright (C) 2005 Bartosz Oler <bartosz@bzimage.us>
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
7 *
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
8 * Some parts of the code are adapted or taken from the previous implementation
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
9 * of this plugin written by Arkadiusz Miskiewicz <misiek@pld.org.pl>
27388
e72ccf802d25 Support fetching Gadu-Gadu avatars. Closes #9371.
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 27371
diff changeset
10 * Some parts Copyright (C) 2009 Krzysztof Klinikowski <grommasher@gmail.com>
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
11 *
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
12 * Thanks to Google's Summer of Code Program.
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
13 *
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
14 * This program is free software; you can redistribute it and/or modify
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
15 * it under the terms of the GNU General Public License as published by
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
16 * the Free Software Foundation; either version 2 of the License, or
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
17 * (at your option) any later version.
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
18 *
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
19 * This program is distributed in the hope that it will be useful,
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
22 * GNU General Public License for more details.
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
23 *
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
24 * You should have received a copy of the GNU General Public License
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
25 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18629
diff changeset
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
27 */
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
28
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
29 #include <internal.h>
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
30
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
31 #include "plugin.h"
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
32 #include "version.h"
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
33 #include "notify.h"
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9015
diff changeset
34 #include "blist.h"
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
35 #include "accountopt.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
36 #include "debug.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
37 #include "util.h"
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
38 #include "request.h"
27388
e72ccf802d25 Support fetching Gadu-Gadu avatars. Closes #9371.
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 27371
diff changeset
39 #include "xmlnode.h"
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
41 #include "gg.h"
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
42 #include "confer.h"
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
43 #include "search.h"
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
44 #include "buddylist.h"
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
45 #include "utils.h"
33291
b70ab10887a7 New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33287
diff changeset
46 #include "resolver-purple.h"
33303
50f7a92eeb90 Gadu-Gadu: code refactoring - token request, proxy setup (deprecated)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33302
diff changeset
47 #include "account.h"
50f7a92eeb90 Gadu-Gadu: code refactoring - token request, proxy setup (deprecated)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33302
diff changeset
48 #include "deprecated.h"
33306
b1bef9a92b4c Gadu-Gadu: rename purple.(c|h) to purplew.(c|h) - purple wrappers
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33305
diff changeset
49 #include "purplew.h"
33313
5a0c6582d5b1 Gadu-Gadu: refactoring of buddy avatars handling. Fixes #13739, #14305
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33311
diff changeset
50 #include "libgadu-events.h"
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
51 #include "multilogon.h"
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
52 #include "status.h"
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
53 #include "servconn.h"
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
54
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
55 /* ---------------------------------------------------------------------- */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
56
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
57 ggp_buddy_data * ggp_buddy_get_data(PurpleBuddy *buddy)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
58 {
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
59 ggp_buddy_data *buddy_data = purple_buddy_get_protocol_data(buddy);
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
60 if (buddy_data)
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
61 return buddy_data;
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
62
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
63 buddy_data = g_new0(ggp_buddy_data, 1);
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
64 purple_buddy_set_protocol_data(buddy, buddy_data);
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
65 return buddy_data;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
66 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
67
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
68 static void ggp_buddy_free(PurpleBuddy *buddy)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
69 {
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
70 ggp_buddy_data *buddy_data = purple_buddy_get_protocol_data(buddy);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
71
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
72 if (!buddy_data)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
73 return;
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
74
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
75 g_free(buddy_data);
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
76 purple_buddy_set_protocol_data(buddy, NULL);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
77 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
78
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
79 /* ---------------------------------------------------------------------- */
33316
f4ae8440063a Gadu-Gadu: roster - cleanups
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33315
diff changeset
80 // buddy list import/export from/to file
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
81
21496
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
82 static void ggp_callback_buddylist_save_ok(PurpleConnection *gc, const char *filename)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
83 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
84 PurpleAccount *account = purple_connection_get_account(gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
85
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
86 char *buddylist = ggp_buddylist_dump(account);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
87
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
88 purple_debug_info("gg", "Saving...\n");
21496
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
89 purple_debug_info("gg", "file = %s\n", filename);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
90
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
91 if (buddylist == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
92 purple_notify_info(account, _("Save Buddylist..."),
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
93 _("Your buddylist is empty, nothing was written to the file."),
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
94 NULL);
2792
f40db99e87c7 [gaim-migrate @ 2805]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2791
diff changeset
95 return;
f40db99e87c7 [gaim-migrate @ 2805]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2791
diff changeset
96 }
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
97
21496
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
98 if(purple_util_write_data_to_file_absolute(filename, buddylist, -1)) {
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
99 purple_notify_info(account, _("Save Buddylist..."),
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
100 _("Buddylist saved successfully!"), NULL);
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
101 } else {
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
102 gchar *primary = g_strdup_printf(
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
103 _("Couldn't write buddy list for %s to %s"),
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
104 purple_account_get_username(account), filename);
21497
8187406f2043 May as well use an existing string as the title for the error notification.
Will Thompson <resiak@pidgin.im>
parents: 21496
diff changeset
105 purple_notify_error(account, _("Save Buddylist..."),
21496
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
106 primary, NULL);
32972bf7cd4e Actually properly fix this gg "write my buddy list to a file" callback by just
Will Thompson <resiak@pidgin.im>
parents: 21485
diff changeset
107 g_free(primary);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
108 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
109
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
110 g_free(buddylist);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
111 }
2806
1576edefc75a [gaim-migrate @ 2819]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2792
diff changeset
112
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
113 static void ggp_callback_buddylist_load_ok(PurpleConnection *gc, gchar *file)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
114 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
115 PurpleAccount *account = purple_connection_get_account(gc);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
116 GError *error = NULL;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
117 char *buddylist = NULL;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
118 gsize length;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
119
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
120 purple_debug_info("gg", "file_name = %s\n", file);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
121
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
122 if (!g_file_get_contents(file, &buddylist, &length, &error)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
123 purple_notify_error(account,
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
124 _("Couldn't load buddylist"),
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
125 _("Couldn't load buddylist"),
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
126 error->message);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
127
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
128 purple_debug_error("gg",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
129 "Couldn't load buddylist. file = %s; error = %s\n",
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
130 file, error->message);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
131
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
132 g_error_free(error);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
133
2806
1576edefc75a [gaim-migrate @ 2819]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2792
diff changeset
134 return;
1576edefc75a [gaim-migrate @ 2819]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2792
diff changeset
135 }
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
136
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
137 ggp_buddylist_load(gc, buddylist);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
138 g_free(buddylist);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
139
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
140 purple_notify_info(account,
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
141 _("Load Buddylist..."),
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
142 _("Buddylist loaded successfully!"), NULL);
2806
1576edefc75a [gaim-migrate @ 2819]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2792
diff changeset
143 }
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
144 /* }}} */
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
145
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
146 /*
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
147 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
148 /* static void ggp_action_buddylist_save(PurplePluginAction *action) {{{ */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
149 static void ggp_action_buddylist_save(PurplePluginAction *action)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
150 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
151 PurpleConnection *gc = (PurpleConnection *)action->context;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
152
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
153 purple_request_file(action, _("Save buddylist..."), NULL, TRUE,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
154 G_CALLBACK(ggp_callback_buddylist_save_ok), NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
155 purple_connection_get_account(gc), NULL, NULL,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
156 gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
157 }
2806
1576edefc75a [gaim-migrate @ 2819]
Arkadiusz Miskiewicz <arekm@maven.pl>
parents: 2792
diff changeset
158
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
159 static void ggp_action_buddylist_load(PurplePluginAction *action)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
160 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
161 PurpleConnection *gc = (PurpleConnection *)action->context;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
162
23379
536450c4f7f9 Mark a string as translatable in prpl-gg. References #5693.
Will Thompson <resiak@pidgin.im>
parents: 23325
diff changeset
163 purple_request_file(action, _("Load buddylist from file..."), NULL,
536450c4f7f9 Mark a string as translatable in prpl-gg. References #5693.
Will Thompson <resiak@pidgin.im>
parents: 23325
diff changeset
164 FALSE,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
165 G_CALLBACK(ggp_callback_buddylist_load_ok), NULL,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
166 purple_connection_get_account(gc), NULL, NULL,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
167 gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
168 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
169
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
170 /* ----- PUBLIC DIRECTORY SEARCH ---------------------------------------- */
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
171
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
172 static void ggp_callback_show_next(PurpleConnection *gc, GList *row, gpointer user_data)
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
173 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
174 GGPInfo *info = purple_connection_get_protocol_data(gc);
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
175 GGPSearchForm *form = user_data;
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
176 guint32 seq;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
177
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
178 form->page_number++;
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
179
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
180 ggp_search_remove(info->searches, form->seq);
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
181 purple_debug_info("gg", "ggp_callback_show_next(): Removed seq %u\n",
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
182 form->seq);
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
183
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
184 seq = ggp_search_start(gc, form);
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
185 ggp_search_add(info->searches, seq, form);
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
186 purple_debug_info("gg", "ggp_callback_show_next(): Added seq %u\n",
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
187 seq);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
188 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
189
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
190 static void ggp_callback_add_buddy(PurpleConnection *gc, GList *row, gpointer user_data)
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
191 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
192 purple_blist_request_add_buddy(purple_connection_get_account(gc),
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
193 g_list_nth_data(row, 0), NULL, NULL);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
194 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
195
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
196 static void ggp_callback_im(PurpleConnection *gc, GList *row, gpointer user_data)
13642
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
197 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
198 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
199 PurpleConversation *conv;
13642
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
200 char *name;
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
201
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
202 account = purple_connection_get_account(gc);
13642
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
203
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
204 name = g_list_nth_data(row, 0);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
205 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
206 purple_conversation_present(conv);
13642
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
207 }
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
208
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
209 static void ggp_callback_find_buddies(PurpleConnection *gc, PurpleRequestFields *fields)
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
210 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
211 GGPInfo *info = purple_connection_get_protocol_data(gc);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
212 GGPSearchForm *form;
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
213 guint32 seq;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
214
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
215 form = ggp_search_form_new(GGP_SEARCH_TYPE_FULL);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
216
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
217 form->user_data = info;
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
218 form->lastname = g_strdup(
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
219 purple_request_fields_get_string(fields, "lastname"));
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
220 form->firstname = g_strdup(
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
221 purple_request_fields_get_string(fields, "firstname"));
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
222 form->nickname = g_strdup(
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
223 purple_request_fields_get_string(fields, "nickname"));
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
224 form->city = g_strdup(
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
225 purple_request_fields_get_string(fields, "city"));
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
226 form->birthyear = g_strdup(
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
227 purple_request_fields_get_string(fields, "year"));
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
228
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
229 switch (purple_request_fields_get_choice(fields, "gender")) {
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
230 case 1:
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
231 form->gender = g_strdup(GG_PUBDIR50_GENDER_MALE);
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
232 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
233 case 2:
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
234 form->gender = g_strdup(GG_PUBDIR50_GENDER_FEMALE);
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
235 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
236 default:
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
237 form->gender = NULL;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
238 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
239 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
240
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
241 form->active = purple_request_fields_get_bool(fields, "active")
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
242 ? g_strdup(GG_PUBDIR50_ACTIVE_TRUE) : NULL;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
243
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
244 seq = ggp_search_start(gc, form);
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
245 ggp_search_add(info->searches, seq, form);
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
246 purple_debug_info("gg", "ggp_callback_find_buddies(): Added seq %u\n",
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
247 seq);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
248 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
249
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
250 static void ggp_find_buddies(PurplePluginAction *action)
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
251 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
252 PurpleConnection *gc = (PurpleConnection *)action->context;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
253
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
254 PurpleRequestFields *fields;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
255 PurpleRequestFieldGroup *group;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
256 PurpleRequestField *field;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
257
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
258 fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
259 group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
260 purple_request_fields_add_group(fields, group);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
261
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
262 field = purple_request_field_string_new("lastname",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
263 _("Last name"), NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
264 purple_request_field_string_set_masked(field, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
265 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
266
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
267 field = purple_request_field_string_new("firstname",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
268 _("First name"), NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
269 purple_request_field_string_set_masked(field, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
270 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
271
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
272 field = purple_request_field_string_new("nickname",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
273 _("Nickname"), NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
274 purple_request_field_string_set_masked(field, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
275 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
276
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
277 field = purple_request_field_string_new("city",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
278 _("City"), NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
279 purple_request_field_string_set_masked(field, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
280 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
281
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
282 field = purple_request_field_string_new("year",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
283 _("Year of birth"), NULL, FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
284 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
285
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
286 field = purple_request_field_choice_new("gender", _("Gender"), 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
287 purple_request_field_choice_add(field, _("Male or female"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
288 purple_request_field_choice_add(field, _("Male"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
289 purple_request_field_choice_add(field, _("Female"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
290 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
291
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
292 field = purple_request_field_bool_new("active",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
293 _("Only online"), FALSE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
294 purple_request_field_group_add_field(group, field);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
295
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
296 purple_request_fields(gc,
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
297 _("Find buddies"),
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
298 _("Find buddies"),
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
299 _("Please, enter your search criteria below"),
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
300 fields,
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
301 _("OK"), G_CALLBACK(ggp_callback_find_buddies),
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
302 _("Cancel"), NULL,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
303 purple_connection_get_account(gc), NULL, NULL,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
304 gc);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
305 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
306
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
307 /* ----- CONFERENCES ---------------------------------------------------- */
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
308
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
309 static void ggp_callback_add_to_chat_ok(PurpleBuddy *buddy, PurpleRequestFields *fields)
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
310 {
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
311 PurpleConnection *conn;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
312 PurpleRequestField *field;
18190
bcf28ef7e8ff Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents: 17455
diff changeset
313 GList *sel;
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
314
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
315 conn = purple_account_get_connection(purple_buddy_get_account(buddy));
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
316
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
317 g_return_if_fail(conn != NULL);
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
318
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
319 field = purple_request_fields_get_field(fields, "name");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
320 sel = purple_request_field_list_get_selected(field);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
321
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
322 if (sel == NULL) {
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
323 purple_debug_error("gg", "No chat selected\n");
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
324 return;
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
325 }
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
326
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
327 ggp_confer_participants_add_uin(conn, sel->data,
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
328 ggp_str_to_uin(purple_buddy_get_name(buddy)));
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
329 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
330
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
331 static void ggp_bmenu_add_to_chat(PurpleBlistNode *node, gpointer ignored)
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
332 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
333 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
334 PurpleConnection *gc;
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
335 GGPInfo *info;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
336
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
337 PurpleRequestFields *fields;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
338 PurpleRequestFieldGroup *group;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
339 PurpleRequestField *field;
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
340
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
341 GList *l;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
342 gchar *msg;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
343
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
344 buddy = (PurpleBuddy *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
345 gc = purple_account_get_connection(purple_buddy_get_account(buddy));
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
346 info = purple_connection_get_protocol_data(gc);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
347
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
348 fields = purple_request_fields_new();
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
349 group = purple_request_field_group_new(NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
350 purple_request_fields_add_group(fields, group);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
351
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
352 field = purple_request_field_list_new("name", "Chat name");
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
353 for (l = info->chats; l != NULL; l = l->next) {
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
354 GGPChat *chat = l->data;
32531
5c85c02694e1 Remove deprecated purple_request_field_list_add().
Andrew Victor <andrew.victor@mxit.com>
parents: 32338
diff changeset
355 purple_request_field_list_add_icon(field, chat->name, NULL, chat->name);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
356 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
357 purple_request_field_group_add_field(group, field);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
358
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
359 msg = g_strdup_printf(_("Select a chat for buddy: %s"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
360 purple_buddy_get_alias(buddy));
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
361 purple_request_fields(gc,
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
362 _("Add to chat..."),
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
363 _("Add to chat..."),
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
364 msg,
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
365 fields,
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
366 _("Add"), G_CALLBACK(ggp_callback_add_to_chat_ok),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 15884
diff changeset
367 _("Cancel"), NULL,
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
368 purple_connection_get_account(gc), NULL, NULL,
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
369 buddy);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
370 g_free(msg);
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
371 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
372
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
373 /* ----- BLOCK BUDDIES -------------------------------------------------- */
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
374
31938
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
375 static void ggp_add_deny(PurpleConnection *gc, const char *who)
11410
08212b2e6083 [gaim-migrate @ 13647]
Bartosz Oler <bartosz@pidgin.im>
parents: 11397
diff changeset
376 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
377 GGPInfo *info = purple_connection_get_protocol_data(gc);
31938
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
378 uin_t uin = ggp_str_to_uin(who);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
379
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
380 purple_debug_info("gg", "ggp_add_deny: %u\n", uin);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
381
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
382 gg_remove_notify_ex(info->session, uin, GG_USER_NORMAL);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
383 gg_add_notify_ex(info->session, uin, GG_USER_BLOCKED);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
384 }
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
385
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
386 static void ggp_rem_deny(PurpleConnection *gc, const char *who)
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
387 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
388 GGPInfo *info = purple_connection_get_protocol_data(gc);
31938
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
389 uin_t uin = ggp_str_to_uin(who);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
390
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
391 purple_debug_info("gg", "ggp_rem_deny: %u\n", uin);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
392
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
393 gg_remove_notify_ex(info->session, uin, GG_USER_BLOCKED);
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
394 gg_add_notify_ex(info->session, uin, GG_USER_NORMAL);
11410
08212b2e6083 [gaim-migrate @ 13647]
Bartosz Oler <bartosz@pidgin.im>
parents: 11397
diff changeset
395 }
08212b2e6083 [gaim-migrate @ 13647]
Bartosz Oler <bartosz@pidgin.im>
parents: 11397
diff changeset
396
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
397 /* ---------------------------------------------------------------------- */
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
398 /* ----- INTERNAL CALLBACKS --------------------------------------------- */
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
399 /* ---------------------------------------------------------------------- */
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
400
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
401
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
402 static void ggp_sr_close_cb(gpointer user_data)
12220
2eecc6f28334 [gaim-migrate @ 14522]
Bartosz Oler <bartosz@pidgin.im>
parents: 12216
diff changeset
403 {
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
404 GGPSearchForm *form = user_data;
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
405 GGPInfo *info = form->user_data;
12220
2eecc6f28334 [gaim-migrate @ 14522]
Bartosz Oler <bartosz@pidgin.im>
parents: 12216
diff changeset
406
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
407 ggp_search_remove(info->searches, form->seq);
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
408 purple_debug_info("gg", "ggp_sr_close_cb(): Removed seq %u\n",
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
409 form->seq);
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
410 ggp_search_form_destroy(form);
12220
2eecc6f28334 [gaim-migrate @ 14522]
Bartosz Oler <bartosz@pidgin.im>
parents: 12216
diff changeset
411 }
2eecc6f28334 [gaim-migrate @ 14522]
Bartosz Oler <bartosz@pidgin.im>
parents: 12216
diff changeset
412
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
413 static void ggp_pubdir_handle_info(PurpleConnection *gc, gg_pubdir50_t req,
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
414 GGPSearchForm *form)
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
415 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
416 PurpleNotifyUserInfo *user_info;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
417 PurpleBuddy *buddy;
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
418 char *val, *who;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
419
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
420 user_info = purple_notify_user_info_new();
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
421
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
422
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
423 val = ggp_search_get_result(req, 0, GG_PUBDIR50_STATUS);
33342
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
424 purple_notify_user_info_add_pair_plaintext(user_info, _("Status"),
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
425 ggp_status_get_name(ggp_status_to_purplestatus(atoi(val))));
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
426 g_free(val);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
427
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
428 who = ggp_search_get_result(req, 0, GG_PUBDIR50_UIN);
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
429 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
430 or if we should be using add_pair_plaintext */
32191
a4668d9dc8d1 Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
431 purple_notify_user_info_add_pair_html(user_info, _("UIN"), who);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
432
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
433 val = ggp_search_get_result(req, 0, GG_PUBDIR50_FIRSTNAME);
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
434 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
435 or if we should be using add_pair_plaintext */
32191
a4668d9dc8d1 Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
436 purple_notify_user_info_add_pair_html(user_info, _("First Name"), val);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
437 g_free(val);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
438
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
439 val = ggp_search_get_result(req, 0, GG_PUBDIR50_NICKNAME);
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
440 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
441 or if we should be using add_pair_plaintext */
32191
a4668d9dc8d1 Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
442 purple_notify_user_info_add_pair_html(user_info, _("Nickname"), val);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
443 g_free(val);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
444
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
445 val = ggp_search_get_result(req, 0, GG_PUBDIR50_CITY);
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
446 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
447 or if we should be using add_pair_plaintext */
32191
a4668d9dc8d1 Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
448 purple_notify_user_info_add_pair_html(user_info, _("City"), val);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
449 g_free(val);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
450
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
451 val = ggp_search_get_result(req, 0, GG_PUBDIR50_BIRTHYEAR);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15196
diff changeset
452 if (strncmp(val, "0", 1)) {
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
453 /* TODO: Check whether it's correct to call add_pair_html,
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
454 or if we should be using add_pair_plaintext */
32191
a4668d9dc8d1 Rename purple_notify_user_info_add_pair to
Mark Doliner <markdoliner@pidgin.im>
parents: 32188
diff changeset
455 purple_notify_user_info_add_pair_html(user_info, _("Birth Year"), val);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
456 }
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
457 g_free(val);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
458
15294
4d3cd3c5b5a6 [gaim-migrate @ 18022]
Bartosz Oler <bartosz@pidgin.im>
parents: 15291
diff changeset
459 /*
4d3cd3c5b5a6 [gaim-migrate @ 18022]
Bartosz Oler <bartosz@pidgin.im>
parents: 15291
diff changeset
460 * Include a status message, if exists and buddy is in the blist.
4d3cd3c5b5a6 [gaim-migrate @ 18022]
Bartosz Oler <bartosz@pidgin.im>
parents: 15291
diff changeset
461 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
462 buddy = purple_find_buddy(purple_connection_get_account(gc), who);
33342
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
463 if (NULL != buddy)
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
464 {
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
465 gchar *msg;
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
466
33342
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
467 ggp_status_from_purplestatus(purple_presence_get_active_status(
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
468 purple_buddy_get_presence(buddy)), &msg);
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
469 if (msg != NULL)
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
470 purple_notify_user_info_add_pair_plaintext(user_info,
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
471 _("Message"), msg);
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
472 g_free(msg);
15294
4d3cd3c5b5a6 [gaim-migrate @ 18022]
Bartosz Oler <bartosz@pidgin.im>
parents: 15291
diff changeset
473 }
4d3cd3c5b5a6 [gaim-migrate @ 18022]
Bartosz Oler <bartosz@pidgin.im>
parents: 15291
diff changeset
474
18629
9e78088bfc46 Close temporary Get Info window when showing the real one. Fixes #1720.
Bartosz Oler <bartosz@pidgin.im>
parents: 18190
diff changeset
475 purple_notify_userinfo(gc, who, user_info, ggp_sr_close_cb, form);
15294
4d3cd3c5b5a6 [gaim-migrate @ 18022]
Bartosz Oler <bartosz@pidgin.im>
parents: 15291
diff changeset
476 g_free(who);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
477 purple_notify_user_info_destroy(user_info);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
478 }
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
479
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
480 static void ggp_pubdir_handle_full(PurpleConnection *gc, gg_pubdir50_t req,
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
481 GGPSearchForm *form)
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
482 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
483 PurpleNotifySearchResults *results;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
484 PurpleNotifySearchColumn *column;
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
485 int res_count;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
486 int start;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
487 int i;
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
488
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
489 g_return_if_fail(form != NULL);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
490
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
491 res_count = gg_pubdir50_count(req);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
492 res_count = (res_count > PUBDIR_RESULTS_MAX) ? PUBDIR_RESULTS_MAX : res_count;
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
493 if (form->page_size == 0)
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
494 form->page_size = res_count;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
495
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
496 results = purple_notify_searchresults_new();
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
497
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
498 if (results == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
499 purple_debug_error("gg", "ggp_pubdir_reply_handler: "
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
500 "Unable to display the search results.\n");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
501 purple_notify_error(gc, NULL,
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
502 _("Unable to display the search results."),
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
503 NULL);
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
504 if (form->window == NULL)
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
505 ggp_sr_close_cb(form);
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
506 return;
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
507 }
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
508
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
509 column = purple_notify_searchresults_column_new(_("UIN"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
510 purple_notify_searchresults_column_add(results, column);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
511
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
512 column = purple_notify_searchresults_column_new(_("First Name"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
513 purple_notify_searchresults_column_add(results, column);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
514
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
515 column = purple_notify_searchresults_column_new(_("Nickname"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
516 purple_notify_searchresults_column_add(results, column);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
517
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
518 column = purple_notify_searchresults_column_new(_("City"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
519 purple_notify_searchresults_column_add(results, column);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
520
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
521 column = purple_notify_searchresults_column_new(_("Birth Year"));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
522 purple_notify_searchresults_column_add(results, column);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
523
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
524 purple_debug_info("gg", "Going with %d entries\n", res_count);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
525
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
526 start = (int)ggp_str_to_uin(gg_pubdir50_get(req, 0, GG_PUBDIR50_START));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
527 purple_debug_info("gg", "start = %d\n", start);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
528
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
529 for (i = 0; i < res_count; i++) {
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
530 GList *row = NULL;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
531 char *birth = ggp_search_get_result(req, i, GG_PUBDIR50_BIRTHYEAR);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
532
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
533 /* TODO: Status will be displayed as an icon. */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
534 /* row = g_list_append(row, ggp_search_get_result(req, i, GG_PUBDIR50_STATUS)); */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
535 row = g_list_append(row, ggp_search_get_result(req, i,
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
536 GG_PUBDIR50_UIN));
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
537 row = g_list_append(row, ggp_search_get_result(req, i,
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
538 GG_PUBDIR50_FIRSTNAME));
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
539 row = g_list_append(row, ggp_search_get_result(req, i,
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
540 GG_PUBDIR50_NICKNAME));
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
541 row = g_list_append(row, ggp_search_get_result(req, i,
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
542 GG_PUBDIR50_CITY));
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
543 row = g_list_append(row,
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
544 (birth && strncmp(birth, "0", 1)) ? birth : g_strdup("-"));
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
545
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
546 purple_notify_searchresults_row_add(results, row);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
547 }
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
548
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
549 purple_notify_searchresults_button_add(results, PURPLE_NOTIFY_BUTTON_CONTINUE,
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
550 ggp_callback_show_next);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
551 purple_notify_searchresults_button_add(results, PURPLE_NOTIFY_BUTTON_ADD,
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
552 ggp_callback_add_buddy);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
553 purple_notify_searchresults_button_add(results, PURPLE_NOTIFY_BUTTON_IM,
13642
43cc4f6ca8e1 [gaim-migrate @ 16039]
Bartosz Oler <bartosz@pidgin.im>
parents: 13641
diff changeset
554 ggp_callback_im);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
555
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
556 if (form->window == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
557 void *h = purple_notify_searchresults(gc,
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
558 _("Gadu-Gadu Public Directory"),
12220
2eecc6f28334 [gaim-migrate @ 14522]
Bartosz Oler <bartosz@pidgin.im>
parents: 12216
diff changeset
559 _("Search results"), NULL, results,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
560 (PurpleNotifyCloseCallback)ggp_sr_close_cb,
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
561 form);
12257
bc979ba39363 [gaim-migrate @ 14559]
Bartosz Oler <bartosz@pidgin.im>
parents: 12220
diff changeset
562
12277
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
563 if (h == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
564 purple_debug_error("gg", "ggp_pubdir_reply_handler: "
12277
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
565 "Unable to display the search results.\n");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
566 purple_notify_error(gc, NULL,
12277
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
567 _("Unable to display the search results."),
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
568 NULL);
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
569 return;
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
570 }
6e45a609022c [gaim-migrate @ 14581]
Richard Laager <rlaager@pidgin.im>
parents: 12258
diff changeset
571
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
572 form->window = h;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
573 } else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
574 purple_notify_searchresults_new_rows(gc, results, form->window);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
575 }
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
576 }
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
577
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
578 static void ggp_pubdir_reply_handler(PurpleConnection *gc, gg_pubdir50_t req)
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
579 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
580 GGPInfo *info = purple_connection_get_protocol_data(gc);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
581 GGPSearchForm *form;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
582 int res_count;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
583 guint32 seq;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
584
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
585 seq = gg_pubdir50_seq(req);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
586 form = ggp_search_get(info->searches, seq);
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
587 purple_debug_info("gg",
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
588 "ggp_pubdir_reply_handler(): seq %u --> form %p\n", seq, form);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
589 /*
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
590 * this can happen when user will request more results
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
591 * and close the results window before they arrive.
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
592 */
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
593 g_return_if_fail(form != NULL);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
594
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
595 res_count = gg_pubdir50_count(req);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
596 if (res_count < 1) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
597 purple_debug_info("gg", "GG_EVENT_PUBDIR50_SEARCH_REPLY: Nothing found\n");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
598 purple_notify_error(gc, NULL,
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
599 _("No matching users found"),
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
600 _("There are no users matching your search criteria."));
31879
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
601 if (form->window == NULL)
6c34fd3b36f4 Fixed searching for buddies in Gadu-Gadu public directory. Fixes #5242
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31874
diff changeset
602 ggp_sr_close_cb(form);
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
603 return;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
604 }
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
605
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
606 switch (form->search_type) {
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
607 case GGP_SEARCH_TYPE_INFO:
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
608 ggp_pubdir_handle_info(gc, req, form);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
609 break;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
610 case GGP_SEARCH_TYPE_FULL:
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
611 ggp_pubdir_handle_full(gc, req, form);
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
612 break;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
613 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
614 purple_debug_warning("gg", "Unknown search_type!\n");
13643
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
615 break;
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
616 }
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
617 }
1a69e962e3b4 [gaim-migrate @ 16040]
Bartosz Oler <bartosz@pidgin.im>
parents: 13642
diff changeset
618
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
619 /**
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
620 * Dispatch a message received from a buddy.
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
621 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
622 * @param gc PurpleConnection.
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
623 * @param ev Gadu-Gadu event structure.
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
624 *
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
625 * Image receiving, some code borrowed from Kadu http://www.kadu.net
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
626 */
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
627 void ggp_recv_message_handler(PurpleConnection *gc, const struct gg_event_msg *ev, gboolean multilogon)
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
628 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
629 GGPInfo *info = purple_connection_get_protocol_data(gc);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
630 PurpleConversation *conv;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
631 gchar *from;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
632 gchar *msg;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
633 gchar *tmp;
32645
262c9ba5fe13 Gadu-Gadu: Show local time for incoming messages. Fixes #4579
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32644
diff changeset
634 time_t mtime;
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
635 uin_t sender = ev->sender;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
636
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
637 if (ev->message == NULL)
31611
764040623eb1 When somebody sends me an image, I get some (depends on image size) empty
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31595
diff changeset
638 {
764040623eb1 When somebody sends me an image, I get some (depends on image size) empty
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31595
diff changeset
639 purple_debug_warning("gg", "ggp_recv_message_handler: NULL as message pointer\n");
764040623eb1 When somebody sends me an image, I get some (depends on image size) empty
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31595
diff changeset
640 return;
764040623eb1 When somebody sends me an image, I get some (depends on image size) empty
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31595
diff changeset
641 }
764040623eb1 When somebody sends me an image, I get some (depends on image size) empty
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31595
diff changeset
642
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
643 from = g_strdup_printf("%lu", (unsigned long int)ev->sender);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
644
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
645 tmp = g_strdup_printf("%s", ev->message);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
646 purple_str_strip_char(tmp, '\r');
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
647 msg = g_markup_escape_text(tmp, -1);
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
648 g_free(tmp);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
649
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
650 if (ev->msgclass & GG_CLASS_QUEUED)
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
651 mtime = ev->time;
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
652 else
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
653 mtime = time(NULL);
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
654
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
655 /* We got richtext message */
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
656 if (ev->formats_length)
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
657 {
24746
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
658 gboolean got_image = FALSE, bold = FALSE, italic = FALSE, under = FALSE;
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
659 char *cformats = (char *)ev->formats;
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
660 char *cformats_end = cformats + ev->formats_length;
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
661 gint increased_len = 0;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
662 struct gg_msg_richtext_format *actformat;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
663 struct gg_msg_richtext_image *actimage;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
664 GString *message = g_string_new(msg);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
665
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
666 purple_debug_info("gg", "ggp_recv_message_handler: richtext msg from (%s): %s %i formats\n", from, msg, ev->formats_length);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
667
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
668 while (cformats < cformats_end)
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
669 {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
670 gint byteoffset;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
671 actformat = (struct gg_msg_richtext_format *)cformats;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
672 cformats += sizeof(struct gg_msg_richtext_format);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
673 byteoffset = g_utf8_offset_to_pointer(message->str, actformat->position + increased_len) - message->str;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
674
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
675 if(actformat->position == 0 && actformat->font == 0) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
676 purple_debug_warning("gg", "ggp_recv_message_handler: bogus formatting (inc: %i)\n", increased_len);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
677 continue;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
678 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
679 purple_debug_info("gg", "ggp_recv_message_handler: format at pos: %i, image:%i, bold:%i, italic: %i, under:%i (inc: %i)\n",
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
680 actformat->position,
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
681 (actformat->font & GG_FONT_IMAGE) != 0,
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
682 (actformat->font & GG_FONT_BOLD) != 0,
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
683 (actformat->font & GG_FONT_ITALIC) != 0,
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
684 (actformat->font & GG_FONT_UNDERLINE) != 0,
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
685 increased_len);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
686
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
687 if (actformat->font & GG_FONT_IMAGE)
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
688 {
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
689 const char *placeholder;
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
690
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
691 got_image = TRUE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
692 actimage = (struct gg_msg_richtext_image*)(cformats);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
693 cformats += sizeof(struct gg_msg_richtext_image);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
694 purple_debug_info("gg", "ggp_recv_message_handler: image received, size: %d, crc32: %i\n", actimage->size, actimage->crc32);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
695
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
696 /* Checking for errors, image size shouldn't be
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
697 * larger than 255.000 bytes */
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
698 if (actimage->size > 255000) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
699 purple_debug_warning("gg", "ggp_recv_message_handler: received image large than 255 kb\n");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
700 continue;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
701 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
702
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
703 gg_image_request(info->session, ev->sender,
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
704 actimage->size, actimage->crc32);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
705
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
706 placeholder = ggp_image_pending_placeholder(actimage->crc32);
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
707 g_string_insert(message, byteoffset, placeholder);
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
708 increased_len += strlen(placeholder);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
709 continue;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
710 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
711
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
712 if (actformat->font & GG_FONT_BOLD) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
713 if (bold == FALSE) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
714 g_string_insert(message, byteoffset, "<b>");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
715 increased_len += 3;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
716 bold = TRUE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
717 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
718 } else if (bold) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
719 g_string_insert(message, byteoffset, "</b>");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
720 increased_len += 4;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
721 bold = FALSE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
722 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
723
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
724 if (actformat->font & GG_FONT_ITALIC) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
725 if (italic == FALSE) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
726 g_string_insert(message, byteoffset, "<i>");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
727 increased_len += 3;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
728 italic = TRUE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
729 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
730 } else if (italic) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
731 g_string_insert(message, byteoffset, "</i>");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
732 increased_len += 4;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
733 italic = FALSE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
734 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
735
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
736 if (actformat->font & GG_FONT_UNDERLINE) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
737 if (under == FALSE) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
738 g_string_insert(message, byteoffset, "<u>");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
739 increased_len += 3;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
740 under = TRUE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
741 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
742 } else if (under) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
743 g_string_insert(message, byteoffset, "</u>");
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
744 increased_len += 4;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
745 under = FALSE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
746 }
31386
85d81b2b1142 gg: Prevent dropping whole messages when the text is colored. Fixes #13259.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31294
diff changeset
747
85d81b2b1142 gg: Prevent dropping whole messages when the text is colored. Fixes #13259.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31294
diff changeset
748 if (actformat->font & GG_FONT_COLOR) {
85d81b2b1142 gg: Prevent dropping whole messages when the text is colored. Fixes #13259.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31294
diff changeset
749 cformats += sizeof(struct gg_msg_richtext_color);
85d81b2b1142 gg: Prevent dropping whole messages when the text is colored. Fixes #13259.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31294
diff changeset
750 }
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
751 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
752
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
753 msg = message->str;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
754 g_string_free(message, FALSE);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
755
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
756 if (got_image)
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
757 {
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
758 ggp_image_got_im(gc, sender, msg, mtime);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
759 return;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
760 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
761 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
762
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
763 purple_debug_info("gg", "ggp_recv_message_handler: msg from (%s): %s (class = %d; rcpt_count = %d; multilogon = %d)\n",
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
764 from, msg, ev->msgclass,
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
765 ev->recipients_count,
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
766 multilogon);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
767
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
768 if (multilogon && ev->recipients_count != 0) {
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
769 purple_debug_warning("gg", "ggp_recv_message_handler: conference multilogon messages are not yet handled\n");
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
770 } else if (multilogon) {
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
771 PurpleAccount *account = purple_connection_get_account(gc);
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
772 PurpleConversation *conv;
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
773 const gchar *who = ggp_uin_to_str(ev->sender); // not really sender
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
774 conv = purple_find_conversation_with_account(
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
775 PURPLE_CONV_TYPE_IM, who, account);
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
776 if (conv == NULL)
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
777 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who);
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
778 purple_conversation_write(conv, purple_account_get_username(account), msg, PURPLE_MESSAGE_SEND, mtime);
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
779 } else if (ev->recipients_count == 0) {
32645
262c9ba5fe13 Gadu-Gadu: Show local time for incoming messages. Fixes #4579
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32644
diff changeset
780 serv_got_im(gc, from, msg, 0, mtime);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
781 } else {
12373
a8f71f73576d [gaim-migrate @ 14677]
Richard Laager <rlaager@pidgin.im>
parents: 12277
diff changeset
782 const char *chat_name;
a8f71f73576d [gaim-migrate @ 14677]
Richard Laager <rlaager@pidgin.im>
parents: 12277
diff changeset
783 int chat_id;
a8f71f73576d [gaim-migrate @ 14677]
Richard Laager <rlaager@pidgin.im>
parents: 12277
diff changeset
784
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
785 chat_name = ggp_confer_find_by_participants(gc,
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
786 ev->recipients,
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
787 ev->recipients_count);
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
788
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
789 if (chat_name == NULL) {
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
790 chat_name = ggp_confer_add_new(gc, NULL);
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
791 serv_got_joined_chat(gc, info->chats_count, chat_name);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
792
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
793 ggp_confer_participants_add_uin(gc, chat_name,
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
794 ev->sender);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
795
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
796 ggp_confer_participants_add(gc, chat_name,
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
797 ev->recipients,
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
798 ev->recipients_count);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
799 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
800 conv = ggp_confer_find_by_name(gc, chat_name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
801 chat_id = purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv));
12373
a8f71f73576d [gaim-migrate @ 14677]
Richard Laager <rlaager@pidgin.im>
parents: 12277
diff changeset
802
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
803 serv_got_chat_in(gc, chat_id,
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
804 ggp_buddylist_get_buddy_name(gc, ev->sender),
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
805 PURPLE_MESSAGE_RECV, msg, mtime);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
806 }
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
807 g_free(msg);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
808 g_free(from);
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
809 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
810
31630
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
811 static void ggp_typing_notification_handler(PurpleConnection *gc, uin_t uin, int length) {
31795
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
812 gchar *from;
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
813
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
814 from = g_strdup_printf("%u", uin);
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
815 if (length)
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
816 serv_got_typing(gc, from, 0, PURPLE_TYPING);
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
817 else
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
818 serv_got_typing_stopped(gc, from);
ee01a0566a86 Small space to tab changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31739
diff changeset
819 g_free(from);
31630
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
820 }
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
821
31665
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
822 /**
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
823 * Handling of XML events.
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
824 *
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
825 * @param gc PurpleConnection.
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
826 * @param data Raw XML contents.
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
827 *
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
828 * @see http://toxygen.net/libgadu/protocol/#ch1.13
33313
5a0c6582d5b1 Gadu-Gadu: refactoring of buddy avatars handling. Fixes #13739, #14305
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33311
diff changeset
829 * @todo: this may not be necessary anymore
31665
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
830 */
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
831 static void ggp_xml_event_handler(PurpleConnection *gc, char *data)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
832 {
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
833 xmlnode *xml = NULL;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
834 xmlnode *xmlnode_next_event;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
835
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
836 xml = xmlnode_from_str(data, -1);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
837 if (xml == NULL)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
838 goto out;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
839
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
840 xmlnode_next_event = xmlnode_get_child(xml, "event");
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
841 while (xmlnode_next_event != NULL)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
842 {
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
843 xmlnode *xmlnode_current_event = xmlnode_next_event;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
844
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
845 xmlnode *xmlnode_type;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
846 char *event_type_raw;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
847 int event_type = 0;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
848
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
849 xmlnode *xmlnode_sender;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
850 char *event_sender_raw;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
851 uin_t event_sender = 0;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
852
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
853 xmlnode_next_event = xmlnode_get_next_twin(xmlnode_next_event);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
854
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
855 xmlnode_type = xmlnode_get_child(xmlnode_current_event, "type");
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
856 if (xmlnode_type == NULL)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
857 continue;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
858 event_type_raw = xmlnode_get_data(xmlnode_type);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
859 if (event_type_raw != NULL)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
860 event_type = atoi(event_type_raw);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
861 g_free(event_type_raw);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
862
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
863 xmlnode_sender = xmlnode_get_child(xmlnode_current_event, "sender");
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
864 if (xmlnode_sender != NULL)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
865 {
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
866 event_sender_raw = xmlnode_get_data(xmlnode_sender);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
867 if (event_sender_raw != NULL)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
868 event_sender = ggp_str_to_uin(event_sender_raw);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
869 g_free(event_sender_raw);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
870 }
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
871
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
872 switch (event_type)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
873 {
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
874 case 28: /* avatar update */
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
875 purple_debug_info("gg",
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
876 "ggp_xml_event_handler: avatar updated (uid: %u)\n",
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
877 event_sender);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
878 break;
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
879 default:
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
880 purple_debug_error("gg",
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
881 "ggp_xml_event_handler: unsupported event type=%d from=%u\n",
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
882 event_type, event_sender);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
883 }
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
884 }
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
885
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
886 out:
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
887 if (xml)
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
888 xmlnode_free(xml);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
889 }
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
890
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
891 static void ggp_callback_recv(gpointer _gc, gint fd, PurpleInputCondition cond)
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
892 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
893 PurpleConnection *gc = _gc;
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
894 GGPInfo *info = purple_connection_get_protocol_data(gc);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
895 struct gg_event *ev;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
896
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
897 if (!(ev = gg_watch_fd(info->session))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
898 purple_debug_error("gg",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
899 "ggp_callback_recv: gg_watch_fd failed -- CRITICAL!\n");
32157
39ba2e2492ee Rename purple_connection_error_reason to purple_connection_error
Mark Doliner <markdoliner@pidgin.im>
parents: 32147
diff changeset
900 purple_connection_error (gc,
21279
40685e1f50ca Rename:
Will Thompson <resiak@pidgin.im>
parents: 20437
diff changeset
901 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
27626
62fbae50be08 Connection error message changes for gg, and a few other strings changes.
Mark Doliner <markdoliner@pidgin.im>
parents: 27388
diff changeset
902 _("Unable to read from socket"));
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
903 return;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
904 }
31661
2a8aceaee628 Don't update last_received when receiving data on gg. Fixes #13699.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31649
diff changeset
905
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
906 switch (ev->type) {
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
907 case GG_EVENT_NONE:
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
908 /* Nothing happened. */
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
909 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
910 case GG_EVENT_MSG:
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
911 ggp_recv_message_handler(gc, &ev->event.msg, FALSE);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
912 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
913 case GG_EVENT_ACK:
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
914 /* Changing %u to %i fixes compiler warning */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
915 purple_debug_info("gg",
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
916 "ggp_callback_recv: message sent to: %i, delivery status=%d, seq=%d\n",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
917 ev->event.ack.recipient, ev->event.ack.status,
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
918 ev->event.ack.seq);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
919 break;
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
920 case GG_EVENT_IMAGE_REPLY:
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
921 ggp_image_recv(gc, &ev->event.image_reply);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
922 break;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
923 case GG_EVENT_IMAGE_REQUEST:
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
924 ggp_image_send(gc, &ev->event.image_request);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
925 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
926 case GG_EVENT_NOTIFY60:
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
927 case GG_EVENT_STATUS60:
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
928 ggp_status_got_others(gc, ev);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
929 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
930 case GG_EVENT_PUBDIR50_SEARCH_REPLY:
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
931 ggp_pubdir_reply_handler(gc, ev->event.pubdir50);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
932 break;
31630
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
933 case GG_EVENT_TYPING_NOTIFICATION:
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
934 ggp_typing_notification_handler(gc, ev->event.typing_notification.uin,
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
935 ev->event.typing_notification.length);
47b2ee63a797 Gadu-Gadu: Support receiving typing indications. Fixes #13362.
Jan Zachorowski <quantifier666@gmail.com>
parents: 31628
diff changeset
936 break;
31665
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
937 case GG_EVENT_XML_EVENT:
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
938 purple_debug_info("gg", "GG_EVENT_XML_EVENT\n");
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
939 ggp_xml_event_handler(gc, ev->event.xml_event.data);
1854b313a9bb Recently I found out a small issue: if another user changes it's avatar, we
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31663
diff changeset
940 break;
33296
33a9adb52028 Enable receiving of user_data packets
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33295
diff changeset
941 case GG_EVENT_USER_DATA:
33313
5a0c6582d5b1 Gadu-Gadu: refactoring of buddy avatars handling. Fixes #13739, #14305
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33311
diff changeset
942 ggp_events_user_data(gc, &ev->event.user_data);
33296
33a9adb52028 Enable receiving of user_data packets
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33295
diff changeset
943 break;
33314
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
944 case GG_EVENT_USERLIST100_VERSION:
33315
42bbe5b85df8 Gadu-Gadu: roster - uploading/synchronization - part1
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33314
diff changeset
945 ggp_roster_version(gc, &ev->event.userlist100_version);
33314
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
946 break;
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
947 case GG_EVENT_USERLIST100_REPLY:
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
948 ggp_roster_reply(gc, &ev->event.userlist100_reply);
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
949 break;
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
950 case GG_EVENT_MULTILOGON_MSG:
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
951 ggp_multilogon_msg(gc, &ev->event.multilogon_msg);
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
952 break;
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
953 case GG_EVENT_MULTILOGON_INFO:
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
954 ggp_multilogon_info(gc, &ev->event.multilogon_info);
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
955 break;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
956 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
957 purple_debug_error("gg",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
958 "unsupported event type=%d\n", ev->type);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
959 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
960 }
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
961
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
962 gg_free_event(ev);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
963 }
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
964
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
965 static void ggp_async_login_handler(gpointer _gc, gint fd, PurpleInputCondition cond)
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
966 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
967 PurpleConnection *gc = _gc;
15419
c8f83c72739d [gaim-migrate @ 18150]
Evan Schoenberg <evands@pidgin.im>
parents: 15294
diff changeset
968 GGPInfo *info;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
969 struct gg_event *ev;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
970
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
971 g_return_if_fail(PURPLE_CONNECTION_IS_VALID(gc));
15419
c8f83c72739d [gaim-migrate @ 18150]
Evan Schoenberg <evands@pidgin.im>
parents: 15294
diff changeset
972
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
973 info = purple_connection_get_protocol_data(gc);
15419
c8f83c72739d [gaim-migrate @ 18150]
Evan Schoenberg <evands@pidgin.im>
parents: 15294
diff changeset
974
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
975 purple_debug_info("gg", "login_handler: session: check = %d; state = %d;\n",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
976 info->session->check, info->session->state);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
977
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
978 switch (info->session->state) {
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
979 case GG_STATE_RESOLVING:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
980 purple_debug_info("gg", "GG_STATE_RESOLVING\n");
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
981 break;
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
982 case GG_STATE_RESOLVING_GG:
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
983 purple_debug_info("gg", "GG_STATE_RESOLVING_GG\n");
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
984 break;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
985 case GG_STATE_CONNECTING_HUB:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
986 purple_debug_info("gg", "GG_STATE_CONNECTING_HUB\n");
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
987 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
988 case GG_STATE_READING_DATA:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
989 purple_debug_info("gg", "GG_STATE_READING_DATA\n");
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
990 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
991 case GG_STATE_CONNECTING_GG:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
992 purple_debug_info("gg", "GG_STATE_CONNECTING_GG\n");
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
993 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
994 case GG_STATE_READING_KEY:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
995 purple_debug_info("gg", "GG_STATE_READING_KEY\n");
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
996 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
997 case GG_STATE_READING_REPLY:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
998 purple_debug_info("gg", "GG_STATE_READING_REPLY\n");
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
999 break;
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1000 case GG_STATE_TLS_NEGOTIATION:
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1001 purple_debug_info("gg", "GG_STATE_TLS_NEGOTIATION\n");
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1002 break;
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1003 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1004 purple_debug_error("gg", "unknown state = %d\n",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1005 info->session->state);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1006 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1007 }
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1008
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1009 if (!(ev = gg_watch_fd(info->session))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1010 purple_debug_error("gg", "login_handler: gg_watch_fd failed!\n");
32157
39ba2e2492ee Rename purple_connection_error_reason to purple_connection_error
Mark Doliner <markdoliner@pidgin.im>
parents: 32147
diff changeset
1011 purple_connection_error (gc,
21279
40685e1f50ca Rename:
Will Thompson <resiak@pidgin.im>
parents: 20437
diff changeset
1012 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
27626
62fbae50be08 Connection error message changes for gg, and a few other strings changes.
Mark Doliner <markdoliner@pidgin.im>
parents: 27388
diff changeset
1013 _("Unable to read from socket"));
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1014 return;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1015 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1016 purple_debug_info("gg", "login_handler: session->fd = %d\n", info->session->fd);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1017 purple_debug_info("gg", "login_handler: session: check = %d; state = %d;\n",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1018 info->session->check, info->session->state);
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1019
32685
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1020 purple_input_remove(info->inpa);
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1021 info->inpa = 0;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1022
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1023 /** XXX I think that this shouldn't be done if ev->type is GG_EVENT_CONN_FAILED or GG_EVENT_CONN_SUCCESS -datallah */
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1024 if (info->session->fd >= 0)
32685
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1025 info->inpa = purple_input_add(info->session->fd,
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1026 (info->session->check == 1) ? PURPLE_INPUT_WRITE :
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1027 PURPLE_INPUT_READ,
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1028 ggp_async_login_handler, gc);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1029
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1030 switch (ev->type) {
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1031 case GG_EVENT_NONE:
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1032 /* Nothing happened. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1033 purple_debug_info("gg", "GG_EVENT_NONE\n");
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1034 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1035 case GG_EVENT_CONN_SUCCESS:
12964
3b3d00bb141b [gaim-migrate @ 15317]
Bartosz Oler <bartosz@pidgin.im>
parents: 12961
diff changeset
1036 {
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1037 const gchar * server_ip = ggp_ipv4_to_str(
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1038 info->session->server_addr);
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1039 purple_debug_info("gg", "GG_EVENT_CONN_SUCCESS:"
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1040 " successfully connected to %s\n",
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1041 server_ip);
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1042 ggp_servconn_add_server(server_ip);
32685
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1043 purple_input_remove(info->inpa);
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1044 info->inpa = purple_input_add(info->session->fd,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1045 PURPLE_INPUT_READ,
12964
3b3d00bb141b [gaim-migrate @ 15317]
Bartosz Oler <bartosz@pidgin.im>
parents: 12961
diff changeset
1046 ggp_callback_recv, gc);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30163
diff changeset
1047
30163
e43601d06035 gg: Fix misuse of update_progress. Fixes #11774
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 30138
diff changeset
1048 purple_connection_update_progress(gc, _("Connected"), 1, 2);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1049 purple_connection_set_state(gc, PURPLE_CONNECTED);
33316
f4ae8440063a Gadu-Gadu: roster - cleanups
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33315
diff changeset
1050
f4ae8440063a Gadu-Gadu: roster - cleanups
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33315
diff changeset
1051 ggp_buddylist_send(gc);
33318
636bfc28f2cf Gadu-Gadu: roster - finally working
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33316
diff changeset
1052 ggp_roster_request_update(gc);
12964
3b3d00bb141b [gaim-migrate @ 15317]
Bartosz Oler <bartosz@pidgin.im>
parents: 12961
diff changeset
1053 }
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1054 break;
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1055 case GG_EVENT_CONN_FAILED:
32685
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1056 purple_input_remove(info->inpa);
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1057 info->inpa = 0;
32646
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1058 purple_debug_info("gg", "Connection failure: %d\n",
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1059 ev->event.failure);
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1060 switch (ev->event.failure) {
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1061 case GG_FAILURE_RESOLVING:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1062 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1063 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1064 _("Unable to resolve "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1065 "hostname"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1066 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1067 case GG_FAILURE_PASSWORD:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1068 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1069 PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1070 _("Incorrect password"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1071 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1072 case GG_FAILURE_TLS:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1073 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1074 PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1075 _("SSL Connection Failed"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1076 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1077 case GG_FAILURE_INTRUDER:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1078 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1079 PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1080 _("Your account has been "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1081 "disabled because too many "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1082 "incorrect passwords were "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1083 "entered"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1084 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1085 case GG_FAILURE_UNAVAILABLE:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1086 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1087 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1088 _("Service temporarily "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1089 "unavailable"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1090 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1091 case GG_FAILURE_PROXY:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1092 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1093 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1094 _("Error connecting to proxy "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1095 "server"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1096 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1097 case GG_FAILURE_HUB:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1098 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1099 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1100 _("Error connecting to master "
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1101 "server"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1102 break;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1103 default:
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1104 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1105 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1106 _("Connection failed"));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1107 }
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1108 break;
31874
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1109 case GG_EVENT_MSG:
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1110 if (ev->event.msg.sender == 0)
32647
a8e9b3781df1 Gadu-Gadu: check for NULL pointer before logging system messages.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32646
diff changeset
1111 {
a8e9b3781df1 Gadu-Gadu: check for NULL pointer before logging system messages.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32646
diff changeset
1112 if (ev->event.msg.message == NULL)
a8e9b3781df1 Gadu-Gadu: check for NULL pointer before logging system messages.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32646
diff changeset
1113 break;
a8e9b3781df1 Gadu-Gadu: check for NULL pointer before logging system messages.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32646
diff changeset
1114
31874
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1115 /* system messages are mostly ads */
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1116 purple_debug_info("gg", "System message:\n%s\n",
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1117 ev->event.msg.message);
32647
a8e9b3781df1 Gadu-Gadu: check for NULL pointer before logging system messages.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32646
diff changeset
1118 }
31874
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1119 else
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1120 purple_debug_warning("gg", "GG_EVENT_MSG: message from user %u "
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1121 "unexpected while connecting:\n%s\n",
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1122 ev->event.msg.sender,
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1123 ev->event.msg.message);
6ddbbcd38154 No more warnings when receiving Gadu-Gadu system messages - fixes #13914
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31795
diff changeset
1124 break;
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1125 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1126 purple_debug_error("gg", "strange event: %d\n", ev->type);
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1127 break;
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1128 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1129
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1130 gg_free_event(ev);
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1131 }
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1132
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1133 /* ---------------------------------------------------------------------- */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1134 /* ----- PurplePluginProtocolInfo ----------------------------------------- */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1135 /* ---------------------------------------------------------------------- */
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1136
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1137 static const char *ggp_list_icon(PurpleAccount *account, PurpleBuddy *buddy)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1138 {
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1139 return "gadu-gadu";
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1140 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1141
32652
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1142 static const char *ggp_normalize(const PurpleAccount *account, const char *who)
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1143 {
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1144 static char normalized[21]; /* maximum unsigned long long int size */
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1145
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1146 uin_t uin = ggp_str_to_uin(who);
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1147 if (uin <= 0)
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1148 return NULL;
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1149
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1150 g_snprintf(normalized, sizeof(normalized), "%u", uin);
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1151
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1152 return normalized;
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1153 }
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1154
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1155 static void ggp_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1156 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1157 PurpleStatus *status;
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
1158 char *tmp;
33342
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
1159 const char *name, *alias;
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
1160 gchar *msg;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1161
15005
4b4af389b71c [gaim-migrate @ 17715]
Bartosz Oler <bartosz@pidgin.im>
parents: 14754
diff changeset
1162 g_return_if_fail(b != NULL);
4b4af389b71c [gaim-migrate @ 17715]
Bartosz Oler <bartosz@pidgin.im>
parents: 14754
diff changeset
1163
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1164 status = purple_presence_get_active_status(purple_buddy_get_presence(b));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1165 name = purple_status_get_name(status);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1166 alias = purple_buddy_get_alias(b);
33342
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
1167 ggp_status_from_purplestatus(status, &msg);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1168
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
1169 purple_notify_user_info_add_pair_plaintext(user_info, _("Alias"), alias);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1170
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1171 if (msg != NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1172 if (PURPLE_BUDDY_IS_ONLINE(b)) {
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
1173 tmp = g_strdup_printf("%s: %s", name, msg);
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
1174 purple_notify_user_info_add_pair_plaintext(user_info, _("Status"), tmp);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15196
diff changeset
1175 g_free(tmp);
15196
1663f0333c05 [gaim-migrate @ 17920]
Bartosz Oler <bartosz@pidgin.im>
parents: 15185
diff changeset
1176 } else {
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
1177 purple_notify_user_info_add_pair_plaintext(user_info, _("Message"), msg);
15196
1663f0333c05 [gaim-migrate @ 17920]
Bartosz Oler <bartosz@pidgin.im>
parents: 15185
diff changeset
1178 }
33342
26ba5e4e8c24 Gadu-Gadu: status refactoring - polishing
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33341
diff changeset
1179 g_free(msg);
15227
a3327ea6d1b7 [gaim-migrate @ 17951]
Bartosz Oler <bartosz@pidgin.im>
parents: 15205
diff changeset
1180 /* We don't want to duplicate 'Status: Offline'. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1181 } else if (PURPLE_BUDDY_IS_ONLINE(b)) {
32188
cb9cad610bc6 I went through all our calls to purple_notify_user_info_add_pair() and
Mark Doliner <markdoliner@pidgin.im>
parents: 32157
diff changeset
1182 purple_notify_user_info_add_pair_plaintext(user_info, _("Status"), name);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1183 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1184 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1185
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1186 static GList *ggp_blist_node_menu(PurpleBlistNode *node)
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1187 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1188 PurpleMenuAction *act;
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1189 GList *m = NULL;
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1190 PurpleAccount *account;
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1191 PurpleConnection *gc;
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1192 GGPInfo *info;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4229
diff changeset
1193
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1194 if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1195 return NULL;
4333
f4c095774bc2 [gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents: 4229
diff changeset
1196
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1197 account = purple_buddy_get_account((PurpleBuddy *) node);
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1198 gc = purple_account_get_connection(account);
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1199 info = purple_connection_get_protocol_data(gc);
25430
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1200 if (info->chats) {
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1201 act = purple_menu_action_new(_("Add to chat"),
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1202 PURPLE_CALLBACK(ggp_bmenu_add_to_chat),
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1203 NULL, NULL);
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1204 m = g_list_append(m, act);
78be70c986d3 Fix some bogocity related to the GG "Add To Chat" menu item. Fixes #8112.
Daniel Atallah <datallah@pidgin.im>
parents: 24747
diff changeset
1205 }
11410
08212b2e6083 [gaim-migrate @ 13647]
Bartosz Oler <bartosz@pidgin.im>
parents: 11397
diff changeset
1206
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1207 return m;
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1208 }
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1209
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1210 static GList *ggp_chat_info(PurpleConnection *gc)
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1211 {
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1212 GList *m = NULL;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1213 struct proto_chat_entry *pce;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1214
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1215 pce = g_new0(struct proto_chat_entry, 1);
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1216 pce->label = _("Chat _name:");
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1217 pce->identifier = "name";
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1218 pce->required = TRUE;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1219 m = g_list_append(m, pce);
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1220
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1221 return m;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1222 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1223
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1224 static void ggp_login(PurpleAccount *account)
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1225 {
33303
50f7a92eeb90 Gadu-Gadu: code refactoring - token request, proxy setup (deprecated)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33302
diff changeset
1226 PurpleConnection *gc = purple_account_get_connection(account);
13515
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1227 struct gg_login_params *glp;
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1228 GGPInfo *info;
27255
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1229 const char *address;
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1230 const gchar *encryption_type;
13515
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1231
33303
50f7a92eeb90 Gadu-Gadu: code refactoring - token request, proxy setup (deprecated)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33302
diff changeset
1232 if (!ggp_deprecated_setup_proxy(gc))
13515
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1233 return;
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1234
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1235 glp = g_new0(struct gg_login_params, 1);
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13466
diff changeset
1236 info = g_new0(GGPInfo, 1);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1237
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1238 /* Probably this should be moved to *_new() function. */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1239 info->session = NULL;
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1240 info->chats = NULL;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1241 info->chats_count = 0;
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1242 info->searches = ggp_search_new();
31550
909496097dcf Gadu-Gadu: Allow showing your status only to people on your buddy list.
Mateusz Piękos <mateuszpiekos@gmail.com>
parents: 31386
diff changeset
1243
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1244 purple_connection_set_protocol_data(gc, info);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1245
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1246
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
1247 ggp_image_setup(gc);
33313
5a0c6582d5b1 Gadu-Gadu: refactoring of buddy avatars handling. Fixes #13739, #14305
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33311
diff changeset
1248 ggp_avatar_setup(gc);
33314
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
1249 ggp_roster_setup(gc);
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
1250 ggp_multilogon_setup(gc);
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1251 ggp_status_setup(gc);
33298
519acf37d16e Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33296
diff changeset
1252
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
1253 glp->uin = ggp_str_to_uin(purple_account_get_username(account));
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
1254 glp->password = ggp_convert_to_cp1250(purple_account_get_password(account));
32646
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1255
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1256 if (glp->uin == 0) {
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1257 purple_connection_error(gc,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1258 PURPLE_CONNECTION_ERROR_INVALID_USERNAME,
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1259 _("The username specified is invalid."));
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1260 g_free(glp);
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1261 return;
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1262 }
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1263
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1264 glp->image_size = 255;
32651
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1265 glp->status_flags = GG_STATUS_FLAG_UNKNOWN;
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1266
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1267 if (purple_account_get_bool(account, "show_links_from_strangers", 1))
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1268 glp->status_flags |= GG_STATUS_FLAG_SPAM;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1269
29824
9878119b5d78 Finish making libgadu compile on Windows. Fixes #10542 finally!
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 29404
diff changeset
1270 glp->encoding = GG_ENCODING_UTF8;
33296
33a9adb52028 Enable receiving of user_data packets
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33295
diff changeset
1271 glp->protocol_features = (GG_FEATURE_DND_FFC |
33a9adb52028 Enable receiving of user_data packets
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33295
diff changeset
1272 GG_FEATURE_TYPING_NOTIFICATION | GG_FEATURE_MULTILOGON |
33a9adb52028 Enable receiving of user_data packets
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33295
diff changeset
1273 GG_FEATURE_USER_DATA);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30163
diff changeset
1274
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1275 glp->async = 1;
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1276
32643
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1277 encryption_type = purple_account_get_string(account, "encryption",
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1278 "opportunistic_tls");
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1279 purple_debug_info("gg", "Requested encryption type: %s\n",
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1280 encryption_type);
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1281 if (strcmp(encryption_type, "opportunistic_tls") == 0)
32643
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1282 glp->tls = GG_SSL_ENABLED;
32646
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1283 else if (strcmp(encryption_type, "require_tls") == 0) {
32643
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1284 if (gg_libgadu_check_feature(GG_LIBGADU_FEATURE_SSL))
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1285 glp->tls = GG_SSL_REQUIRED;
32646
d1e3538b0c5f Gadu-Gadu: detailed descriptions on connection failures. Fixes #14648
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32645
diff changeset
1286 else {
32643
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1287 purple_connection_error(gc,
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1288 PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT,
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1289 _("SSL support unavailable"));
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1290 g_free(glp);
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1291 return;
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1292 }
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1293 }
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1294 else /* encryption_type == "none" */
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1295 glp->tls = GG_SSL_DISABLED;
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1296 purple_debug_info("gg", "TLS mode: %d\n", glp->tls);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1297
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1298 ggp_status_set_initial(gc, glp);
31550
909496097dcf Gadu-Gadu: Allow showing your status only to people on your buddy list.
Mateusz Piękos <mateuszpiekos@gmail.com>
parents: 31386
diff changeset
1299
27255
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1300 address = purple_account_get_string(account, "gg_server", "");
33292
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1301 if (address && *address)
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1302 {
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1303 glp->server_addr = inet_addr(address);
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1304 glp->server_port = 8074;
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1305
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1306 if (glp->server_addr == INADDR_NONE)
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1307 {
32157
39ba2e2492ee Rename purple_connection_error_reason to purple_connection_error
Mark Doliner <markdoliner@pidgin.im>
parents: 32147
diff changeset
1308 purple_connection_error(gc,
33292
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1309 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1310 _("Provided server IP address is not valid"));
0ad1dc71f5c7 Makefile cleanup, fix building with external libgadu, little synchronization of internal libgadu with upstream. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33291
diff changeset
1311 g_free(glp);
27255
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1312 return;
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1313 }
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1314 } else
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1315 purple_debug_info("gg", "Trying to retrieve address from gg appmsg service\n");
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1316
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1317 info->session = gg_login(glp);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30163
diff changeset
1318 purple_connection_update_progress(gc, _("Connecting"), 0, 2);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1319 if (info->session == NULL) {
32157
39ba2e2492ee Rename purple_connection_error_reason to purple_connection_error
Mark Doliner <markdoliner@pidgin.im>
parents: 32147
diff changeset
1320 purple_connection_error (gc,
21279
40685e1f50ca Rename:
Will Thompson <resiak@pidgin.im>
parents: 20437
diff changeset
1321 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
27626
62fbae50be08 Connection error message changes for gg, and a few other strings changes.
Mark Doliner <markdoliner@pidgin.im>
parents: 27388
diff changeset
1322 _("Connection failed"));
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1323 g_free(glp);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1324 return;
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1325 }
32685
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1326 info->inpa = purple_input_add(info->session->fd, PURPLE_INPUT_READ,
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1327 ggp_async_login_handler, gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1328 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1329
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1330 static void ggp_close(PurpleConnection *gc)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1331 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1332 PurpleAccount *account;
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1333 GGPInfo *info;;
8997
a30b6b11674a [gaim-migrate @ 9772]
Luke Schierer <lschiere@pidgin.im>
parents: 8996
diff changeset
1334
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1335 if (gc == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1336 purple_debug_info("gg", "gc == NULL\n");
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1337 return;
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1338 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1339
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1340 account = purple_connection_get_account(gc);
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1341 info = purple_connection_get_protocol_data(gc);
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1342
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1343 if (info) {
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
1344 if (info->session != NULL)
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
1345 {
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
1346 ggp_status_set_disconnected(account);
11538
d87f3717d5a5 [gaim-migrate @ 13792]
Daniel Atallah <datallah@pidgin.im>
parents: 11522
diff changeset
1347 gg_logoff(info->session);
d87f3717d5a5 [gaim-migrate @ 13792]
Daniel Atallah <datallah@pidgin.im>
parents: 11522
diff changeset
1348 gg_free_session(info->session);
d87f3717d5a5 [gaim-migrate @ 13792]
Daniel Atallah <datallah@pidgin.im>
parents: 11522
diff changeset
1349 }
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1350
14060
e1a87aabd80c [gaim-migrate @ 16583]
Evan Schoenberg <evands@pidgin.im>
parents: 13645
diff changeset
1351 /* Immediately close any notifications on this handle since that process depends
e1a87aabd80c [gaim-migrate @ 16583]
Evan Schoenberg <evands@pidgin.im>
parents: 13645
diff changeset
1352 * upon the contents of info->searches, which we are about to destroy.
e1a87aabd80c [gaim-migrate @ 16583]
Evan Schoenberg <evands@pidgin.im>
parents: 13645
diff changeset
1353 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1354 purple_notify_close_with_handle(gc);
14060
e1a87aabd80c [gaim-migrate @ 16583]
Evan Schoenberg <evands@pidgin.im>
parents: 13645
diff changeset
1355
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1356 ggp_search_destroy(info->searches);
33313
5a0c6582d5b1 Gadu-Gadu: refactoring of buddy avatars handling. Fixes #13739, #14305
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33311
diff changeset
1357 ggp_image_cleanup(gc);
5a0c6582d5b1 Gadu-Gadu: refactoring of buddy avatars handling. Fixes #13739, #14305
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33311
diff changeset
1358 ggp_avatar_cleanup(gc);
33314
57013b9e1a8e Gadu-Gadu: roster - downloading
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33313
diff changeset
1359 ggp_roster_cleanup(gc);
33334
734fc6da6179 Gadu-Gadu: initial multilogon support
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33333
diff changeset
1360 ggp_multilogon_cleanup(gc);
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1361 ggp_status_cleanup(gc);
32685
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1362
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1363 if (info->inpa > 0)
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1364 purple_input_remove(info->inpa);
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1365
140518f18665 GG: Move the "inpa" input watcher into protocol_data.
Andrew Victor <andrew.victor@mxit.com>
parents: 32678
diff changeset
1366 purple_connection_set_protocol_data(gc, NULL);
11545
df2f9bb3fd6e [gaim-migrate @ 13800]
Daniel Atallah <datallah@pidgin.im>
parents: 11544
diff changeset
1367 g_free(info);
11538
d87f3717d5a5 [gaim-migrate @ 13792]
Daniel Atallah <datallah@pidgin.im>
parents: 11522
diff changeset
1368 }
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1369
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1370 purple_debug_info("gg", "Connection closed.\n");
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1371 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1372
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1373 static int ggp_send_im(PurpleConnection *gc, const char *who, const char *msg,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1374 PurpleMessageFlags flags)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1375 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1376 GGPInfo *info = purple_connection_get_protocol_data(gc);
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12143
diff changeset
1377 char *tmp, *plain;
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1378 int ret = 1;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1379 unsigned char format[1024];
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1380 unsigned int format_length = sizeof(struct gg_msg_richtext);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1381 gint pos = 0;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1382 GData *attribs;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1383 const char *start, *end = NULL, *last;
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
1384 ggp_buddy_data *buddy_data = ggp_buddy_get_data(
33327
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1385 purple_find_buddy(purple_connection_get_account(gc), who));
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1386
24747
498c6dda6e48 Fix two warnings introduced by the image patch I committed earlier and make
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24746
diff changeset
1387 if (msg == NULL || *msg == '\0') {
15287
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1388 return 0;
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1389 }
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1390
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
1391 if (buddy_data->blocked)
33327
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1392 return -1;
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1393
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1394 last = msg;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1395
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1396 /* Check if the message is richtext */
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1397 /* TODO: Check formatting, too */
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1398 if(purple_markup_find_tag("img", last, &start, &end, &attribs)) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1399
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1400 GString *string_buffer = g_string_new(NULL);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1401 struct gg_msg_richtext fmt;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1402
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1403 do
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1404 {
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1405 const char *id = g_datalist_get_data(&attribs, "id");
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1406 struct gg_msg_richtext_format actformat;
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1407 struct gg_msg_richtext_image actimage;
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1408 ggp_image_prepare_result prepare_result;
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1409
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1410 /* Add text before the image */
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1411 if(start - last)
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1412 {
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1413 pos = pos + g_utf8_strlen(last, start - last);
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1414 g_string_append_len(string_buffer, last,
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1415 start - last);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1416 }
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1417 last = end + 1;
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1418
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1419 if (id == NULL)
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1420 {
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1421 g_datalist_clear(&attribs);
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1422 continue;
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1423 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1424
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1425 /* add the image itself */
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1426 prepare_result = ggp_image_prepare(
33302
e094fcb98670 Gadu-Gadu: acknowledgment for sent images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33301
diff changeset
1427 gc, atoi(id), who, &actimage);
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1428 if (prepare_result == GGP_IMAGE_PREPARE_OK)
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1429 {
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1430 actformat.font = GG_FONT_IMAGE;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1431 actformat.position = pos;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1432
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1433 memcpy(format + format_length, &actformat,
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1434 sizeof(actformat));
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1435 format_length += sizeof(actformat);
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1436 memcpy(format + format_length, &actimage,
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1437 sizeof(actimage));
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1438 format_length += sizeof(actimage);
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1439 }
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1440 else if (prepare_result == GGP_IMAGE_PREPARE_TOO_BIG)
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1441 {
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1442 PurpleConversation *conv =
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1443 purple_find_conversation_with_account(
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1444 PURPLE_CONV_TYPE_IM, who,
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1445 purple_connection_get_account(gc));
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1446 purple_conversation_write(conv, "",
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1447 _("Image is too large, please try "
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1448 "smaller one."), PURPLE_MESSAGE_ERROR,
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1449 time(NULL));
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1450 }
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1451
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1452 g_datalist_clear(&attribs);
33301
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1453 } while (purple_markup_find_tag("img", last, &start, &end,
3f18ba8aed0f Gadu-Gadu sending images refactoring; notify about too large images
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33299
diff changeset
1454 &attribs));
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1455
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1456 /* Add text after the images */
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1457 if(last && *last) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1458 pos = pos + g_utf8_strlen(last, -1);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1459 g_string_append(string_buffer, last);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1460 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1461
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1462 fmt.flag = 2;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1463 fmt.length = format_length - sizeof(fmt);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1464 memcpy(format, &fmt, sizeof(fmt));
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1465
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1466 purple_debug_info("gg", "ggp_send_im: richtext msg = %s\n", string_buffer->str);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1467 plain = purple_unescape_html(string_buffer->str);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1468 g_string_free(string_buffer, TRUE);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1469 } else {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1470 purple_debug_info("gg", "ggp_send_im: msg = %s\n", msg);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1471 plain = purple_unescape_html(msg);
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1472 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1473
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
1474 tmp = g_strdup(plain);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30163
diff changeset
1475
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1476 if (tmp && (format_length - sizeof(struct gg_msg_richtext))) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1477 if(gg_send_message_richtext(info->session, GG_CLASS_CHAT, ggp_str_to_uin(who), (unsigned char *)tmp, format, format_length) < 0) {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1478 ret = -1;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1479 } else {
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1480 ret = 1;
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1481 }
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1482 } else if (NULL == tmp || *tmp == 0) {
15287
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1483 ret = 0;
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1484 } else if (strlen(tmp) > GG_MSG_MAXSIZE) {
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1485 ret = -E2BIG;
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1486 } else if (gg_send_message(info->session, GG_CLASS_CHAT,
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1487 ggp_str_to_uin(who), (unsigned char *)tmp) < 0) {
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1488 ret = -1;
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1489 } else {
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1490 ret = 1;
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1491 }
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1492
12216
d80739091a63 [gaim-migrate @ 14518]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12143
diff changeset
1493 g_free(plain);
11565
098117df202f [gaim-migrate @ 13831]
Bartosz Oler <bartosz@pidgin.im>
parents: 11545
diff changeset
1494 g_free(tmp);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1495
15287
be6664498b13 [gaim-migrate @ 18015]
Bartosz Oler <bartosz@pidgin.im>
parents: 15227
diff changeset
1496 return ret;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1497 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1498
31648
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1499 static unsigned int ggp_send_typing(PurpleConnection *gc, const char *name, PurpleTypingState state)
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1500 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1501 GGPInfo *info = purple_connection_get_protocol_data(gc);
31648
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1502 int dummy_length; // we don't send real length of typed message
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1503
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1504 if (state == PURPLE_TYPED) // not supported
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1505 return 1;
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1506
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1507 if (state == PURPLE_TYPING)
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1508 dummy_length = (int)g_random_int();
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1509 else // PURPLE_NOT_TYPING
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1510 dummy_length = 0;
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1511
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1512 gg_typing_notification(
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1513 info->session,
31648
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1514 ggp_str_to_uin(name),
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1515 dummy_length);
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1516
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1517 return 1; // wait 1 second before another notification
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1518 }
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1519
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1520 static void ggp_get_info(PurpleConnection *gc, const char *name)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1521 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1522 GGPInfo *info = purple_connection_get_protocol_data(gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1523 GGPSearchForm *form;
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1524 guint32 seq;
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1525
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1526 form = ggp_search_form_new(GGP_SEARCH_TYPE_INFO);
12220
2eecc6f28334 [gaim-migrate @ 14522]
Bartosz Oler <bartosz@pidgin.im>
parents: 12216
diff changeset
1527
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1528 form->user_data = info;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1529 form->uin = g_strdup(name);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1530
13641
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1531 seq = ggp_search_start(gc, form);
1173f8ca3fbf [gaim-migrate @ 16038]
Bartosz Oler <bartosz@pidgin.im>
parents: 13627
diff changeset
1532 ggp_search_add(info->searches, seq, form);
23584
886e1611b952 Gadu-Gadu Get Info isn't behaving properly. Added debug logging to its traking
Evan Schoenberg <evands@pidgin.im>
parents: 23382
diff changeset
1533 purple_debug_info("gg", "ggp_get_info(): Added seq %u", seq);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1534 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1535
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32261
diff changeset
1536 static void ggp_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group, const char *message)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1537 {
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
1538 PurpleAccount *account = purple_connection_get_account(gc);
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1539 GGPInfo *info = purple_connection_get_protocol_data(gc);
24939
d25fdf62ae92 moved gg to use the api rather than structs directly
Gary Kramlich <grim@reaperworld.com>
parents: 24043
diff changeset
1540 const gchar *name = purple_buddy_get_name(buddy);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1541
24939
d25fdf62ae92 moved gg to use the api rather than structs directly
Gary Kramlich <grim@reaperworld.com>
parents: 24043
diff changeset
1542 gg_add_notify(info->session, ggp_str_to_uin(name));
20289
5c844288fbec applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 20288
diff changeset
1543
33337
458d578d553d Gadu-Gadu: status refactoring - fix bug with long status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33336
diff changeset
1544 // gg server won't tell us our status here
33299
b3c4ab3aeb7f Gadu-Gadu: utils refactoring, (partially) fix new account registration
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33298
diff changeset
1545 if (strcmp(purple_account_get_username(account), name) == 0)
33337
458d578d553d Gadu-Gadu: status refactoring - fix bug with long status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33336
diff changeset
1546 ggp_status_fake_to_self(gc);
33318
636bfc28f2cf Gadu-Gadu: roster - finally working
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33316
diff changeset
1547
636bfc28f2cf Gadu-Gadu: roster - finally working
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33316
diff changeset
1548 ggp_roster_add_buddy(gc, buddy, group, message);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1549 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1550
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1551 static void ggp_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1552 PurpleGroup *group)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1553 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1554 GGPInfo *info = purple_connection_get_protocol_data(gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1555
24939
d25fdf62ae92 moved gg to use the api rather than structs directly
Gary Kramlich <grim@reaperworld.com>
parents: 24043
diff changeset
1556 gg_remove_notify(info->session, ggp_str_to_uin(purple_buddy_get_name(buddy)));
33318
636bfc28f2cf Gadu-Gadu: roster - finally working
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33316
diff changeset
1557 ggp_roster_remove_buddy(gc, buddy, group);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1558 }
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1559
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1560 static void ggp_join_chat(PurpleConnection *gc, GHashTable *data)
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1561 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1562 GGPInfo *info = purple_connection_get_protocol_data(gc);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1563 GGPChat *chat;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1564 char *chat_name;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1565 GList *l;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1566 PurpleConversation *conv;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1567 PurpleAccount *account = purple_connection_get_account(gc);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1568
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1569 chat_name = g_hash_table_lookup(data, "name");
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1570
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1571 if (chat_name == NULL)
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1572 return;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1573
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1574 purple_debug_info("gg", "joined %s chat\n", chat_name);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1575
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1576 for (l = info->chats; l != NULL; l = l->next) {
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1577 chat = l->data;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1578
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1579 if (chat != NULL && g_utf8_collate(chat->name, chat_name) == 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1580 purple_notify_error(gc, _("Chat error"),
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1581 _("This chat name is already in use"), NULL);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1582 return;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1583 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1584 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1585
11414
10b74079ef15 [gaim-migrate @ 13651]
Bartosz Oler <bartosz@pidgin.im>
parents: 11410
diff changeset
1586 ggp_confer_add_new(gc, chat_name);
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
1587 conv = serv_got_joined_chat(gc, info->chats_count, chat_name);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1588 purple_conv_chat_add_user(PURPLE_CONV_CHAT(conv),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1589 purple_account_get_username(account), NULL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1590 PURPLE_CBFLAGS_NONE, TRUE);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1591 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1592
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1593 static char *ggp_get_chat_name(GHashTable *data) {
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1594 return g_strdup(g_hash_table_lookup(data, "name"));
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1595 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1596
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1597 static int ggp_chat_send(PurpleConnection *gc, int id, const char *message, PurpleMessageFlags flags)
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1598 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1599 PurpleConversation *conv;
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1600 GGPInfo *info = purple_connection_get_protocol_data(gc);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1601 GGPChat *chat = NULL;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1602 GList *l;
29824
9878119b5d78 Finish making libgadu compile on Windows. Fixes #10542 finally!
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 29404
diff changeset
1603 /* char *msg, *plain; */
9878119b5d78 Finish making libgadu compile on Windows. Fixes #10542 finally!
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 29404
diff changeset
1604 gchar *msg;
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1605 uin_t *uins;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1606 int count = 0;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1607
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1608 if ((conv = purple_find_chat(gc, id)) == NULL)
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1609 return -EINVAL;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1610
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1611 for (l = info->chats; l != NULL; l = l->next) {
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1612 chat = l->data;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1613
32617
c74b4bd27e37 Use purple_conversation accessor methods.
Andrew Victor <andrew.victor@mxit.com>
parents: 32596
diff changeset
1614 if (g_utf8_collate(chat->name, purple_conversation_get_name(conv)) == 0) {
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1615 break;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1616 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1617
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1618 chat = NULL;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1619 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1620
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1621 if (chat == NULL) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1622 purple_debug_error("gg",
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1623 "ggp_chat_send: Hm... that's strange. No such chat?\n");
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1624 return -EINVAL;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1625 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1626
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1627 uins = g_new0(uin_t, g_list_length(chat->participants));
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
1628
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1629 for (l = chat->participants; l != NULL; l = l->next) {
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
1630 uin_t uin = GPOINTER_TO_INT(l->data);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1631
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
1632 uins[count++] = uin;
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1633 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1634
29824
9878119b5d78 Finish making libgadu compile on Windows. Fixes #10542 finally!
Krzysztof Klinikowski <kkszysiu@gmail.com>
parents: 29404
diff changeset
1635 msg = purple_unescape_html(message);
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1636 gg_send_message_confer(info->session, GG_CLASS_CHAT, count, uins,
12961
ee989777ce02 [gaim-migrate @ 15314]
Bartosz Oler <bartosz@pidgin.im>
parents: 12943
diff changeset
1637 (unsigned char *)msg);
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1638 g_free(msg);
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1639 g_free(uins);
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1640
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1641 serv_got_chat_in(gc, id,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1642 purple_account_get_username(purple_connection_get_account(gc)),
23295
5d3a2fd59439 When calling serv_got_chat_in() after sending a group chat message (to let
Evan Schoenberg <evands@pidgin.im>
parents: 23277
diff changeset
1643 flags, message, time(NULL));
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1644
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1645 return 0;
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1646 }
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1647
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1648 static void ggp_keepalive(PurpleConnection *gc)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1649 {
32261
bd956558346e Convert gg prpl to use accessor functions purple_connection_get_protocol_data() and purple_connection_set_protocol_data().
Andrew Victor <andrew.victor@mxit.com>
parents: 32191
diff changeset
1650 GGPInfo *info = purple_connection_get_protocol_data(gc);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1651
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1652 /* purple_debug_info("gg", "Keeping connection alive....\n"); */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1653
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1654 if (gg_ping(info->session) < 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1655 purple_debug_info("gg", "Not connected to the server "
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1656 "or gg_session is not correct\n");
32157
39ba2e2492ee Rename purple_connection_error_reason to purple_connection_error
Mark Doliner <markdoliner@pidgin.im>
parents: 32147
diff changeset
1657 purple_connection_error (gc,
21279
40685e1f50ca Rename:
Will Thompson <resiak@pidgin.im>
parents: 20437
diff changeset
1658 PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
27626
62fbae50be08 Connection error message changes for gg, and a few other strings changes.
Mark Doliner <markdoliner@pidgin.im>
parents: 27388
diff changeset
1659 _("Not connected to the server"));
4916
11b8fd3f8ffc [gaim-migrate @ 5250]
Sean Egan <seanegan@pidgin.im>
parents: 4793
diff changeset
1660 }
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1661 }
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1662
33310
5d38cff87be2 Gadu-Gadu: refactoring of password change
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33306
diff changeset
1663 static void ggp_action_chpass(PurplePluginAction *action)
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1664 {
33310
5d38cff87be2 Gadu-Gadu: refactoring of password change
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33306
diff changeset
1665 ggp_account_chpass((PurpleConnection *)action->context);
5d38cff87be2 Gadu-Gadu: refactoring of password change
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33306
diff changeset
1666 }
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1667
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1668 static void ggp_action_status_broadcasting(PurplePluginAction *action)
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1669 {
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1670 ggp_status_broadcasting_dialog((PurpleConnection *)action->context);
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1671 }
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1672
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1673 static GList *ggp_actions(PurplePlugin *plugin, gpointer context)
8775
6cb5dddaad4f [gaim-migrate @ 9537]
Andrew Wellington <proton@users.sourceforge.net>
parents: 8749
diff changeset
1674 {
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1675 GList *m = NULL;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1676 PurplePluginAction *act;
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1677
32650
4a755a62aa46 Gadu-Gadu: reorder actions to clean up the mess in gg account menu
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32649
diff changeset
1678 act = purple_plugin_action_new(_("Change password..."),
33310
5d38cff87be2 Gadu-Gadu: refactoring of password change
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33306
diff changeset
1679 ggp_action_chpass);
32650
4a755a62aa46 Gadu-Gadu: reorder actions to clean up the mess in gg account menu
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32649
diff changeset
1680 m = g_list_append(m, act);
4a755a62aa46 Gadu-Gadu: reorder actions to clean up the mess in gg account menu
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32649
diff changeset
1681
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1682 act = purple_plugin_action_new(_("Find buddies..."),
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1683 ggp_find_buddies);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1684 m = g_list_append(m, act);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1685
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1686 act = purple_plugin_action_new(_("Show status only for buddies"),
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1687 ggp_action_status_broadcasting);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1688 m = g_list_append(m, act);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1689
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1690 m = g_list_append(m, NULL);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1691
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1692 act = purple_plugin_action_new(_("Save buddylist to file..."),
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1693 ggp_action_buddylist_save);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1694 m = g_list_append(m, act);
8775
6cb5dddaad4f [gaim-migrate @ 9537]
Andrew Wellington <proton@users.sourceforge.net>
parents: 8749
diff changeset
1695
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1696 act = purple_plugin_action_new(_("Load buddylist from file..."),
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1697 ggp_action_buddylist_load);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1698 m = g_list_append(m, act);
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1699
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1700 return m;
8775
6cb5dddaad4f [gaim-migrate @ 9537]
Andrew Wellington <proton@users.sourceforge.net>
parents: 8749
diff changeset
1701 }
6cb5dddaad4f [gaim-migrate @ 9537]
Andrew Wellington <proton@users.sourceforge.net>
parents: 8749
diff changeset
1702
33327
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1703 static const char* ggp_list_emblem(PurpleBuddy *buddy)
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1704 {
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
1705 ggp_buddy_data *buddy_data = ggp_buddy_get_data(buddy);
33327
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1706
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1707 if (buddy_data->blocked)
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1708 return "not-authorized";
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1709
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1710 return NULL;
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1711 }
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1712
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1713 static gboolean ggp_offline_message(const PurpleBuddy *buddy)
13298
7a41e676010b [gaim-migrate @ 15663]
Richard Laager <rlaager@pidgin.im>
parents: 13297
diff changeset
1714 {
7a41e676010b [gaim-migrate @ 15663]
Richard Laager <rlaager@pidgin.im>
parents: 13297
diff changeset
1715 return TRUE;
7a41e676010b [gaim-migrate @ 15663]
Richard Laager <rlaager@pidgin.im>
parents: 13297
diff changeset
1716 }
7a41e676010b [gaim-migrate @ 15663]
Richard Laager <rlaager@pidgin.im>
parents: 13297
diff changeset
1717
33311
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1718 static GHashTable * ggp_get_account_text_table(PurpleAccount *account)
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1719 {
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1720 GHashTable *table;
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1721 table = g_hash_table_new(g_str_hash, g_str_equal);
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1722 g_hash_table_insert(table, "login_label", (gpointer)_("GG number..."));
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1723 return table;
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1724 }
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1725
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1726 static PurplePluginProtocolInfo prpl_info =
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1727 {
32316
21dab55b4699 Move struct_size to the beginning of the struct. Even if we don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32315
diff changeset
1728 sizeof(PurplePluginProtocolInfo), /* struct_size */
24745
511df62cb366 Support displaying buddy icons from Gadu-Gadu buddies. Fixes #220.
Adam Strzelecki <ono@java.pl>
parents: 24683
diff changeset
1729 OPT_PROTO_REGISTER_NOSCREENNAME | OPT_PROTO_IM_IMAGE,
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1730 NULL, /* user_splits */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1731 NULL, /* protocol_options */
33333
b20aed44c357 Gadu-Gadu: setting own buddy icon
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33327
diff changeset
1732 {"png", 1, 1, 200, 200, 0, PURPLE_ICON_SCALE_DISPLAY | PURPLE_ICON_SCALE_SEND}, /* icon_spec */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1733 ggp_list_icon, /* list_icon */
33327
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1734 ggp_list_emblem, /* list_emblem */
33340
5f00ed891179 Gadu-Gadu: status refactoring - done
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33339
diff changeset
1735 ggp_status_buddy_text, /* status_text */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1736 ggp_tooltip_text, /* tooltip_text */
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1737 ggp_status_types, /* status_types */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1738 ggp_blist_node_menu, /* blist_node_menu */
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1739 ggp_chat_info, /* chat_info */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1740 NULL, /* chat_info_defaults */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1741 ggp_login, /* login */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1742 ggp_close, /* close */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1743 ggp_send_im, /* send_im */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1744 NULL, /* set_info */
31648
03cb811f6382 This patch from kkszysiu and tomkiewicz implements full typing notification
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 31630
diff changeset
1745 ggp_send_typing, /* send_typing */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1746 ggp_get_info, /* get_info */
33336
7c97b5dd3bf4 Gadu-Gadu: status refactoring - own status
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33334
diff changeset
1747 ggp_status_set_purplestatus, /* set_away */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1748 NULL, /* set_idle */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1749 NULL, /* change_passwd */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1750 ggp_add_buddy, /* add_buddy */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1751 NULL, /* add_buddies */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1752 ggp_remove_buddy, /* remove_buddy */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1753 NULL, /* remove_buddies */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1754 NULL, /* add_permit */
31938
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
1755 ggp_add_deny, /* add_deny */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1756 NULL, /* rem_permit */
31938
13c568701e8a Merged two buddy blocking methods in Gadu-Gadu protocol. Fixes #5303
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31892
diff changeset
1757 ggp_rem_deny, /* rem_deny */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1758 NULL, /* set_permit_deny */
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1759 ggp_join_chat, /* join_chat */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1760 NULL, /* reject_chat */
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1761 ggp_get_chat_name, /* get_chat_name */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1762 NULL, /* chat_invite */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1763 NULL, /* chat_leave */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1764 NULL, /* chat_whisper */
11394
044b3779f027 [gaim-migrate @ 13625]
Bartosz Oler <bartosz@pidgin.im>
parents: 11360
diff changeset
1765 ggp_chat_send, /* chat_send */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1766 ggp_keepalive, /* keepalive */
33305
41e5ff454167 Gadu-Gadu: ggp_purple_request_processing implementation; refactoring of account registration (first stage); cancellable token request
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33303
diff changeset
1767 ggp_account_register, /* register_user */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1768 NULL, /* get_cb_info */
33315
42bbe5b85df8 Gadu-Gadu: roster - uploading/synchronization - part1
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33314
diff changeset
1769 ggp_roster_alias_buddy, /* alias_buddy */
42bbe5b85df8 Gadu-Gadu: roster - uploading/synchronization - part1
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33314
diff changeset
1770 ggp_roster_group_buddy, /* group_buddy */
33318
636bfc28f2cf Gadu-Gadu: roster - finally working
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33316
diff changeset
1771 ggp_roster_rename_group, /* rename_group */
33327
4e6e895f161b Gadu-Gadu: correctly handle buddies that blocks us
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33318
diff changeset
1772 ggp_buddy_free, /* buddy_free */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1773 NULL, /* convo_closed */
32652
9cf860cf65f2 Gadu-Gadu: function to normalize gg usernames
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32651
diff changeset
1774 ggp_normalize, /* normalize */
33333
b20aed44c357 Gadu-Gadu: setting own buddy icon
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33327
diff changeset
1775 ggp_avatar_own_set, /* set_buddy_icon */
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1776 NULL, /* remove_group */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1777 NULL, /* get_cb_real_name */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1778 NULL, /* set_chat_topic */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1779 NULL, /* find_blist_chat */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1780 NULL, /* roomlist_get_list */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1781 NULL, /* roomlist_cancel */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1782 NULL, /* roomlist_expand_category */
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1783 NULL, /* can_receive_file */
12143
09f216663302 [gaim-migrate @ 14444]
Evan Schoenberg <evands@pidgin.im>
parents: 12007
diff changeset
1784 NULL, /* send_file */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12595
diff changeset
1785 NULL, /* new_xfer */
13298
7a41e676010b [gaim-migrate @ 15663]
Richard Laager <rlaager@pidgin.im>
parents: 13297
diff changeset
1786 ggp_offline_message, /* offline_message */
12600
7ecd4441fdc7 [gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents: 12595
diff changeset
1787 NULL, /* whiteboard_prpl_ops */
14604
67a7c42a8654 [gaim-migrate @ 17263]
Sean Egan <seanegan@pidgin.im>
parents: 14524
diff changeset
1788 NULL, /* send_raw */
15185
74b689a74430 [gaim-migrate @ 17909]
Nathan Walp <nwalp@pidgin.im>
parents: 15005
diff changeset
1789 NULL, /* roomlist_room_serialize */
22071
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
1790 NULL, /* unregister_user */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
1791 NULL, /* send_attention */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
1792 NULL, /* get_attention_types */
33311
3ba9260b0e74 Gadu-Gadu: add login_label field
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33310
diff changeset
1793 ggp_get_account_text_table, /* get_account_text_table */
23707
480f94157418 propagate from branch 'im.pidgin.pidgin' (head bd5f7f61d9349053ee4738efc0d17453f0574057)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23325 22648
diff changeset
1794 NULL, /* initiate_media */
29404
f51e82b8b886 Made it compile again.
Marcus Lundblad <malu@pidgin.im>
parents: 29182
diff changeset
1795 NULL, /* can_do_media */
30138
cca9685df785 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <darkrain42@pidgin.im>
parents: 30134
diff changeset
1796 NULL, /* get_moods */
cca9685df785 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <darkrain42@pidgin.im>
parents: 30134
diff changeset
1797 NULL, /* set_public_alias */
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32261
diff changeset
1798 NULL /* get_public_alias */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1799 };
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1800
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1801 static gboolean ggp_load(PurplePlugin *plugin);
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1802 static gboolean ggp_unload(PurplePlugin *plugin);
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1803
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1804 static PurplePluginInfo info = {
24746
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1805 PURPLE_PLUGIN_MAGIC, /* magic */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1806 PURPLE_MAJOR_VERSION, /* major_version */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1807 PURPLE_MINOR_VERSION, /* minor_version */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1808 PURPLE_PLUGIN_PROTOCOL, /* plugin type */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1809 NULL, /* ui_requirement */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1810 0, /* flags */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1811 NULL, /* dependencies */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1812 PURPLE_PRIORITY_DEFAULT, /* priority */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1813
24746
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1814 "prpl-gg", /* id */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1815 "Gadu-Gadu", /* name */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1816 DISPLAY_VERSION, /* version */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1817
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1818 N_("Gadu-Gadu Protocol Plugin"), /* summary */
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1819 N_("Polish popular IM"), /* description */
24746
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1820 "boler@sourceforge.net", /* author */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1821 PURPLE_WEBSITE, /* homepage */
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1822
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1823 ggp_load, /* load */
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1824 ggp_unload, /* unload */
24746
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1825 NULL, /* destroy */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1826
24746
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1827 NULL, /* ui_info */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1828 &prpl_info, /* extra_info */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1829 NULL, /* prefs_info */
ffee942a34b2 Kill off a bajillion comments that just needlessly duplicate function
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 24745
diff changeset
1830 ggp_actions, /* actions */
16746
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
1831
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
1832 /* padding */
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
1833 NULL,
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
1834 NULL,
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
1835 NULL,
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16490
diff changeset
1836 NULL
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1837 };
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1838
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1839 static void purple_gg_debug_handler(int level, const char * format, va_list args) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1840 PurpleDebugLevel purple_level;
11541
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1841 char *msg = g_strdup_vprintf(format, args);
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1842
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1843 /* This is pretty pointless since the GG_DEBUG levels don't correspond to
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1844 * the purple ones */
11541
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1845 switch (level) {
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1846 case GG_DEBUG_FUNCTION:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1847 purple_level = PURPLE_DEBUG_INFO;
11541
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1848 break;
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1849 case GG_DEBUG_MISC:
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1850 case GG_DEBUG_NET:
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1851 case GG_DEBUG_DUMP:
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1852 case GG_DEBUG_TRAFFIC:
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1853 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1854 purple_level = PURPLE_DEBUG_MISC;
11541
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1855 break;
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1856 }
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1857
24683
3481a3320313 Backport the 'purple_debug_*(msg)' -> 'purple_debug_*("%s", msg);' fixes.
Richard Laager <rlaager@pidgin.im>
parents: 24569
diff changeset
1858 purple_debug(purple_level, "gg", "%s", msg);
11541
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1859 g_free(msg);
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1860 }
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1861
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1862 static PurpleAccountOption *ggp_server_option;
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1863
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1864 static void init_plugin(PurplePlugin *plugin)
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1865 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1866 PurpleAccountOption *option;
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1867 GList *encryption_options = NULL;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5136
diff changeset
1868
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1869 purple_prefs_add_none("/plugins/prpl/gg");
33287
79ed046bf275 Report libgadu version, remove unused variable.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32763
diff changeset
1870
27255
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1871 option = purple_account_option_string_new(_("GG server"),
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1872 "gg_server", "");
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1873 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1874 option);
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1875 ggp_server_option = option;
27255
d2284774cfed Allow Gadu-Gadu accounts to specify Connect Server. Refs #6691.
Paul Aurich <darkrain42@pidgin.im>
parents: 27197
diff changeset
1876
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1877 #define ADD_VALUE(list, desc, v) { \
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1878 PurpleKeyValuePair *kvp = g_new0(PurpleKeyValuePair, 1); \
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1879 kvp->key = g_strdup((desc)); \
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1880 kvp->value = g_strdup((v)); \
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1881 list = g_list_append(list, kvp); \
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1882 }
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1883
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1884 ADD_VALUE(encryption_options, _("Use encryption if available"),
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1885 "opportunistic_tls");
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1886 ADD_VALUE(encryption_options, _("Require encryption"), "require_tls");
32643
c7ba76b54779 Gadu-Gadu: possibility to require encryption; use encryption when available is default option now
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32617
diff changeset
1887 ADD_VALUE(encryption_options, _("Don't use encryption"), "none");
31685
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1888
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1889 option = purple_account_option_list_new(_("Connection security"),
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1890 "encryption", encryption_options);
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1891 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1892 option);
166a2f589d32 gg: Allow the user to choose whether to use SSL/TLS support. Fixes #13894.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 31665
diff changeset
1893
32651
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1894 option = purple_account_option_bool_new(_("Show links from strangers"),
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1895 "show_links_from_strangers", 1);
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1896 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1897 option);
cc247c37281e Gadu-Gadu: option to show links from strangers. Fixes #10591
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32650
diff changeset
1898
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1899 gg_debug_handler = purple_gg_debug_handler;
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1900 }
11541
b1468184879c [gaim-migrate @ 13796]
Daniel Atallah <datallah@pidgin.im>
parents: 11538
diff changeset
1901
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1902 static gboolean ggp_load(PurplePlugin *plugin)
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1903 {
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1904 purple_debug_info("gg", "Loading Gadu-Gadu protocol plugin with "
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1905 "libgadu %s...\n", gg_libgadu_version());
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1906
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1907 ggp_resolver_purple_setup();
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1908 ggp_servconn_setup(ggp_server_option);
32674
2de7f0cebb8b Gadu-Gadu: move our win32 resolver out of libgadu sources. Refs #343
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32653
diff changeset
1909
33339
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1910 return TRUE;
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1911 }
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1912
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1913 static gboolean ggp_unload(PurplePlugin *plugin)
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1914 {
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1915 ggp_servconn_cleanup();
02ee2834030c Gadu-Gadu: servers history feature
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33337
diff changeset
1916 return TRUE;
2393
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1917 }
cfef0212506b [gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1918
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
1919 PURPLE_INIT_PLUGIN(gg, init_plugin, info);
11360
b77fd5a8959a [gaim-migrate @ 13582]
Bartosz Oler <bartosz@pidgin.im>
parents: 11257
diff changeset
1920
12007
bf1190509b70 [gaim-migrate @ 14300]
Bartosz Oler <bartosz@pidgin.im>
parents: 11920
diff changeset
1921 /* vim: set ts=8 sts=0 sw=8 noet: */

mercurial