Mercurial > pidgin
comparison libpurple/protocols/qq/group_info.c @ 24144:a95c7e71064c
2008.10.05 - ccpaging <ccpagint(at)gmail.com>
* Add my uid into buddy list
* Fixed a minor bug in qq_create_buddy. Not get new buddy's info.
* There are 38 fields in protocol 2008, one more than 2005/2007.
* The packet of Modifing buddy info is changed. Need sample to fix it.
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Wed, 22 Oct 2008 14:48:46 +0000 |
parents | c2253c485728 |
children | ec3f7d3e0445 |
comparison
equal
deleted
inserted
replaced
24143:c2253c485728 | 24144:a95c7e71064c |
---|---|
155 | 155 |
156 g_return_if_fail(data != NULL && data_len > 0); | 156 g_return_if_fail(data != NULL && data_len > 0); |
157 qd = (qq_data *) gc->proto_data; | 157 qd = (qq_data *) gc->proto_data; |
158 | 158 |
159 /* qq_show_packet("Room Info", data, data_len); */ | 159 /* qq_show_packet("Room Info", data, data_len); */ |
160 | 160 |
161 bytes = 0; | 161 bytes = 0; |
162 bytes += qq_get32(&id, data + bytes); | 162 bytes += qq_get32(&id, data + bytes); |
163 g_return_if_fail(id > 0); | 163 g_return_if_fail(id > 0); |
164 | 164 |
165 bytes += qq_get32(&ext_id, data + bytes); | 165 bytes += qq_get32(&ext_id, data + bytes); |
195 /* skip 7 bytes unknow in qq2007 0x(00 00 01 00 00 00 fc)*/ | 195 /* skip 7 bytes unknow in qq2007 0x(00 00 01 00 00 00 fc)*/ |
196 bytes += 7; | 196 bytes += 7; |
197 } | 197 } |
198 /* qq_show_packet("Room Info", data + bytes, data_len - bytes); */ | 198 /* qq_show_packet("Room Info", data + bytes, data_len - bytes); */ |
199 /* strlen + <str content> */ | 199 /* strlen + <str content> */ |
200 bytes += convert_as_pascal_string(data + bytes, &(group->title_utf8), QQ_CHARSET_DEFAULT); | 200 bytes += qq_get_vstr(&(group->title_utf8), QQ_CHARSET_DEFAULT, data + bytes); |
201 bytes += qq_get16(&unknown, data + bytes); /* 0x0000 */ | 201 bytes += qq_get16(&unknown, data + bytes); /* 0x0000 */ |
202 bytes += convert_as_pascal_string(data + bytes, ¬ice, QQ_CHARSET_DEFAULT); | 202 bytes += qq_get_vstr(¬ice, QQ_CHARSET_DEFAULT, data + bytes); |
203 bytes += convert_as_pascal_string(data + bytes, &(group->desc_utf8), QQ_CHARSET_DEFAULT); | 203 bytes += qq_get_vstr(&(group->desc_utf8), QQ_CHARSET_DEFAULT, data + bytes); |
204 | 204 |
205 purple_debug_info("QQ", "room [%s] notice [%s] desc [%s] unknow 0x%04X\n", | 205 purple_debug_info("QQ", "room [%s] notice [%s] desc [%s] unknow 0x%04X\n", |
206 group->title_utf8, notice, group->desc_utf8, unknown); | 206 group->title_utf8, notice, group->desc_utf8, unknown); |
207 | 207 |
208 num = 0; | 208 num = 0; |
334 | 334 |
335 num++; | 335 num++; |
336 bytes += qq_get16(&(member->face), data + bytes); | 336 bytes += qq_get16(&(member->face), data + bytes); |
337 bytes += qq_get8(&(member->age), data + bytes); | 337 bytes += qq_get8(&(member->age), data + bytes); |
338 bytes += qq_get8(&(member->gender), data + bytes); | 338 bytes += qq_get8(&(member->gender), data + bytes); |
339 bytes += convert_as_pascal_string(data + bytes, &nick, QQ_CHARSET_DEFAULT); | 339 bytes += qq_get_vstr(&nick, QQ_CHARSET_DEFAULT, data + bytes); |
340 bytes += qq_get16(&unknown, data + bytes); | 340 bytes += qq_get16(&unknown, data + bytes); |
341 bytes += qq_get8(&(member->ext_flag), data + bytes); | 341 bytes += qq_get8(&(member->ext_flag), data + bytes); |
342 bytes += qq_get8(&(member->comm_flag), data + bytes); | 342 bytes += qq_get8(&(member->comm_flag), data + bytes); |
343 | 343 |
344 /* filter \r\n in nick */ | 344 /* filter \r\n in nick */ |