Mercurial > pidgin.yaz
diff libpurple/protocols/qq/group_search.c @ 24085:237e5a94e11c
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
* Update group part
* Delete some meaningless functions and data
* Added 'change my icon'
2008.10.08 - lonicerae <lonicerae(at)gmail.com>
* Merge 20081008 patch into trunk
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Wed, 22 Oct 2008 15:08:30 +0000 |
parents | ce94189f15ad |
children |
line wrap: on
line diff
--- a/libpurple/protocols/qq/group_search.c Wed Oct 22 15:06:26 2008 +0000 +++ b/libpurple/protocols/qq/group_search.c Wed Oct 22 15:08:30 2008 +0000 @@ -43,22 +43,23 @@ }; /* send packet to search for qq_group */ -void qq_send_cmd_group_search_group(PurpleConnection *gc, guint32 ext_id) +void qq_request_room_search(PurpleConnection *gc, guint32 ext_id, int action) { guint8 raw_data[16] = {0}; gint bytes = 0; guint8 type; + purple_debug_info("QQ", "Search QQ Qun %d\n", ext_id); type = (ext_id == 0x00000000) ? QQ_ROOM_SEARCH_TYPE_DEMO : QQ_ROOM_SEARCH_TYPE_BY_ID; bytes = 0; bytes += qq_put8(raw_data + bytes, type); bytes += qq_put32(raw_data + bytes, ext_id); - qq_send_room_cmd_noid(gc, QQ_ROOM_CMD_SEARCH, raw_data, bytes); + qq_send_room_cmd_mess(gc, QQ_ROOM_CMD_SEARCH, 0, raw_data, bytes, 0, action); } -static void _qq_setup_roomlist(qq_data *qd, qq_group *group) +static void add_to_roomlist(qq_data *qd, qq_group *group) { PurpleRoomlistRoom *room; gchar field[11]; @@ -84,14 +85,13 @@ } /* process group cmd reply "search group" */ -void qq_process_group_cmd_search_group(guint8 *data, gint len, PurpleConnection *gc) +void qq_process_room_search(PurpleConnection *gc, guint8 *data, gint len, guint32 ship32) { gint bytes; guint8 search_type; guint16 unknown; qq_group group; qq_data *qd; - GSList *pending_id; g_return_if_fail(data != NULL && len > 0); qd = (qq_data *) gc->proto_data; @@ -120,14 +120,12 @@ "group_cmd_search_group: Dangerous error! maybe protocol changed, notify developers!"); } - pending_id = qq_get_pending_id(qd->joining_groups, group.ext_id); - if (pending_id != NULL) { - qq_set_pending_id(&qd->joining_groups, group.ext_id, FALSE); + if (ship32 == QQ_ROOM_SEARCH_FOR_JOIN) { if (qq_room_search_id(gc, group.id) == NULL) qq_group_create_internal_record(gc, group.id, group.ext_id, group.title_utf8); qq_request_room_join(gc, &group); } else { - _qq_setup_roomlist(qd, &group); + add_to_roomlist(qd, &group); } }