Thu, 11 Dec 2008 06:32:05 +0000
Remove the commas at the end of enumerator lists. This resolves warnings
when building libpurple within the Mozilla build system that turn into errors
if the compiler is switched to a C++ compiler. Fixes #7717.
committer: John Bailey <rekkanoryo@rekkanoryo.org>
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1 | /** |
|
15087
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
2 | * @file buddy_opt.c |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
3 | * |
| 15884 | 4 | * purple |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
15087
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
7 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
8 | * source distribution. |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
9 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
10 | * This program is free software; you can redistribute it and/or modify |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
11 | * it under the terms of the GNU General Public License as published by |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
12 | * the Free Software Foundation; either version 2 of the License, or |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
13 | * (at your option) any later version. |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
14 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
15 | * This program is distributed in the hope that it will be useful, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
18 | * GNU General Public License for more details. |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
19 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
20 | * You should have received a copy of the GNU General Public License |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
21 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19097
diff
changeset
|
22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
23 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
24 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
25 | #include "debug.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
26 | #include "internal.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
27 | #include "notify.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
28 | #include "request.h" |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
29 | #include "privacy.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
30 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
31 | #include "buddy_info.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
32 | #include "buddy_list.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
33 | #include "buddy_opt.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
34 | #include "char_conv.h" |
|
24340
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
35 | #include "qq_define.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
36 | #include "im.h" |
|
23950
a974649cdb89
2008.08.02 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23193
diff
changeset
|
37 | #include "qq_base.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
38 | #include "packet_parse.h" |
| 23192 | 39 | #include "qq_network.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
40 | #include "utils.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
41 | |
| 15884 | 42 | #define PURPLE_GROUP_QQ_FORMAT "QQ (%s)" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
43 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
44 | #define QQ_REMOVE_SELF_REPLY_OK 0x00 |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
45 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
46 | enum { |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
47 | QQ_MY_AUTH_APPROVE = 0x30, /* ASCII value of "0" */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
48 | QQ_MY_AUTH_REJECT = 0x31, /* ASCII value of "1" */ |
|
25105
fe13c190ca13
Remove the commas at the end of enumerator lists. This resolves warnings
Florian Quèze <florian@instantbird.org>
parents:
25028
diff
changeset
|
49 | QQ_MY_AUTH_REQUEST = 0x32 /* ASCII value of "2" */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
50 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
51 | |
|
24365
af3e4261a311
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
52 | typedef struct _qq_buddy_req { |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
53 | PurpleConnection *gc; |
|
24365
af3e4261a311
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
54 | guint32 uid; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
55 | guint8 *auth; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
56 | guint8 auth_len; |
|
24365
af3e4261a311
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
57 | } qq_buddy_req; |
|
af3e4261a311
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
58 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
59 | void add_buddy_authorize_input(PurpleConnection *gc, guint32 uid, |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
60 | guint8 *auth, guint8 auth_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
61 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
62 | static void buddy_req_free(qq_buddy_req *add_req) |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
63 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
64 | g_return_if_fail(add_req != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
65 | if (add_req->auth) g_free(add_req->auth); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
66 | g_free(add_req); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
67 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
68 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
69 | static void buddy_req_cancel_cb(qq_buddy_req *add_req, const gchar *msg) |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
70 | { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
71 | g_return_if_fail(add_req != NULL); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
72 | buddy_req_free(add_req); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
73 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
74 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
75 | PurpleGroup *qq_group_find_or_new(const gchar *group_name) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
76 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
77 | PurpleGroup *g; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
78 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
79 | g_return_val_if_fail(group_name != NULL, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
80 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
81 | g = purple_find_group(group_name); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
82 | if (g == NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
83 | g = purple_group_new(group_name); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
84 | purple_blist_add_group(g, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
85 | purple_debug_warning("QQ", "Add new group: %s\n", group_name); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
86 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
87 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
88 | return g; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
89 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
90 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
91 | static qq_buddy_data *qq_buddy_data_new(guint32 uid) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
92 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
93 | qq_buddy_data *bd = g_new0(qq_buddy_data, 1); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
94 | memset(bd, 0, sizeof(qq_buddy_data)); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
95 | bd->uid = uid; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
96 | bd->status = QQ_BUDDY_OFFLINE; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
97 | return bd; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
98 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
99 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
100 | qq_buddy_data *qq_buddy_data_find(PurpleConnection *gc, guint32 uid) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
101 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
102 | gchar *who; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
103 | PurpleBuddy *buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
104 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
105 | g_return_val_if_fail(gc != NULL, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
106 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
107 | who = uid_to_purple_name(uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
108 | if (who == NULL) return NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
109 | buddy = purple_find_buddy(purple_connection_get_account(gc), who); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
110 | g_free(who); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
111 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
112 | if (buddy == NULL) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
113 | purple_debug_error("QQ", "Can not find purple buddy of %u\n", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
114 | return NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
115 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
116 | if (buddy->proto_data == NULL) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
117 | purple_debug_error("QQ", "Can not find buddy data of %u\n", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
118 | return NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
119 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
120 | return (qq_buddy_data *)buddy->proto_data; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
121 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
122 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
123 | void qq_buddy_data_free(qq_buddy_data *bd) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
124 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
125 | g_return_if_fail(bd != NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
126 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
127 | if (bd->nickname) g_free(bd->nickname); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
128 | g_free(bd); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
129 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
130 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
131 | /* create purple buddy without data and display with no-auth icon */ |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
132 | PurpleBuddy *qq_buddy_new(PurpleConnection *gc, guint32 uid) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
133 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
134 | PurpleBuddy *buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
135 | PurpleGroup *group; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
136 | gchar *who; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
137 | gchar *group_name; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
138 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
139 | g_return_val_if_fail(gc->account != NULL && uid != 0, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
140 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
141 | group_name = g_strdup_printf(PURPLE_GROUP_QQ_FORMAT, |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
142 | purple_account_get_username(gc->account)); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
143 | group = qq_group_find_or_new(group_name); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
144 | if (group == NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
145 | purple_debug_error("QQ", "Failed creating group %s\n", group_name); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
146 | return NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
147 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
148 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
149 | purple_debug_info("QQ", "Add new purple buddy: [%u]\n", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
150 | who = uid_to_purple_name(uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
151 | buddy = purple_buddy_new(gc->account, who, NULL); /* alias is NULL */ |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
152 | buddy->proto_data = NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
153 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
154 | g_free(who); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
155 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
156 | purple_blist_add_buddy(buddy, NULL, group, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
157 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
158 | g_free(group_name); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
159 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
160 | return buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
161 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
162 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
163 | static void qq_buddy_free(PurpleBuddy *buddy) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
164 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
165 | g_return_if_fail(buddy); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
166 | if (buddy->proto_data) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
167 | qq_buddy_data_free(buddy->proto_data); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
168 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
169 | buddy->proto_data = NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
170 | purple_blist_remove_buddy(buddy); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
171 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
172 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
173 | PurpleBuddy *qq_buddy_find(PurpleConnection *gc, guint32 uid) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
174 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
175 | PurpleBuddy *buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
176 | gchar *who; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
177 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
178 | g_return_val_if_fail(gc->account != NULL && uid != 0, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
179 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
180 | who = uid_to_purple_name(uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
181 | buddy = purple_find_buddy(gc->account, who); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
182 | g_free(who); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
183 | return buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
184 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
185 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
186 | PurpleBuddy *qq_buddy_find_or_new(PurpleConnection *gc, guint32 uid) |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
187 | { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
188 | PurpleBuddy *buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
189 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
190 | g_return_val_if_fail(gc->account != NULL && uid != 0, NULL); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
191 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
192 | buddy = qq_buddy_find(gc, uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
193 | if (buddy == NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
194 | buddy = qq_buddy_new(gc, uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
195 | if (buddy == NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
196 | return NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
197 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
198 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
199 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
200 | if (buddy->proto_data != NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
201 | return buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
202 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
203 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
204 | buddy->proto_data = qq_buddy_data_new(uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
205 | return buddy; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
206 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
207 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
208 | /* send packet to remove a buddy from my buddy list */ |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
209 | static void request_remove_buddy(PurpleConnection *gc, guint32 uid) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
210 | { |
|
14581
5c4b594933f6
[gaim-migrate @ 17239]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14381
diff
changeset
|
211 | gchar uid_str[11]; |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
212 | gint bytes; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
213 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
214 | g_return_if_fail(uid > 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
215 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
216 | g_snprintf(uid_str, sizeof(uid_str), "%u", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
217 | bytes = strlen(uid_str); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
218 | qq_send_cmd_mess(gc, QQ_CMD_REMOVE_BUDDY, (guint8 *) uid_str, bytes, 0, uid); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
219 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
220 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
221 | static void request_remove_buddy_ex(PurpleConnection *gc, |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
222 | guint32 uid, guint8 *auth, guint8 auth_len) |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
223 | { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
224 | gint bytes; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
225 | guint8 *raw_data; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
226 | gchar uid_str[16]; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
227 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
228 | g_return_if_fail(uid != 0); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
229 | g_return_if_fail(auth != NULL && auth_len > 0); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
230 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
231 | raw_data = g_newa(guint8, auth_len + sizeof(uid_str) ); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
232 | bytes = 0; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
233 | bytes += qq_put8(raw_data + bytes, auth_len); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
234 | bytes += qq_putdata(raw_data + bytes, auth, auth_len); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
235 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
236 | g_snprintf(uid_str, sizeof(uid_str), "%u", uid); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
237 | bytes += qq_putdata(raw_data + bytes, (guint8 *)uid_str, strlen(uid_str)); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
238 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
239 | qq_send_cmd_mess(gc, QQ_CMD_REMOVE_BUDDY, raw_data, bytes, 0, uid); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
240 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
241 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
242 | void qq_request_auth_code(PurpleConnection *gc, guint8 cmd, guint16 sub_cmd, guint32 uid) |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
243 | { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
244 | guint8 raw_data[16]; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
245 | gint bytes; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
246 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
247 | g_return_if_fail(uid > 0); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
248 | bytes = 0; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
249 | bytes += qq_put8(raw_data + bytes, cmd); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
250 | bytes += qq_put16(raw_data + bytes, sub_cmd); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
251 | bytes += qq_put32(raw_data + bytes, uid); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
252 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
253 | qq_send_cmd_mess(gc, QQ_CMD_AUTH_CODE, raw_data, bytes, 0, uid); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
254 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
255 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
256 | void qq_process_auth_code(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
257 | { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
258 | qq_data *qd; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
259 | gint bytes; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
260 | guint8 cmd, reply; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
261 | guint16 sub_cmd; |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
262 | guint8 *code = NULL; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
263 | guint16 code_len = 0; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
264 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
265 | g_return_if_fail(data != NULL && data_len != 0); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
266 | g_return_if_fail(uid != 0); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
267 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
268 | qd = (qq_data *) gc->proto_data; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
269 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
270 | qq_show_packet("qq_process_auth_code", data, data_len); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
271 | bytes = 0; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
272 | bytes += qq_get8(&cmd, data + bytes); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
273 | bytes += qq_get16(&sub_cmd, data + bytes); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
274 | bytes += qq_get8(&reply, data + bytes); |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
275 | g_return_if_fail(bytes + 2 <= data_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
276 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
277 | bytes += qq_get16(&code_len, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
278 | g_return_if_fail(code_len > 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
279 | g_return_if_fail(bytes + code_len <= data_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
280 | code = g_newa(guint8, code_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
281 | bytes += qq_getdata(code, code_len, data + bytes); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
282 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
283 | if (cmd == QQ_AUTH_INFO_BUDDY && sub_cmd == QQ_AUTH_INFO_REMOVE_BUDDY) { |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
284 | request_remove_buddy_ex(gc, uid, code, code_len); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
285 | return; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
286 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
287 | if (cmd == QQ_AUTH_INFO_BUDDY && sub_cmd == QQ_AUTH_INFO_ADD_BUDDY) { |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
288 | add_buddy_authorize_input(gc, uid, code, code_len); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
289 | return; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
290 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
291 | purple_debug_info("QQ", "Got auth info cmd 0x%x, sub 0x%x, reply 0x%x\n", |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
292 | cmd, sub_cmd, reply); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
293 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
294 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
295 | static void add_buddy_question_cb(qq_buddy_req *add_req, const gchar *text) |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
296 | { |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
297 | g_return_if_fail(add_req != NULL); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
298 | if (add_req->gc == NULL || add_req->uid == 0) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
299 | buddy_req_free(add_req); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
300 | return; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
301 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
302 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
303 | qq_request_question(add_req->gc, QQ_QUESTION_ANSWER, add_req->uid, NULL, text); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
304 | buddy_req_free(add_req); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
305 | } |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
306 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
307 | static void add_buddy_question_input(PurpleConnection *gc, guint32 uid, gchar *question) |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
308 | { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
309 | gchar *who, *msg; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
310 | qq_buddy_req *add_req; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
311 | g_return_if_fail(uid != 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
312 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
313 | add_req = g_new0(qq_buddy_req, 1); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
314 | add_req->gc = gc; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
315 | add_req->uid = uid; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
316 | add_req->auth = NULL; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
317 | add_req->auth_len = 0; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
318 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
319 | who = uid_to_purple_name(uid); |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
320 | msg = g_strdup_printf(_("%u needs Q&A"), uid); |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
321 | purple_request_input(gc, _("Add buddy Q&A"), msg, |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
322 | _("Input answer here"), |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
323 | NULL, |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
324 | TRUE, FALSE, NULL, |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
325 | _("Send"), G_CALLBACK(add_buddy_question_cb), |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
326 | _("Cancel"), G_CALLBACK(buddy_req_cancel_cb), |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
327 | purple_connection_get_account(gc), who, NULL, |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
328 | add_req); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
329 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
330 | g_free(msg); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
331 | g_free(who); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
332 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
333 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
334 | void qq_request_question(PurpleConnection *gc, |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
335 | guint8 cmd, guint32 uid, const gchar *question_utf8, const gchar *answer_utf8) |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
336 | { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
337 | guint8 raw_data[MAX_PACKET_SIZE - 16]; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
338 | gint bytes; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
339 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
340 | g_return_if_fail(uid > 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
341 | bytes = 0; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
342 | bytes += qq_put8(raw_data + bytes, cmd); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
343 | if (cmd == QQ_QUESTION_GET) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
344 | bytes += qq_put8(raw_data + bytes, 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
345 | qq_send_cmd_mess(gc, QQ_CMD_BUDDY_QUESTION, raw_data, bytes, 0, uid); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
346 | return; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
347 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
348 | if (cmd == QQ_QUESTION_SET) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
349 | bytes += qq_put_vstr(raw_data + bytes, question_utf8, QQ_CHARSET_DEFAULT); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
350 | bytes += qq_put_vstr(raw_data + bytes, answer_utf8, QQ_CHARSET_DEFAULT); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
351 | bytes += qq_put8(raw_data + bytes, 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
352 | qq_send_cmd_mess(gc, QQ_CMD_BUDDY_QUESTION, raw_data, bytes, 0, uid); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
353 | return; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
354 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
355 | /* Unknow 2 bytes, 0x(00 01) */ |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
356 | bytes += qq_put8(raw_data + bytes, 0x00); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
357 | bytes += qq_put8(raw_data + bytes, 0x01); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
358 | g_return_if_fail(uid != 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
359 | bytes += qq_put32(raw_data + bytes, uid); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
360 | if (cmd == QQ_QUESTION_REQUEST) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
361 | qq_send_cmd_mess(gc, QQ_CMD_BUDDY_QUESTION, raw_data, bytes, 0, uid); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
362 | return; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
363 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
364 | bytes += qq_put_vstr(raw_data + bytes, answer_utf8, QQ_CHARSET_DEFAULT); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
365 | bytes += qq_put8(raw_data + bytes, 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
366 | qq_send_cmd_mess(gc, QQ_CMD_BUDDY_QUESTION, raw_data, bytes, 0, uid); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
367 | return; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
368 | } |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
369 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
370 | static void request_add_buddy_by_question(PurpleConnection *gc, guint32 uid, |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
371 | guint8 *code, guint16 code_len) |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
372 | { |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
373 | guint8 raw_data[MAX_PACKET_SIZE - 16]; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
374 | gint bytes = 0; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
375 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
376 | g_return_if_fail(uid != 0 && code_len > 0); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
377 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
378 | bytes = 0; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
379 | bytes += qq_put8(raw_data + bytes, 0x10); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
380 | bytes += qq_put32(raw_data + bytes, uid); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
381 | bytes += qq_put16(raw_data + bytes, 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
382 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
383 | bytes += qq_put8(raw_data + bytes, 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
384 | bytes += qq_put8(raw_data + bytes, 0); /* no auth code */ |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
385 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
386 | bytes += qq_put16(raw_data + bytes, code_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
387 | bytes += qq_putdata(raw_data + bytes, code, code_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
388 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
389 | bytes += qq_put8(raw_data + bytes, 1); /* ALLOW ADD ME FLAG */ |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
390 | bytes += qq_put8(raw_data + bytes, 0); /* group number? */ |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
391 | qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH_EX, raw_data, bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
392 | } |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
393 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
394 | void qq_process_question(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
395 | { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
396 | qq_data *qd; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
397 | gint bytes; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
398 | guint8 cmd, reply; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
399 | gchar *question, *answer; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
400 | guint16 code_len; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
401 | guint8 *code; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
402 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
403 | g_return_if_fail(data != NULL && data_len != 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
404 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
405 | qd = (qq_data *) gc->proto_data; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
406 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
407 | qq_show_packet("qq_process_question", data, data_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
408 | bytes = 0; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
409 | bytes += qq_get8(&cmd, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
410 | if (cmd == QQ_QUESTION_GET) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
411 | bytes += qq_get_vstr(&question, QQ_CHARSET_DEFAULT, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
412 | bytes += qq_get_vstr(&answer, QQ_CHARSET_DEFAULT, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
413 | purple_debug_info("QQ", "Get buddy adding Q&A:\n%s\n%s\n", question, answer); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
414 | g_free(question); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
415 | g_free(answer); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
416 | return; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
417 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
418 | if (cmd == QQ_QUESTION_SET) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
419 | bytes += qq_get8(&reply, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
420 | if (reply == 0) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
421 | purple_debug_info("QQ", "Successed setting Q&A\n"); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
422 | } else { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
423 | purple_debug_warning("QQ", "Failed setting Q&A, reply %d\n", reply); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
424 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
425 | return; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
426 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
427 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
428 | g_return_if_fail(uid != 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
429 | bytes += 2; /* skip 2 bytes, 0x(00 01)*/ |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
430 | if (cmd == QQ_QUESTION_REQUEST) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
431 | bytes += qq_get8(&reply, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
432 | if (reply == 0x01) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
433 | purple_debug_warning("QQ", "Failed getting question, reply %d\n", reply); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
434 | return; |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
435 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
436 | bytes += qq_get_vstr(&question, QQ_CHARSET_DEFAULT, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
437 | purple_debug_info("QQ", "Get buddy question:\n%s\n", question); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
438 | add_buddy_question_input(gc, uid, question); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
439 | g_free(question); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
440 | return; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
441 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
442 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
443 | if (cmd == QQ_QUESTION_ANSWER) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
444 | bytes += qq_get8(&reply, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
445 | if (reply == 0x01) { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
446 | purple_notify_error(gc, _("Add Buddy"), _("Invalid answer."), NULL); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
447 | return; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
448 | } |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
449 | bytes += qq_get16(&code_len, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
450 | g_return_if_fail(code_len > 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
451 | g_return_if_fail(bytes + code_len <= data_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
452 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
453 | code = g_newa(guint8, code_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
454 | bytes += qq_getdata(code, code_len, data + bytes); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
455 | request_add_buddy_by_question(gc, uid, code, code_len); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
456 | return; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
457 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
458 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
459 | g_return_if_reached(); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
460 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
461 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
462 | /* try to remove myself from someone's buddy list */ |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
463 | static void request_buddy_remove_me(PurpleConnection *gc, guint32 uid) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
464 | { |
| 23190 | 465 | guint8 raw_data[16] = {0}; |
| 466 | gint bytes = 0; | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
467 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
468 | g_return_if_fail(uid > 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
469 | |
| 23190 | 470 | bytes += qq_put32(raw_data + bytes, uid); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
471 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
472 | qq_send_cmd_mess(gc, QQ_CMD_REMOVE_ME, raw_data, bytes, 0, uid); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
473 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
474 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
475 | /* try to add a buddy without authentication */ |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
476 | static void request_add_buddy_no_auth(PurpleConnection *gc, guint32 uid) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
477 | { |
|
14581
5c4b594933f6
[gaim-migrate @ 17239]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14381
diff
changeset
|
478 | gchar uid_str[11]; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
479 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
480 | g_return_if_fail(uid > 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
481 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
482 | /* we need to send the ascii code of this uid to qq server */ |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
483 | g_snprintf(uid_str, sizeof(uid_str), "%u", uid); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
484 | qq_send_cmd_mess(gc, QQ_CMD_ADD_BUDDY_NO_AUTH, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
485 | (guint8 *) uid_str, strlen(uid_str), 0, uid); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
486 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
487 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
488 | static void request_add_buddy_no_auth_ex(PurpleConnection *gc, guint32 uid) |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
489 | { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
490 | guint bytes; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
491 | guint8 raw_data[16]; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
492 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
493 | g_return_if_fail(uid != 0); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
494 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
495 | bytes = 0; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
496 | bytes += qq_put32(raw_data + bytes, uid); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
497 | qq_send_cmd_mess(gc, QQ_CMD_ADD_BUDDY_NO_AUTH_EX, raw_data, bytes, 0, uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
498 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
499 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
500 | /* this buddy needs authentication, text conversion is done at lowest level */ |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
501 | static void request_add_buddy_auth(PurpleConnection *gc, guint32 uid, const gchar response, const gchar *text) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
502 | { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
503 | guint8 raw_data[MAX_PACKET_SIZE - 16]; |
|
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
504 | gint bytes; |
|
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
505 | gchar *msg, uid_str[11]; |
|
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
506 | guint8 bar; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
507 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
508 | g_return_if_fail(uid != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
509 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
510 | g_snprintf(uid_str, sizeof(uid_str), "%u", uid); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
511 | bar = 0x1f; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
512 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
513 | bytes = 0; |
| 23190 | 514 | bytes += qq_putdata(raw_data + bytes, (guint8 *) uid_str, strlen(uid_str)); |
| 515 | bytes += qq_put8(raw_data + bytes, bar); | |
| 516 | bytes += qq_put8(raw_data + bytes, response); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
517 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
518 | if (text != NULL) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
519 | msg = utf8_to_qq(text, QQ_CHARSET_DEFAULT); |
| 23190 | 520 | bytes += qq_put8(raw_data + bytes, bar); |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
521 | bytes += qq_putdata(raw_data + bytes, (guint8 *) msg, strlen(msg)); |
|
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
522 | g_free(msg); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
523 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
524 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
525 | qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH, raw_data, bytes); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
526 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
527 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
528 | static void request_add_buddy_auth_ex(PurpleConnection *gc, guint32 uid, |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
529 | const gchar *text, guint8 *auth, guint8 auth_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
530 | { |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
531 | guint8 raw_data[MAX_PACKET_SIZE - 16]; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
532 | gint bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
533 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
534 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
535 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
536 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
537 | bytes += qq_put8(raw_data + bytes, 0x02); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
538 | bytes += qq_put32(raw_data + bytes, uid); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
539 | bytes += qq_put16(raw_data + bytes, 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
540 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
541 | bytes += qq_put8(raw_data + bytes, 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
542 | if (auth == NULL || auth_len <= 0) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
543 | bytes += qq_put8(raw_data + bytes, 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
544 | } else { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
545 | bytes += qq_put8(raw_data + bytes, auth_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
546 | bytes += qq_putdata(raw_data + bytes, auth, auth_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
547 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
548 | bytes += qq_put8(raw_data + bytes, 1); /* ALLOW ADD ME FLAG */ |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
549 | bytes += qq_put8(raw_data + bytes, 0); /* group number? */ |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
550 | bytes += qq_put_vstr(raw_data + bytes, text, QQ_CHARSET_DEFAULT); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
551 | qq_send_cmd(gc, QQ_CMD_ADD_BUDDY_AUTH_EX, raw_data, bytes); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
552 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
553 | |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
554 | void qq_process_add_buddy_auth_ex(PurpleConnection *gc, guint8 *data, gint data_len, guint32 ship32) |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
555 | { |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
556 | g_return_if_fail(data != NULL && data_len != 0); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
557 | |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
558 | qq_show_packet("qq_process_question", data, data_len); |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
559 | } |
|
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
560 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
561 | static void add_buddy_auth_cb(qq_buddy_req *add_req, const gchar *text) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
562 | { |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
563 | qq_data *qd; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
564 | g_return_if_fail(add_req != NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
565 | if (add_req->gc == NULL || add_req->uid == 0) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
566 | buddy_req_free(add_req); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
567 | return; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
568 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
569 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
570 | qd = (qq_data *)add_req->gc->proto_data; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
571 | if (qd->client_version > 2005) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
572 | request_add_buddy_auth_ex(add_req->gc, add_req->uid, |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
573 | text, add_req->auth, add_req->auth_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
574 | } else { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
575 | request_add_buddy_auth(add_req->gc, add_req->uid, QQ_MY_AUTH_REQUEST, text); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
576 | } |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
577 | buddy_req_free(add_req); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
578 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
579 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
580 | /* the real packet to reject and request is sent from here */ |
|
24365
af3e4261a311
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
581 | static void buddy_add_deny_reason_cb(qq_buddy_req *add_req, const gchar *reason) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
582 | { |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
583 | g_return_if_fail(add_req != NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
584 | if (add_req->gc == NULL || add_req->uid == 0) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
585 | buddy_req_free(add_req); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
586 | return; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
587 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
588 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
589 | request_add_buddy_auth(add_req->gc, add_req->uid, QQ_MY_AUTH_REJECT, reason); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
590 | buddy_req_free(add_req); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
591 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
592 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
593 | static void buddy_add_deny_noreason_cb(qq_buddy_req *add_req) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
594 | { |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
595 | buddy_add_deny_reason_cb(add_req, NULL); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
596 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
597 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
598 | /* we approve other's request of adding me as friend */ |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
599 | static void buddy_add_authorize_cb(gpointer data) |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
600 | { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
601 | qq_buddy_req *add_req = (qq_buddy_req *)data; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
602 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
603 | g_return_if_fail(add_req != NULL); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
604 | if (add_req->gc == NULL || add_req->uid == 0) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
605 | buddy_req_free(add_req); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
606 | return; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
607 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
608 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
609 | request_add_buddy_auth(add_req->gc, add_req->uid, QQ_MY_AUTH_APPROVE, NULL); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
610 | buddy_req_free(add_req); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
611 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
612 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
613 | /* we reject other's request of adding me as friend */ |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
614 | static void buddy_add_deny_cb(gpointer data) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
615 | { |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
616 | qq_buddy_req *add_req = (qq_buddy_req *)data; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
617 | gchar *who = uid_to_purple_name(add_req->uid); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
618 | purple_request_input(add_req->gc, NULL, _("Authorization denied message:"), |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
619 | NULL, _("Sorry, You are not my style."), TRUE, FALSE, NULL, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
620 | _("OK"), G_CALLBACK(buddy_add_deny_reason_cb), |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
621 | _("Cancel"), G_CALLBACK(buddy_add_deny_noreason_cb), |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
622 | purple_connection_get_account(add_req->gc), who, NULL, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
623 | add_req); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
624 | g_free(who); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
625 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
626 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
627 | static void add_buddy_no_auth_cb(qq_buddy_req *add_req) |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
628 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
629 | qq_data *qd; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
630 | g_return_if_fail(add_req != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
631 | if (add_req->gc == NULL || add_req->uid == 0) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
632 | buddy_req_free(add_req); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
633 | return; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
634 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
635 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
636 | qd = (qq_data *) add_req->gc->proto_data; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
637 | if (qd->client_version > 2005) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
638 | request_add_buddy_no_auth_ex(add_req->gc, add_req->uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
639 | } else { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
640 | request_add_buddy_no_auth(add_req->gc, add_req->uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
641 | } |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
642 | buddy_req_free(add_req); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
643 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
644 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
645 | void add_buddy_authorize_input(PurpleConnection *gc, guint32 uid, |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
646 | guint8 *auth, guint8 auth_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
647 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
648 | gchar *who, *msg; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
649 | qq_buddy_req *add_req; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
650 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
651 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
652 | add_req = g_new0(qq_buddy_req, 1); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
653 | add_req->gc = gc; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
654 | add_req->uid = uid; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
655 | add_req->auth = NULL; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
656 | add_req->auth_len = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
657 | if (auth != NULL && auth_len > 0) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
658 | add_req->auth = g_new0(guint8, auth_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
659 | g_memmove(add_req->auth, auth, auth_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
660 | add_req->auth_len = auth_len; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
661 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
662 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
663 | who = uid_to_purple_name(uid); |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
664 | msg = g_strdup_printf(_("%u needs authentication"), uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
665 | purple_request_input(gc, _("Add buddy authorize"), msg, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
666 | _("Input request here"), |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
667 | _("Would you be my friend?"), |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
668 | TRUE, FALSE, NULL, |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
669 | _("Send"), G_CALLBACK(add_buddy_auth_cb), |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
670 | _("Cancel"), G_CALLBACK(buddy_req_cancel_cb), |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
671 | purple_connection_get_account(gc), who, NULL, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
672 | add_req); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
673 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
674 | g_free(msg); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
675 | g_free(who); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
676 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
677 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
678 | /* add a buddy and send packet to QQ server |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
679 | * note that when purple load local cached buddy list into its blist |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
680 | * it also calls this funtion, so we have to |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
681 | * define qd->is_login=TRUE AFTER LOGIN */ |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
682 | void qq_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
683 | { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
684 | qq_data *qd; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
685 | guint32 uid; |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
686 | |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
687 | g_return_if_fail(NULL != gc && NULL != gc->proto_data); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
688 | g_return_if_fail(buddy != NULL); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
689 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
690 | qd = (qq_data *) gc->proto_data; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
691 | if (!qd->is_login) |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
692 | return; /* IMPORTANT ! */ |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
693 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
694 | uid = purple_name_to_uid(buddy->name); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
695 | if (uid > 0) { |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
696 | if (qd->client_version > 2005) { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
697 | request_add_buddy_no_auth_ex(gc, uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
698 | } else { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
699 | request_add_buddy_no_auth(gc, uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
700 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
701 | return; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
702 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
703 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
704 | purple_notify_error(gc, _("QQ Buddy"), _("Add buddy"), _("Invalid QQ Number")); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
705 | if (buddy == NULL) { |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
706 | return; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
707 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
708 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
709 | purple_debug_info("QQ", "Remove buddy with invalid QQ number %u\n", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
710 | qq_buddy_free(buddy); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
711 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
712 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
713 | /* process reply to add_buddy_auth request */ |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
714 | void qq_process_add_buddy_auth(guint8 *data, gint data_len, PurpleConnection *gc) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
715 | { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
716 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
717 | gchar **segments, *msg_utf8; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
718 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
719 | g_return_if_fail(data != NULL && data_len != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
720 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
721 | qd = (qq_data *) gc->proto_data; |
| 23190 | 722 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
723 | if (data[0] == '0') { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
724 | purple_debug_info("QQ", "Reply OK for sending authorize\n"); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
725 | return; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
726 | } |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
727 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
728 | if (NULL == (segments = split_data(data, data_len, "\x1f", 2))) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
729 | purple_notify_error(gc, _("QQ Buddy"), _("Failed sending authorize"), NULL); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
730 | return; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
731 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
732 | msg_utf8 = qq_to_utf8(segments[1], QQ_CHARSET_DEFAULT); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
733 | purple_notify_error(gc, _("QQ Buddy"), _("Failed sending authorize"), msg_utf8); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
734 | g_free(msg_utf8); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
735 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
736 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
737 | /* process the server reply for my request to remove a buddy */ |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
738 | void qq_process_remove_buddy(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
739 | { |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
740 | PurpleBuddy *buddy = NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
741 | gchar *msg; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
742 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
743 | g_return_if_fail(data != NULL && data_len != 0); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
744 | g_return_if_fail(uid != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
745 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
746 | buddy = qq_buddy_find(gc, uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
747 | if (data[0] != 0) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
748 | msg = g_strdup_printf(_("Failed removing buddy %u"), uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
749 | purple_notify_info(gc, _("QQ Buddy"), msg, NULL); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
750 | g_free(msg); |
| 23190 | 751 | } |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
752 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
753 | purple_debug_info("QQ", "Reply OK for removing buddy\n"); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
754 | /* remove buddy again */ |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
755 | if (buddy != NULL) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
756 | qq_buddy_free(buddy); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
757 | } |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
758 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
759 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
760 | /* process the server reply for my request to remove myself from a buddy */ |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
761 | void qq_process_buddy_remove_me(PurpleConnection *gc, guint8 *data, gint data_len, guint32 uid) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
762 | { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
763 | qq_data *qd; |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
764 | gchar *msg; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
765 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
766 | g_return_if_fail(data != NULL && data_len != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
767 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
768 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
769 | if (data[0] == 0) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
770 | purple_debug_info("QQ", "Reply OK for removing me from %u's buddy list\n", uid); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
771 | return; |
| 23190 | 772 | } |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
773 | msg = g_strdup_printf(_("Failed removing me from %d's buddy list"), uid); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
774 | purple_notify_info(gc, _("QQ Buddy"), msg, NULL); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
775 | g_free(msg); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
776 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
777 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
778 | void qq_process_add_buddy_no_auth(PurpleConnection *gc, |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
779 | guint8 *data, gint data_len, guint32 uid) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
780 | { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
781 | qq_data *qd; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
782 | gchar **segments; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
783 | gchar *dest_uid, *reply; |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
784 | PurpleBuddy *buddy; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
785 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
786 | g_return_if_fail(data != NULL && data_len != 0); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
787 | g_return_if_fail(uid != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
788 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
789 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
790 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
791 | purple_debug_info("QQ", "Process buddy add for id [%u]\n", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
792 | qq_show_packet("buddy_add_no_auth", data, data_len); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
793 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
794 | if (NULL == (segments = split_data(data, data_len, "\x1f", 2))) |
|
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
795 | return; |
|
24314
587e97c2b707
merge of 'd01a6b8ccfad536e692fa159a02583625596c4f5'
Daniel Atallah <datallah@pidgin.im>
parents:
24313
diff
changeset
|
796 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
797 | dest_uid = segments[0]; |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
798 | reply = segments[1]; |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
799 | if (strtoul(dest_uid, NULL, 10) != qd->uid) { /* should not happen */ |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
800 | purple_debug_error("QQ", "Add buddy reply is to [%s], not me!", dest_uid); |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
801 | g_strfreev(segments); |
|
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
802 | return; |
|
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
803 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
804 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
805 | if (strtol(reply, NULL, 10) == 0) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
806 | /* add OK */ |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
807 | qq_buddy_find_or_new(gc, uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
808 | |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
809 | qq_request_buddy_info(gc, uid, 0, 0); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
810 | if (qd->client_version >= 2007) { |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
811 | qq_request_get_level_2007(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
812 | } else { |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
813 | qq_request_get_level(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
814 | } |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
815 | qq_request_get_buddies_online(gc, 0, 0); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
816 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
817 | purple_debug_info("QQ", "Successed adding into %u's buddy list", uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
818 | g_strfreev(segments); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
819 | return; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
820 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
821 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
822 | /* need auth */ |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
823 | purple_debug_warning("QQ", "Failed adding buddy, need authorize\n"); |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
824 | |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
825 | buddy = qq_buddy_find(gc, uid); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
826 | if (buddy == NULL) { |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
827 | buddy = qq_buddy_new(gc, uid); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
828 | } |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
829 | if (buddy != NULL && buddy->proto_data != NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
830 | /* Not authorized now, free buddy data */ |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
831 | qq_buddy_data_free(buddy->proto_data); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
832 | buddy->proto_data = NULL; |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
833 | } |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
834 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
835 | add_buddy_authorize_input(gc, uid, NULL, 0); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
836 | g_strfreev(segments); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
837 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
838 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
839 | void qq_process_add_buddy_no_auth_ex(PurpleConnection *gc, |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
840 | guint8 *data, gint data_len, guint32 uid) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
841 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
842 | qq_data *qd; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
843 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
844 | guint32 dest_uid; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
845 | guint8 reply; |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
846 | guint8 auth_type; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
847 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
848 | g_return_if_fail(data != NULL && data_len >= 5); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
849 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
850 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
851 | qd = (qq_data *) gc->proto_data; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
852 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
853 | purple_debug_info("QQ", "Process buddy add no auth for id [%u]\n", uid); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
854 | qq_show_packet("buddy_add_no_auth_ex", data, data_len); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
855 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
856 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
857 | bytes += qq_get32(&dest_uid, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
858 | bytes += qq_get8(&reply, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
859 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
860 | g_return_if_fail(dest_uid == uid); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
861 | |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
862 | if (reply == 0x99) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
863 | purple_debug_info("QQ", "Successed adding buddy %u\n", uid); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
864 | qq_buddy_find_or_new(gc, uid); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
865 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
866 | qq_request_buddy_info(gc, uid, 0, 0); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
867 | if (qd->client_version >= 2007) { |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
868 | qq_request_get_level_2007(gc, uid); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
869 | } else { |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
870 | qq_request_get_level(gc, uid); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
871 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
872 | qq_request_get_buddies_online(gc, 0, 0); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
873 | return; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
874 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
875 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
876 | if (reply != 0) { |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
877 | purple_debug_info("QQ", "Failed adding buddy %u, Unknow reply 0x%02X\n", |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
878 | uid, reply); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
879 | } |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
880 | |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
881 | /* need auth */ |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
882 | g_return_if_fail(data_len > bytes); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
883 | bytes += qq_get8(&auth_type, data + bytes); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
884 | purple_debug_warning("QQ", "Adding buddy needs authorize 0x%02X\n", auth_type); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
885 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
886 | switch (auth_type) { |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
887 | case 0x00: /* no authorize */ |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
888 | break; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
889 | case 0x01: /* authorize */ |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
890 | qq_request_auth_code(gc, QQ_AUTH_INFO_BUDDY, QQ_AUTH_INFO_ADD_BUDDY, uid); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
891 | break; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
892 | case 0x02: /* disable */ |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
893 | break; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
894 | case 0x03: /* answer question */ |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
895 | qq_request_question(gc, QQ_QUESTION_REQUEST, uid, NULL, NULL); |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
896 | break; |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
897 | default: |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
898 | g_return_if_reached(); |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
899 | break; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
900 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
901 | return; |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24344
diff
changeset
|
902 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24344
diff
changeset
|
903 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
904 | /* remove a buddy and send packet to QQ server accordingly */ |
| 15884 | 905 | void qq_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
906 | { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
907 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
908 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
909 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
910 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
911 | g_return_if_fail(buddy != NULL); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
912 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
913 | qd = (qq_data *) gc->proto_data; |
|
24314
587e97c2b707
merge of 'd01a6b8ccfad536e692fa159a02583625596c4f5'
Daniel Atallah <datallah@pidgin.im>
parents:
24313
diff
changeset
|
914 | if (!qd->is_login) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
915 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
916 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
917 | uid = purple_name_to_uid(buddy->name); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
918 | if (uid > 0 && uid != qd->uid) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
919 | if (qd->client_version > 2005) { |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
920 | qq_request_auth_code(gc, QQ_AUTH_INFO_BUDDY, QQ_AUTH_INFO_REMOVE_BUDDY, uid); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
921 | } else { |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
922 | request_remove_buddy(gc, uid); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
923 | request_buddy_remove_me(gc, uid); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
924 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
925 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
926 | |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
927 | if (buddy->proto_data) { |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
928 | qq_buddy_data_free(buddy->proto_data); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
929 | buddy->proto_data = NULL; |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
930 | } else { |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
931 | purple_debug_warning("QQ", "Empty buddy data of %s\n", buddy->name); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
932 | } |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
933 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
934 | /* Do not call purple_blist_remove_buddy, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
935 | * otherwise purple segmentation fault */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
936 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
937 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
938 | static void buddy_add_input(PurpleConnection *gc, guint32 uid, gchar *reason) |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
939 | { |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
940 | PurpleAccount *account = purple_connection_get_account(gc); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
941 | qq_buddy_req *add_req; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
942 | gchar *who; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
943 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
944 | g_return_if_fail(uid != 0 && reason != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
945 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
946 | purple_debug_info("QQ", "Buddy %u request adding, msg: %s\n", uid, reason); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
947 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
948 | add_req = g_new0(qq_buddy_req, 1); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
949 | add_req->gc = gc; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
950 | add_req->uid = uid; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
951 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
952 | if (purple_prefs_get_bool("/plugins/prpl/qq/auto_get_authorize_info")) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
953 | qq_request_buddy_info(gc, add_req->uid, 0, QQ_BUDDY_INFO_DISPLAY); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
954 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
955 | who = uid_to_purple_name(add_req->uid); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
956 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
957 | purple_account_request_authorization(account, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
958 | who, NULL, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
959 | NULL, reason, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
960 | purple_find_buddy(account, who) != NULL, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
961 | buddy_add_authorize_cb, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
962 | buddy_add_deny_cb, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
963 | add_req); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
964 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
965 | g_free(who); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
966 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
967 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
968 | /* someone wants to add you to his buddy list */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
969 | static void server_buddy_add_request(PurpleConnection *gc, gchar *from, gchar *to, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
970 | guint8 *data, gint data_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
971 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
972 | guint32 uid; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
973 | gchar *msg, *reason; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
974 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
975 | g_return_if_fail(from != NULL && to != NULL); |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
976 | uid = strtoul(from, NULL, 10); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
977 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
978 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
979 | if (purple_prefs_get_bool("/plugins/prpl/qq/auto_get_authorize_info")) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
980 | qq_request_buddy_info(gc, uid, 0, QQ_BUDDY_INFO_DISPLAY); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
981 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
982 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
983 | if (data_len <= 0) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
984 | reason = g_strdup( _("No reason given") ); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
985 | } else { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
986 | msg = g_strndup((gchar *)data, data_len); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
987 | reason = qq_to_utf8(msg, QQ_CHARSET_DEFAULT); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
988 | if (reason == NULL) reason = g_strdup( _("Unknown reason") ); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
989 | g_free(msg); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
990 | } |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
991 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
992 | buddy_add_input(gc, uid, reason); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
993 | g_free(reason); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
994 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
995 | |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
996 | void qq_process_buddy_check_code(PurpleConnection *gc, guint8 *data, gint data_len) |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
997 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
998 | qq_data *qd; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
999 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1000 | guint8 cmd; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1001 | guint8 reply; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1002 | guint32 uid; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1003 | guint16 flag1, flag2; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1004 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1005 | g_return_if_fail(data != NULL && data_len >= 5); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1006 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1007 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1008 | qd = (qq_data *) gc->proto_data; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1009 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1010 | qq_show_packet("buddy_check_code", data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1011 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1012 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1013 | bytes += qq_get8(&cmd, data + bytes); /* 0x03 */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1014 | bytes += qq_get8(&reply, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1015 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1016 | if (reply == 0) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1017 | purple_debug_info("QQ", "Failed checking code\n"); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1018 | return; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1019 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1020 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1021 | bytes += qq_get32(&uid, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1022 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1023 | bytes += qq_get16(&flag1, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1024 | bytes += qq_get16(&flag2, data + bytes); |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
1025 | purple_debug_info("QQ", "Check code reply Ok, uid %u, flag 0x%04X-0x%04X\n", |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1026 | uid, flag1, flag2); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1027 | return; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1028 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1029 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1030 | static void request_buddy_check_code(PurpleConnection *gc, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1031 | gchar *from, guint8 *code, gint code_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1032 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1033 | guint8 *raw_data; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1034 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1035 | guint32 uid; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1036 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1037 | g_return_if_fail(code != NULL && code_len > 0 && from != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1038 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
1039 | uid = strtoul(from, NULL, 10); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1040 | raw_data = g_newa(guint8, code_len + 16); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1041 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1042 | bytes += qq_put8(raw_data + bytes, 0x03); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1043 | bytes += qq_put8(raw_data + bytes, 0x01); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1044 | bytes += qq_put32(raw_data + bytes, uid); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1045 | bytes += qq_put16(raw_data + bytes, code_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1046 | bytes += qq_putdata(raw_data + bytes, code, code_len); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1047 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1048 | qq_send_cmd(gc, QQ_CMD_BUDDY_CHECK_CODE, raw_data, bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1049 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1050 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1051 | static gint server_buddy_check_code(PurpleConnection *gc, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1052 | gchar *from, guint8 *data, gint data_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1053 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1054 | gint bytes; |
|
24370
982f5559baae
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
1055 | guint16 code_len; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1056 | guint8 *code; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1057 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1058 | g_return_val_if_fail(data != NULL && data_len > 0, 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1059 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1060 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1061 | bytes += qq_get16(&code_len, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1062 | if (code_len <= 0) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1063 | purple_debug_info("QQ", "Server msg for buddy has no code\n"); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1064 | return bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1065 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1066 | if (bytes + code_len < data_len) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1067 | purple_debug_error("QQ", "Code len error in server msg for buddy\n"); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1068 | qq_show_packet("server_buddy_check_code", data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1069 | code_len = data_len - bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1070 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1071 | code = g_newa(guint8, code_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1072 | bytes += qq_getdata(code, code_len, data + bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1073 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1074 | request_buddy_check_code(gc, from, code, code_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1075 | return bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1076 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1077 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1078 | static void server_buddy_add_request_ex(PurpleConnection *gc, gchar *from, gchar *to, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1079 | guint8 *data, gint data_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1080 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1081 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1082 | guint32 uid; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1083 | gchar *msg; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1084 | guint8 allow_reverse; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1085 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1086 | g_return_if_fail(from != NULL && to != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1087 | g_return_if_fail(data != NULL && data_len >= 3); |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
1088 | uid = strtoul(from, NULL, 10); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1089 | g_return_if_fail(uid != 0); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1090 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1091 | /* qq_show_packet("server_buddy_add_request_ex", data, data_len); */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1092 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1093 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1094 | bytes += qq_get_vstr(&msg, QQ_CHARSET_DEFAULT, data+bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1095 | bytes += qq_get8(&allow_reverse, data + bytes); /* allow_reverse = 0x01, allowed */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1096 | server_buddy_check_code(gc, from, data + bytes, data_len - bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1097 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1098 | if (strlen(msg) <= 0) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1099 | g_free(msg); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1100 | msg = g_strdup( _("No reason given") ); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1101 | } |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
1102 | buddy_add_input(gc, uid, msg); |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1103 | g_free(msg); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1104 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1105 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1106 | /* when you are added by a person, QQ server will send sys message */ |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1107 | static void server_buddy_added(PurpleConnection *gc, gchar *from, gchar *to, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1108 | guint8 *data, gint data_len) |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1109 | { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1110 | PurpleAccount *account = purple_connection_get_account(gc); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1111 | PurpleBuddy *buddy; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1112 | guint32 uid; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1113 | qq_buddy_req *add_req; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1114 | gchar *who; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1115 | gchar *primary; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1116 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1117 | g_return_if_fail(from != NULL && to != NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1118 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
1119 | uid = strtoul(from, NULL, 10); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1120 | who = uid_to_purple_name(uid); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1121 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1122 | buddy = purple_find_buddy(account, who); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1123 | if (buddy != NULL) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1124 | purple_account_notify_added(account, from, to, NULL, NULL); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1125 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1126 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1127 | add_req = g_new0(qq_buddy_req, 1); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1128 | add_req->gc = gc; |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1129 | add_req->uid = uid; /* only need to get value */ |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1130 | primary = g_strdup_printf(_("You have been added by %s"), from); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1131 | purple_request_action(gc, NULL, primary, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1132 | _("Would you like to add him?"), |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1133 | PURPLE_DEFAULT_ACTION_NONE, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1134 | purple_connection_get_account(gc), who, NULL, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1135 | add_req, 2, |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
1136 | _("Add"), G_CALLBACK(add_buddy_no_auth_cb), |
|
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24368
diff
changeset
|
1137 | _("Cancel"), G_CALLBACK(buddy_req_cancel_cb)); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1138 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1139 | g_free(who); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1140 | g_free(primary); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1141 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1142 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1143 | static void server_buddy_added_ex(PurpleConnection *gc, gchar *from, gchar *to, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1144 | guint8 *data, gint data_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1145 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1146 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1147 | guint8 allow_reverse; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1148 | gchar *msg; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1149 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1150 | g_return_if_fail(from != NULL && to != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1151 | g_return_if_fail(data != NULL && data_len >= 3); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1152 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1153 | qq_show_packet("server_buddy_added_ex", data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1154 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1155 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1156 | bytes += qq_get_vstr(&msg, QQ_CHARSET_DEFAULT, data+bytes); /* always empty msg */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1157 | purple_debug_info("QQ", "Buddy added msg: %s\n", msg); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1158 | bytes += qq_get8(&allow_reverse, data + bytes); /* allow_reverse = 0x01, allowed */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1159 | server_buddy_check_code(gc, from, data + bytes, data_len - bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1160 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1161 | g_free(msg); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1162 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1163 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1164 | static void server_buddy_adding_ex(PurpleConnection *gc, gchar *from, gchar *to, |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1165 | guint8 *data, gint data_len) |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1166 | { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1167 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1168 | guint8 allow_reverse; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1169 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1170 | g_return_if_fail(from != NULL && to != NULL); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1171 | g_return_if_fail(data != NULL && data_len >= 3); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1172 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1173 | qq_show_packet("server_buddy_adding_ex", data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1174 | |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1175 | bytes = 0; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1176 | bytes += qq_get8(&allow_reverse, data + bytes); /* allow_reverse = 0x01, allowed */ |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1177 | server_buddy_check_code(gc, from, data + bytes, data_len - bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1178 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1179 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1180 | /* the buddy approves your request of adding him/her as your friend */ |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1181 | static void server_buddy_added_me(PurpleConnection *gc, gchar *from, gchar *to, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1182 | guint8 *data, gint data_len) |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1183 | { |
|
24341
02abffea97fe
2008.09.26 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24340
diff
changeset
|
1184 | PurpleAccount *account = purple_connection_get_account(gc); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1185 | qq_data *qd; |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1186 | guint32 uid; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1187 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1188 | g_return_if_fail(from != NULL && to != NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1189 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1190 | qd = (qq_data *) gc->proto_data; |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1191 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
1192 | uid = strtoul(from, NULL, 10); |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1193 | g_return_if_fail(uid > 0); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1194 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1195 | server_buddy_check_code(gc, from, data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1196 | |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1197 | qq_buddy_find_or_new(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1198 | qq_request_buddy_info(gc, uid, 0, 0); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1199 | qq_request_get_buddies_online(gc, 0, 0); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1200 | if (qd->client_version >= 2007) { |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1201 | qq_request_get_level_2007(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1202 | } else { |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1203 | qq_request_get_level(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
1204 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1205 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1206 | purple_account_notify_added(account, to, from, NULL, NULL); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1207 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1208 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1209 | /* you are rejected by the person */ |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1210 | static void server_buddy_rejected_me(PurpleConnection *gc, gchar *from, gchar *to, |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1211 | guint8 *data, gint data_len) |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1212 | { |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1213 | guint32 uid; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1214 | PurpleBuddy *buddy; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1215 | gchar *msg, *msg_utf8; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1216 | gint bytes; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1217 | gchar **segments; |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1218 | gchar *primary, *secondary; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1219 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1220 | g_return_if_fail(from != NULL && to != NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1221 | |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1222 | qq_show_packet("server_buddy_rejected_me", data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1223 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1224 | if (data_len <= 0) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1225 | msg = g_strdup( _("No reason given") ); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1226 | } else { |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1227 | segments = g_strsplit((gchar *)data, "\x1f", 1); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1228 | if (segments != NULL && segments[0] != NULL) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1229 | msg = g_strdup(segments[0]); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1230 | g_strfreev(segments); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1231 | bytes = strlen(msg) + 1; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1232 | if (bytes < data_len) { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1233 | server_buddy_check_code(gc, from, data + bytes, data_len - bytes); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1234 | } |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1235 | } else { |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1236 | msg = g_strdup( _("No reason given") ); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1237 | } |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1238 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1239 | msg_utf8 = qq_to_utf8(msg, QQ_CHARSET_DEFAULT); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1240 | if (msg_utf8 == NULL) { |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1241 | msg_utf8 = g_strdup( _("Unknown reason") ); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1242 | } |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1243 | g_free(msg); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1244 | |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1245 | primary = g_strdup_printf(_("Rejected by %s"), from); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1246 | secondary = g_strdup_printf(_("Message: %s"), msg_utf8); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1247 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1248 | purple_notify_info(gc, _("QQ Buddy"), primary, secondary); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1249 | |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1250 | g_free(msg_utf8); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1251 | g_free(primary); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1252 | g_free(secondary); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1253 | |
|
25028
ecaeb08ebae8
Change QQ number to unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24370
diff
changeset
|
1254 | uid = strtoul(from, NULL, 10); |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1255 | g_return_if_fail(uid != 0); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1256 | |
|
24366
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1257 | buddy = qq_buddy_find(gc, uid); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1258 | if (buddy != NULL && buddy->proto_data != NULL) { |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1259 | /* Not authorized now, free buddy data */ |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1260 | qq_buddy_data_free(buddy->proto_data); |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1261 | buddy->proto_data = NULL; |
|
ccfd4cba02a4
2008.10.10 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24365
diff
changeset
|
1262 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1263 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1264 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1265 | void qq_process_buddy_from_server(PurpleConnection *gc, int funct, |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1266 | gchar *from, gchar *to, guint8 *data, gint data_len) |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1267 | { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1268 | switch (funct) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1269 | case QQ_SERVER_BUDDY_ADDED: |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1270 | server_buddy_added(gc, from, to, data, data_len); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1271 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1272 | case QQ_SERVER_BUDDY_ADD_REQUEST: |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1273 | server_buddy_add_request(gc, from, to, data, data_len); |
|
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1274 | break; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1275 | case QQ_SERVER_BUDDY_ADD_REQUEST_EX: |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1276 | server_buddy_add_request_ex(gc, from, to, data, data_len); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1277 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1278 | case QQ_SERVER_BUDDY_ADDED_ME: |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1279 | server_buddy_added_me(gc, from, to, data, data_len); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1280 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1281 | case QQ_SERVER_BUDDY_REJECTED_ME: |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24366
diff
changeset
|
1282 | server_buddy_rejected_me(gc, from, to, data, data_len); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1283 | break; |
|
24368
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1284 | case QQ_SERVER_BUDDY_ADDED_EX: |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1285 | server_buddy_added_ex(gc, from, to, data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1286 | break; |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1287 | case QQ_SERVER_BUDDY_ADDING_EX: |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1288 | case QQ_SERVER_BUDDY_ADDED_ANSWER: |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1289 | server_buddy_adding_ex(gc, from, to, data, data_len); |
|
4d20b95ce597
2008.10.20 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
1290 | break; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1291 | default: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1292 | purple_debug_warning("QQ", "Unknow buddy operate (%d) from server\n", funct); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1293 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1294 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
1295 | } |