Mercurial > pidgin.yaz
comparison src/protocols/qq/group_search.c @ 14021:ef8490f9e823
[gaim-migrate @ 16618]
Replaced all C++-style comments with C-style ones.
Cleaned up some comments and implemented a more consistent formatting scheme.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Huetsch <markhuetsch> |
---|---|
date | Wed, 02 Aug 2006 15:35:36 +0000 |
parents | 983fd420e86b |
children |
comparison
equal
deleted
inserted
replaced
14020:13e7ba964993 | 14021:ef8490f9e823 |
---|---|
18 * You should have received a copy of the GNU General Public License | 18 * You should have received a copy of the GNU General Public License |
19 * along with this program; if not, write to the Free Software | 19 * along with this program; if not, write to the Free Software |
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 */ | 21 */ |
22 | 22 |
23 // START OF FILE | 23 #include "debug.h" |
24 /*****************************************************************************/ | |
25 #include "debug.h" // gaim_debug | |
26 | 24 |
27 #include "char_conv.h" // convert_as_pascal_string | 25 #include "char_conv.h" |
28 #include "group_free.h" // qq_group_free_not_subscribed | 26 #include "group_free.h" |
29 #include "group_network.h" // qq_send_group_cmd | 27 #include "group_network.h" |
30 #include "group_search.h" | 28 #include "group_search.h" |
31 #include "utils.h" | 29 #include "utils.h" |
32 | 30 |
33 enum { | 31 enum { |
34 QQ_GROUP_SEARCH_TYPE_BY_ID = 0x01, | 32 QQ_GROUP_SEARCH_TYPE_BY_ID = 0x01, |
35 QQ_GROUP_SEARCH_TYPE_DEMO = 0x02, | 33 QQ_GROUP_SEARCH_TYPE_DEMO = 0x02 |
36 }; | 34 }; |
37 | 35 |
38 /*****************************************************************************/ | 36 /* send packet to search for qq_group */ |
39 // send packet to search for qq_group | 37 void qq_send_cmd_group_search_group(GaimConnection *gc, guint32 external_group_id) |
40 void qq_send_cmd_group_search_group(GaimConnection * gc, guint32 external_group_id) { | 38 { |
41 guint8 *raw_data, *cursor, type; | 39 guint8 *raw_data, *cursor, type; |
42 gint bytes, data_len; | 40 gint bytes, data_len; |
43 | 41 |
44 g_return_if_fail(gc != NULL); | 42 g_return_if_fail(gc != NULL); |
45 | 43 |
56 if (bytes != data_len) | 54 if (bytes != data_len) |
57 gaim_debug(GAIM_DEBUG_ERROR, "QQ", | 55 gaim_debug(GAIM_DEBUG_ERROR, "QQ", |
58 "Fail create packet for %s\n", qq_group_cmd_get_desc(QQ_GROUP_CMD_SEARCH_GROUP)); | 56 "Fail create packet for %s\n", qq_group_cmd_get_desc(QQ_GROUP_CMD_SEARCH_GROUP)); |
59 else | 57 else |
60 qq_send_group_cmd(gc, NULL, raw_data, data_len); | 58 qq_send_group_cmd(gc, NULL, raw_data, data_len); |
61 } // qq_send_cmd_group_search_group | 59 } |
62 | 60 |
63 /*****************************************************************************/ | 61 /* process group cmd reply "search group" */ |
64 // process group cmd reply "search group" | 62 void qq_process_group_cmd_search_group(guint8 *data, guint8 **cursor, gint len, GaimConnection *gc) |
65 void qq_process_group_cmd_search_group(guint8 * data, guint8 ** cursor, gint len, GaimConnection * gc) { | 63 { |
66 guint8 search_type; | 64 guint8 search_type; |
67 guint16 unknown; | 65 guint16 unknown; |
68 gint bytes, pascal_len, i; | 66 gint bytes, pascal_len, i; |
69 qq_data *qd; | 67 qq_data *qd; |
70 GaimRoomlistRoom *room; | 68 GaimRoomlistRoom *room; |
76 | 74 |
77 i = 0; | 75 i = 0; |
78 bytes += read_packet_b(data, cursor, len, &search_type); | 76 bytes += read_packet_b(data, cursor, len, &search_type); |
79 group = g_newa(qq_group, 1); | 77 group = g_newa(qq_group, 1); |
80 | 78 |
81 // now it starts with group_info_entry | 79 /* now it starts with group_info_entry */ |
82 while (*cursor < (data + len)) { // still have data to read | 80 while (*cursor < (data + len)) { /* still have data to read */ |
83 // begin of one qq_group | 81 /* begin of one qq_group */ |
84 bytes = 0; | 82 bytes = 0; |
85 i++; | 83 i++; |
86 bytes += read_packet_dw(data, cursor, len, &(group->internal_group_id)); | 84 bytes += read_packet_dw(data, cursor, len, &(group->internal_group_id)); |
87 bytes += read_packet_dw(data, cursor, len, &(group->external_group_id)); | 85 bytes += read_packet_dw(data, cursor, len, &(group->external_group_id)); |
88 bytes += read_packet_b(data, cursor, len, &(group->group_type)); | 86 bytes += read_packet_b(data, cursor, len, &(group->group_type)); |
89 bytes += read_packet_w(data, cursor, len, &(unknown)); // protocal changed, gfhuang | 87 bytes += read_packet_w(data, cursor, len, &(unknown)); |
90 bytes += read_packet_w(data, cursor, len, &(unknown)); // protocal changed, gfhuang | 88 bytes += read_packet_w(data, cursor, len, &(unknown)); |
91 bytes += read_packet_dw(data, cursor, len, &(group->creator_uid)); | 89 bytes += read_packet_dw(data, cursor, len, &(group->creator_uid)); |
92 bytes += read_packet_w(data, cursor, len, &(unknown)); // protocal changed, gfhuang | 90 bytes += read_packet_w(data, cursor, len, &(unknown)); |
93 bytes += read_packet_w(data, cursor, len, &(unknown)); // protocal changed, gfhuang | 91 bytes += read_packet_w(data, cursor, len, &(unknown)); |
94 bytes += read_packet_w(data, cursor, len, &(unknown)); // protocal changed, gfhuang | 92 bytes += read_packet_w(data, cursor, len, &(unknown)); |
95 bytes += read_packet_dw(data, cursor, len, &(group->group_category)); | 93 bytes += read_packet_dw(data, cursor, len, &(group->group_category)); |
96 pascal_len = convert_as_pascal_string(*cursor, &(group->group_name_utf8), QQ_CHARSET_DEFAULT); | 94 pascal_len = convert_as_pascal_string(*cursor, &(group->group_name_utf8), QQ_CHARSET_DEFAULT); |
97 bytes += pascal_len; | 95 bytes += pascal_len; |
98 *cursor += pascal_len; | 96 *cursor += pascal_len; |
99 bytes += read_packet_w(data, cursor, len, &(unknown)); | 97 bytes += read_packet_w(data, cursor, len, &(unknown)); |
100 bytes += read_packet_b(data, cursor, len, &(group->auth_type)); | 98 bytes += read_packet_b(data, cursor, len, &(group->auth_type)); |
101 pascal_len = convert_as_pascal_string(*cursor, &(group->group_desc_utf8), QQ_CHARSET_DEFAULT); | 99 pascal_len = convert_as_pascal_string(*cursor, &(group->group_desc_utf8), QQ_CHARSET_DEFAULT); |
102 bytes += pascal_len; | 100 bytes += pascal_len; |
103 *cursor += pascal_len; | 101 *cursor += pascal_len; |
104 // end of one qq_group | 102 /* end of one qq_group */ |
105 room = gaim_roomlist_room_new(GAIM_ROOMLIST_ROOMTYPE_ROOM, group->group_name_utf8, NULL); | 103 room = gaim_roomlist_room_new(GAIM_ROOMLIST_ROOMTYPE_ROOM, group->group_name_utf8, NULL); |
106 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->external_group_id)); | 104 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->external_group_id)); |
107 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->creator_uid)); | 105 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->creator_uid)); |
108 gaim_roomlist_room_add_field(qd->roomlist, room, group->group_desc_utf8); | 106 gaim_roomlist_room_add_field(qd->roomlist, room, group->group_desc_utf8); |
109 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->internal_group_id)); | 107 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->internal_group_id)); |
110 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->group_type)); | 108 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->group_type)); |
111 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->auth_type)); | 109 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->auth_type)); |
112 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->group_category)); | 110 gaim_roomlist_room_add_field(qd->roomlist, room, g_strdup_printf("%d", group->group_category)); |
113 gaim_roomlist_room_add_field(qd->roomlist, room, group->group_name_utf8); | 111 gaim_roomlist_room_add_field(qd->roomlist, room, group->group_name_utf8); |
114 gaim_roomlist_room_add(qd->roomlist, room); | 112 gaim_roomlist_room_add(qd->roomlist, room); |
115 } // while | 113 } |
116 if(*cursor > (data + len)) { | 114 if(*cursor > (data + len)) { |
117 gaim_debug(GAIM_DEBUG_ERROR, "QQ", "group_cmd_search_group: Dangerous error! maybe protocal changed, notify me!"); | 115 gaim_debug(GAIM_DEBUG_ERROR, "QQ", |
116 "group_cmd_search_group: Dangerous error! maybe protocol changed, notify developers!"); | |
118 } | 117 } |
119 gaim_roomlist_set_in_progress(qd->roomlist, FALSE); | 118 gaim_roomlist_set_in_progress(qd->roomlist, FALSE); |
120 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Search group reply: %d groups\n", i); | 119 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Search group reply: %d groups\n", i); |
121 | 120 } |
122 } // qq_process_group_cmd_search_group | |
123 | |
124 /*****************************************************************************/ | |
125 // END OF FILE |