Mercurial > pidgin
diff libpurple/protocols/qq/qq_base.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 d8af9602c1b1 |
children | 2f84f888d3db |
line wrap: on
line diff
--- a/libpurple/protocols/qq/qq_base.c Thu Dec 04 04:15:28 2008 +0000 +++ b/libpurple/protocols/qq/qq_base.c Fri Dec 05 14:51:36 2008 +0000 @@ -68,7 +68,8 @@ qd = (qq_data *) gc->proto_data; /* qq_show_packet("Login reply", data, len); */ - if (len < 139) { + if (len < 148) { + qq_show_packet("Login reply OK, but length < 139", data, len); purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_ENCRYPTION_ERROR, _("Can not decrypt server reply")); @@ -82,7 +83,7 @@ purple_debug_info("QQ", "Got session_key\n"); bytes += qq_get32(&uid, data + bytes); if (uid != qd->uid) { - purple_debug_warning("QQ", "My uid in login reply is %d, not %d\n", uid, qd->uid); + purple_debug_warning("QQ", "My uid in login reply is %u, not %u\n", uid, qd->uid); } bytes += qq_getIP(&qd->my_ip, data + bytes); bytes += qq_get16(&qd->my_port, data + bytes); @@ -137,8 +138,8 @@ tm_local->tm_hour, tm_local->tm_min, tm_local->tm_sec); /* unknow 9 bytes, 0x(00 0a 00 0a 01 00 00 0e 10) */ - if (len > 139) { - purple_debug_warning("QQ", "Login reply more than expected %d bytes, read %d bytes\n", 139, bytes); + if (len > 148) { + qq_show_packet("Login reply OK, but length > 139", data, len); } return QQ_LOGIN_REPLY_OK; } @@ -330,7 +331,7 @@ if (bytes + token_len > buf_len) { purple_debug_info("QQ", "Extra token data, %d %d\n", token_len, buf_len - bytes); } - qq_show_packet("Got token", buf + bytes, buf_len - bytes); + /* qq_show_packet("Got token", buf + bytes, buf_len - bytes); */ if (qd->ld.token != NULL) { g_free(qd->ld.token); @@ -502,7 +503,7 @@ /* In fact, we can send whatever we like to server * with this command, server return the same result including * the amount of online QQ users, my ip and port */ - uid_str = g_strdup_printf("%u", qd->uid); + uid_str = g_strdup_printf("%u", qd->uid); bytes += qq_putdata(raw_data + bytes, (guint8 *)uid_str, strlen(uid_str)); qq_send_cmd(gc, QQ_CMD_KEEP_ALIVE, raw_data, bytes); @@ -521,17 +522,17 @@ /* qq_show_packet("Keep alive reply packet", data, len); */ - bytes = 0; - bytes += qq_get8(&ret, data + bytes); - bytes += qq_get32(&qd->online_total, data + bytes); + bytes = 0; + bytes += qq_get8(&ret, data + bytes); + bytes += qq_get32(&qd->online_total, data + bytes); if(0 == qd->online_total) { purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, _("Keep alive error")); } - - bytes += qq_getIP(&qd->my_ip, data + bytes); - bytes += qq_get16(&qd->my_port, data + bytes); + + bytes += qq_getIP(&qd->my_ip, data + bytes); + bytes += qq_get16(&qd->my_port, data + bytes); return TRUE; } @@ -565,16 +566,16 @@ /* qq_show_packet("Keep alive reply packet", data, len); */ - bytes = 0; - bytes += qq_get8(&ret, data + bytes); - bytes += qq_get32(&qd->online_total, data + bytes); + bytes = 0; + bytes += qq_get8(&ret, data + bytes); + bytes += qq_get32(&qd->online_total, data + bytes); if(0 == qd->online_total) { purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, _("Keep alive error")); } - - bytes += qq_getIP(&qd->my_ip, data + bytes); + + bytes += qq_getIP(&qd->my_ip, data + bytes); bytes += qq_get16(&qd->my_port, data + bytes); /* skip 2 byytes, 0x(00 3c) */ bytes += 2; @@ -1279,7 +1280,7 @@ bytes += qq_get32(&uid, data + bytes); if (uid != qd->uid) { - purple_debug_warning("QQ", "My uid in login reply is %d, not %d\n", uid, qd->uid); + purple_debug_warning("QQ", "My uid in login reply is %u, not %u\n", uid, qd->uid); } bytes += qq_getIP(&qd->my_ip, data + bytes); bytes += qq_get16(&qd->my_port, data + bytes); @@ -1468,7 +1469,7 @@ bytes += qq_get32(&uid, data + bytes); if (uid != qd->uid) { - purple_debug_warning("QQ", "My uid in login reply is %d, not %d\n", uid, qd->uid); + purple_debug_warning("QQ", "My uid in login reply is %u, not %u\n", uid, qd->uid); } bytes += qq_getIP(&qd->my_ip, data + bytes); bytes += qq_get16(&qd->my_port, data + bytes);