Mercurial > pidgin.yaz
diff libpurple/protocols/qq/group_search.c @ 23753:5f454b975a99
2008.08.10 - csyfek <csyfek(at)gmail.com>
* Commit to Pidgin
2008.08.06 - ccpaging <ecc_hy(at)hotmail.com>
* Rename names of variables, Group, to Room
* Functions of group_network merged into qq_network and qq_process
* Canceled managing glist of group packet, add sub_cmdd and room_id to transaction
* Fixed error of demo group:
If 'room list' and 'room infor' are not setup, response received from server will emits
'room_id = 0' packet.
2008.08.04 - ccpaging <ecc_hy(at)hotmail.com>
* Use new crypt/decrypt functions
* Rename crypt.c/h to qq_crypt.c/h
* Clean code of decrypt functions
* Fixed decryption failure
2008.08.04 - csyfek <csyfek(at)gmail.com>
* Update AUTHORS
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Sun, 10 Aug 2008 04:32:14 +0000 |
parents | 9a5d140400f1 |
children | 967344bc404d |
line wrap: on
line diff
--- a/libpurple/protocols/qq/group_search.c Sat Aug 09 23:23:48 2008 +0000 +++ b/libpurple/protocols/qq/group_search.c Sun Aug 10 04:32:14 2008 +0000 @@ -31,9 +31,11 @@ #include "group_free.h" #include "group_internal.h" #include "group_join.h" -#include "group_network.h" #include "group_search.h" #include "utils.h" +#include "header_info.h" +#include "packet_parse.h" +#include "qq_network.h" enum { QQ_GROUP_SEARCH_TYPE_BY_ID = 0x01, @@ -41,20 +43,19 @@ }; /* send packet to search for qq_group */ -void qq_send_cmd_group_search_group(PurpleConnection *gc, guint32 external_group_id) +void qq_send_cmd_group_search_group(PurpleConnection *gc, guint32 ext_id) { guint8 raw_data[16] = {0}; gint bytes = 0; guint8 type; - type = (external_group_id == 0x00000000) ? QQ_GROUP_SEARCH_TYPE_DEMO : QQ_GROUP_SEARCH_TYPE_BY_ID; + type = (ext_id == 0x00000000) ? QQ_GROUP_SEARCH_TYPE_DEMO : QQ_GROUP_SEARCH_TYPE_BY_ID; bytes = 0; - bytes += qq_put8(raw_data + bytes, QQ_GROUP_CMD_SEARCH_GROUP); bytes += qq_put8(raw_data + bytes, type); - bytes += qq_put32(raw_data + bytes, external_group_id); + bytes += qq_put32(raw_data + bytes, ext_id); - qq_send_group_cmd(gc, NULL, raw_data, bytes); + qq_send_room_cmd_noid(gc, QQ_ROOM_CMD_SEARCH, raw_data, bytes); } static void _qq_setup_roomlist(qq_data *qd, qq_group *group) @@ -63,14 +64,14 @@ gchar field[11]; room = purple_roomlist_room_new(PURPLE_ROOMLIST_ROOMTYPE_ROOM, group->group_name_utf8, NULL); - g_snprintf(field, sizeof(field), "%d", group->external_group_id); + g_snprintf(field, sizeof(field), "%d", group->ext_id); purple_roomlist_room_add_field(qd->roomlist, room, field); g_snprintf(field, sizeof(field), "%d", group->creator_uid); purple_roomlist_room_add_field(qd->roomlist, room, field); purple_roomlist_room_add_field(qd->roomlist, room, group->group_desc_utf8); - g_snprintf(field, sizeof(field), "%d", group->internal_group_id); + g_snprintf(field, sizeof(field), "%d", group->id); purple_roomlist_room_add_field(qd->roomlist, room, field); - g_snprintf(field, sizeof(field), "%d", group->group_type); + g_snprintf(field, sizeof(field), "%d", group->type8); purple_roomlist_room_add_field(qd->roomlist, room, field); g_snprintf(field, sizeof(field), "%d", group->auth_type); purple_roomlist_room_add_field(qd->roomlist, room, field); @@ -99,9 +100,9 @@ bytes += qq_get8(&search_type, data + bytes); /* now it starts with group_info_entry */ - bytes += qq_get32(&(group.internal_group_id), data + bytes); - bytes += qq_get32(&(group.external_group_id), data + bytes); - bytes += qq_get8(&(group.group_type), data + bytes); + bytes += qq_get32(&(group.id), data + bytes); + bytes += qq_get32(&(group.ext_id), data + bytes); + bytes += qq_get8(&(group.type8), data + bytes); bytes += qq_get16(&(unknown), data + bytes); bytes += qq_get16(&(unknown), data + bytes); bytes += qq_get32(&(group.creator_uid), data + bytes); @@ -119,12 +120,12 @@ "group_cmd_search_group: Dangerous error! maybe protocol changed, notify developers!"); } - pending_id = qq_get_pending_id(qd->joining_groups, group.external_group_id); + pending_id = qq_get_pending_id(qd->joining_groups, group.ext_id); if (pending_id != NULL) { - qq_set_pending_id(&qd->joining_groups, group.external_group_id, FALSE); - if (qq_group_find_by_id(gc, group.internal_group_id, QQ_INTERNAL_ID) == NULL) + qq_set_pending_id(&qd->joining_groups, group.ext_id, FALSE); + if (qq_room_search_id(gc, group.id) == NULL) qq_group_create_internal_record(gc, - group.internal_group_id, group.external_group_id, group.group_name_utf8); + group.id, group.ext_id, group.group_name_utf8); qq_send_cmd_group_join_group(gc, &group); } else { _qq_setup_roomlist(qd, &group);