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