Mercurial > pidgin
comparison libpurple/protocols/qq/group_join.c @ 24653:fecedf6d9ee1
propagate from branch 'im.pidgin.pidgin' (head 97d295a04f3a9852a3b29cf0df43d56d1ddcc672)
to branch 'im.pidgin.pidgin.openq' (head a0d99396d1603b53838d74cad4391ece34f3ebbf)
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Fri, 05 Dec 2008 14:51:36 +0000 |
parents | 75545fdf8944 8c3cfad8658a |
children | 2f84f888d3db |
comparison
equal
deleted
inserted
replaced
24590:c457c635eb8f | 24653:fecedf6d9ee1 |
---|---|
114 return; | 114 return; |
115 } | 115 } |
116 | 116 |
117 rmd = qq_room_data_find(add_req->gc, add_req->id); | 117 rmd = qq_room_data_find(add_req->gc, add_req->id); |
118 if (rmd == NULL) { | 118 if (rmd == NULL) { |
119 purple_debug_error("QQ", "Can not find room data of %d\n", add_req->id); | 119 purple_debug_error("QQ", "Can not find room data of %u\n", add_req->id); |
120 g_free(add_req); | 120 g_free(add_req); |
121 return; | 121 return; |
122 } | 122 } |
123 | 123 |
124 qq_send_cmd_group_auth(add_req->gc, rmd, QQ_ROOM_AUTH_REQUEST_APPLY, 0, reason_utf8); | 124 qq_send_cmd_group_auth(add_req->gc, rmd, QQ_ROOM_AUTH_REQUEST_APPLY, 0, reason_utf8); |
135 { | 135 { |
136 gchar *msg; | 136 gchar *msg; |
137 qq_room_req *add_req; | 137 qq_room_req *add_req; |
138 g_return_if_fail(rmd != NULL); | 138 g_return_if_fail(rmd != NULL); |
139 | 139 |
140 purple_debug_info("QQ", "Room (internal id: %d) needs authentication\n", rmd->id); | 140 purple_debug_info("QQ", "Room id %u needs authentication\n", rmd->id); |
141 | 141 |
142 msg = g_strdup_printf("QQ Qun %d needs authentication\n", rmd->ext_id); | 142 msg = g_strdup_printf("QQ Qun %u needs authentication\n", rmd->ext_id); |
143 add_req = g_new0(qq_room_req, 1); | 143 add_req = g_new0(qq_room_req, 1); |
144 add_req->gc = gc; | 144 add_req->gc = gc; |
145 add_req->id = rmd->id; | 145 add_req->id = rmd->id; |
146 purple_request_input(gc, _("Join QQ Qun"), msg, | 146 purple_request_input(gc, _("Join QQ Qun"), msg, |
147 _("Input request here"), | 147 _("Input request here"), |
152 purple_connection_get_account(gc), rmd->title_utf8, NULL, | 152 purple_connection_get_account(gc), rmd->title_utf8, NULL, |
153 add_req); | 153 add_req); |
154 g_free(msg); | 154 g_free(msg); |
155 } | 155 } |
156 | 156 |
157 void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, | 157 void qq_send_cmd_group_auth(PurpleConnection *gc, qq_room_data *rmd, |
158 guint8 opt, guint32 uid, const gchar *reason_utf8) | 158 guint8 opt, guint32 uid, const gchar *reason_utf8) |
159 { | 159 { |
160 guint8 raw_data[MAX_PACKET_SIZE - 16]; | 160 guint8 raw_data[MAX_PACKET_SIZE - 16]; |
161 gint bytes; | 161 gint bytes; |
162 | 162 |
217 bytes += qq_get32(&id, data + bytes); | 217 bytes += qq_get32(&id, data + bytes); |
218 g_return_if_fail(id > 0); | 218 g_return_if_fail(id > 0); |
219 | 219 |
220 rmd = qq_room_data_find(gc, id); | 220 rmd = qq_room_data_find(gc, id); |
221 if (rmd != NULL) { | 221 if (rmd != NULL) { |
222 msg = g_strdup_printf(_("Successfully joined Qun %s (%d)"), rmd->title_utf8, rmd->ext_id); | 222 msg = g_strdup_printf(_("Successed join to Qun %s (%u)"), rmd->title_utf8, rmd->ext_id); |
223 qq_got_attention(gc, msg); | 223 qq_got_message(gc, msg); |
224 g_free(msg); | 224 g_free(msg); |
225 } else { | 225 } else { |
226 qq_got_attention(gc, _("Successfully joined Qun")); | 226 qq_got_message(gc, _("Successed join to Qun")); |
227 } | 227 } |
228 } | 228 } |
229 | 229 |
230 /* process group cmd reply "join group" */ | 230 /* process group cmd reply "join group" */ |
231 void qq_process_group_cmd_join_group(guint8 *data, gint len, PurpleConnection *gc) | 231 void qq_process_group_cmd_join_group(guint8 *data, gint len, PurpleConnection *gc) |
259 /* this must be shown before getting online members */ | 259 /* this must be shown before getting online members */ |
260 qq_room_conv_open(gc, rmd); | 260 qq_room_conv_open(gc, rmd); |
261 break; | 261 break; |
262 case QQ_ROOM_JOIN_NEED_AUTH: | 262 case QQ_ROOM_JOIN_NEED_AUTH: |
263 purple_debug_info("QQ", | 263 purple_debug_info("QQ", |
264 "Fail joining group [%d] %s, needs authentication\n", | 264 "Failed to join room ext id %u %s, needs authentication\n", |
265 rmd->ext_id, rmd->title_utf8); | 265 rmd->ext_id, rmd->title_utf8); |
266 rmd->my_role = QQ_ROOM_ROLE_NO; | 266 rmd->my_role = QQ_ROOM_ROLE_NO; |
267 do_room_join_request(gc, rmd); | 267 do_room_join_request(gc, rmd); |
268 break; | 268 break; |
269 case QQ_ROOM_JOIN_DENIED: | 269 case QQ_ROOM_JOIN_DENIED: |
270 msg = g_strdup_printf(_("Qun %d denied to join"), rmd->ext_id); | 270 msg = g_strdup_printf(_("Qun %u denied to join"), rmd->ext_id); |
271 purple_notify_info(gc, _("QQ Qun Operation"), _("Failed:"), msg); | 271 purple_notify_info(gc, _("QQ Qun Operation"), _("Failed:"), msg); |
272 g_free(msg); | 272 g_free(msg); |
273 break; | 273 break; |
274 default: | 274 default: |
275 purple_debug_info("QQ", | 275 purple_debug_info("QQ", |
276 "Failed joining group [%d] %s, unknown reply: 0x%02x\n", | 276 "Failed to join room ext id %u %s, unknown reply: 0x%02x\n", |
277 rmd->ext_id, rmd->title_utf8, reply); | 277 rmd->ext_id, rmd->title_utf8, reply); |
278 | 278 |
279 purple_notify_info(gc, _("QQ Qun Operation"), _("Failed:"), _("Join Qun, Unknow Reply")); | 279 purple_notify_info(gc, _("QQ Qun Operation"), _("Failed:"), _("Join Qun, Unknow Reply")); |
280 } | 280 } |
281 } | 281 } |
296 ext_id_str = g_hash_table_lookup(data, QQ_ROOM_KEY_EXTERNAL_ID); | 296 ext_id_str = g_hash_table_lookup(data, QQ_ROOM_KEY_EXTERNAL_ID); |
297 id_str = g_hash_table_lookup(data, QQ_ROOM_KEY_INTERNAL_ID); | 297 id_str = g_hash_table_lookup(data, QQ_ROOM_KEY_INTERNAL_ID); |
298 purple_debug_info("QQ", "Join room %s, extend id %s\n", id_str, ext_id_str); | 298 purple_debug_info("QQ", "Join room %s, extend id %s\n", id_str, ext_id_str); |
299 | 299 |
300 if (id_str != NULL) { | 300 if (id_str != NULL) { |
301 id = strtol(id_str, NULL, 10); | 301 id = strtoul(id_str, NULL, 10); |
302 if (id != 0) { | 302 if (id != 0) { |
303 rmd = qq_room_data_find(gc, id); | 303 rmd = qq_room_data_find(gc, id); |
304 if (rmd) { | 304 if (rmd) { |
305 qq_request_room_join(gc, rmd); | 305 qq_request_room_join(gc, rmd); |
306 return; | 306 return; |
310 | 310 |
311 purple_debug_info("QQ", "Search and join extend id %s\n", ext_id_str); | 311 purple_debug_info("QQ", "Search and join extend id %s\n", ext_id_str); |
312 if (ext_id_str == NULL) { | 312 if (ext_id_str == NULL) { |
313 return; | 313 return; |
314 } | 314 } |
315 ext_id = strtol(ext_id_str, NULL, 10); | 315 ext_id = strtoul(ext_id_str, NULL, 10); |
316 if (ext_id == 0) { | 316 if (ext_id == 0) { |
317 return; | 317 return; |
318 } | 318 } |
319 | 319 |
320 qq_request_room_search(gc, ext_id, QQ_ROOM_SEARCH_FOR_JOIN); | 320 qq_request_room_search(gc, ext_id, QQ_ROOM_SEARCH_FOR_JOIN); |
343 { | 343 { |
344 guint8 raw_data[16] = {0}; | 344 guint8 raw_data[16] = {0}; |
345 gint bytes = 0; | 345 gint bytes = 0; |
346 guint8 type; | 346 guint8 type; |
347 | 347 |
348 purple_debug_info("QQ", "Search QQ Qun %d\n", ext_id); | 348 purple_debug_info("QQ", "Search QQ Qun %u\n", ext_id); |
349 type = (ext_id == 0x00000000) ? QQ_ROOM_SEARCH_TYPE_DEMO : QQ_ROOM_SEARCH_TYPE_BY_ID; | 349 type = (ext_id == 0x00000000) ? QQ_ROOM_SEARCH_TYPE_DEMO : QQ_ROOM_SEARCH_TYPE_BY_ID; |
350 | 350 |
351 bytes = 0; | 351 bytes = 0; |
352 bytes += qq_put8(raw_data + bytes, type); | 352 bytes += qq_put8(raw_data + bytes, type); |
353 bytes += qq_put32(raw_data + bytes, ext_id); | 353 bytes += qq_put32(raw_data + bytes, ext_id); |
359 { | 359 { |
360 PurpleRoomlistRoom *room; | 360 PurpleRoomlistRoom *room; |
361 gchar field[11]; | 361 gchar field[11]; |
362 | 362 |
363 room = purple_roomlist_room_new(PURPLE_ROOMLIST_ROOMTYPE_ROOM, rmd->title_utf8, NULL); | 363 room = purple_roomlist_room_new(PURPLE_ROOMLIST_ROOMTYPE_ROOM, rmd->title_utf8, NULL); |
364 g_snprintf(field, sizeof(field), "%d", rmd->ext_id); | 364 g_snprintf(field, sizeof(field), "%u", rmd->ext_id); |
365 purple_roomlist_room_add_field(qd->roomlist, room, field); | 365 purple_roomlist_room_add_field(qd->roomlist, room, field); |
366 g_snprintf(field, sizeof(field), "%d", rmd->creator_uid); | 366 g_snprintf(field, sizeof(field), "%u", rmd->creator_uid); |
367 purple_roomlist_room_add_field(qd->roomlist, room, field); | 367 purple_roomlist_room_add_field(qd->roomlist, room, field); |
368 purple_roomlist_room_add_field(qd->roomlist, room, rmd->desc_utf8); | 368 purple_roomlist_room_add_field(qd->roomlist, room, rmd->desc_utf8); |
369 g_snprintf(field, sizeof(field), "%d", rmd->id); | 369 g_snprintf(field, sizeof(field), "%u", rmd->id); |
370 purple_roomlist_room_add_field(qd->roomlist, room, field); | 370 purple_roomlist_room_add_field(qd->roomlist, room, field); |
371 g_snprintf(field, sizeof(field), "%d", rmd->type8); | 371 g_snprintf(field, sizeof(field), "%d", rmd->type8); |
372 purple_roomlist_room_add_field(qd->roomlist, room, field); | 372 purple_roomlist_room_add_field(qd->roomlist, room, field); |
373 g_snprintf(field, sizeof(field), "%d", rmd->auth_type); | 373 g_snprintf(field, sizeof(field), "%d", rmd->auth_type); |
374 purple_roomlist_room_add_field(qd->roomlist, room, field); | 374 purple_roomlist_room_add_field(qd->roomlist, room, field); |