Mercurial > pidgin
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++) { |