comparison libpurple/protocols/qq/qq_network.c @ 24623:c52fe0a3b11d

Fixed: purple_circ_buffer not created before append Change QQ number to unsigned long
author Hu Yong <ccpaging@gmail.com>
date Tue, 11 Nov 2008 07:20:48 +0000
parents 1ee91ff0d5fe
children c69c337269e1
comparison
equal deleted inserted replaced
24622:d8af9602c1b1 24623:c52fe0a3b11d
322 break; 322 break;
323 case QQ_CMD_ROOM: 323 case QQ_CMD_ROOM:
324 room_cmd = qq_trans_get_room_cmd(trans); 324 room_cmd = qq_trans_get_room_cmd(trans);
325 room_id = qq_trans_get_room_id(trans); 325 room_id = qq_trans_get_room_id(trans);
326 #if 1 326 #if 1
327 purple_debug_info("QQ", "%s (0x%02X) for room %d, len %d\n", 327 purple_debug_info("QQ", "%s (0x%02X) for room %u, len %d\n",
328 qq_get_room_cmd_desc(room_cmd), room_cmd, room_id, buf_len); 328 qq_get_room_cmd_desc(room_cmd), room_cmd, room_id, buf_len);
329 #endif 329 #endif
330 qq_proc_room_cmds(gc, seq, room_cmd, room_id, buf + bytes, bytes_not_read, update_class, ship32); 330 qq_proc_room_cmds(gc, seq, room_cmd, room_id, buf + bytes, bytes_not_read, update_class, ship32);
331 break; 331 break;
332 default: 332 default:
636 purple_debug_info("TCP_SEND_OUT", 636 purple_debug_info("TCP_SEND_OUT",
637 "Add %d bytes to buffer\n", data_len - ret); 637 "Add %d bytes to buffer\n", data_len - ret);
638 if (conn->can_write_handler == 0) { 638 if (conn->can_write_handler == 0) {
639 conn->can_write_handler = purple_input_add(qd->fd, PURPLE_INPUT_WRITE, tcp_can_write, gc); 639 conn->can_write_handler = purple_input_add(qd->fd, PURPLE_INPUT_WRITE, tcp_can_write, gc);
640 } 640 }
641 if (conn->tcp_txbuf == NULL) {
642 conn->tcp_txbuf = purple_circ_buffer_new(4096);
643 }
641 purple_circ_buffer_append(conn->tcp_txbuf, data + ret, data_len - ret); 644 purple_circ_buffer_append(conn->tcp_txbuf, data + ret, data_len - ret);
642 } 645 }
643 return ret; 646 return ret;
644 } 647 }
645 648
708 /* QQ use random seq, to minimize duplicated packets */ 711 /* QQ use random seq, to minimize duplicated packets */
709 srand(time(NULL)); 712 srand(time(NULL));
710 qd->send_seq = rand() & 0xffff; 713 qd->send_seq = rand() & 0xffff;
711 714
712 qd->is_login = FALSE; 715 qd->is_login = FALSE;
713 qd->uid = strtol(purple_account_get_username(purple_connection_get_account(gc)), NULL, 10); 716 qd->uid = strtoul(purple_account_get_username(purple_connection_get_account(gc)), NULL, 10);
714 717
715 #ifdef DEBUG 718 #ifdef DEBUG
716 memset(qd->ld.random_key, 0x01, sizeof(qd->ld.random_key)); 719 memset(qd->ld.random_key, 0x01, sizeof(qd->ld.random_key));
717 #else 720 #else
718 for (bytes = 0; bytes < sizeof(qd->ld.random_key); bytes++) { 721 for (bytes = 0; bytes < sizeof(qd->ld.random_key); bytes++) {