libpurple/protocols/qq/qq_network.c

branch
openq
changeset 24344
712295f3bf6d
parent 24343
9c695a1f475b
child 24346
98c009d1f4e0
--- a/libpurple/protocols/qq/qq_network.c	Wed Oct 22 14:40:04 2008 +0000
+++ b/libpurple/protocols/qq/qq_network.c	Wed Oct 22 14:41:13 2008 +0000
@@ -309,6 +309,8 @@
 	switch (cmd) {
 		case QQ_CMD_TOKEN:
 		case QQ_CMD_GET_SERVER:
+		case QQ_CMD_TOKEN_EX:
+		case QQ_CMD_CHECK_PWD:
 		case QQ_CMD_LOGIN:
 			ret = qq_proc_login_cmds(gc, cmd, seq, buf + bytes, bytes_not_read, update_class, ship32);
 			if (ret != QQ_LOGIN_REPLY_OK) {
@@ -715,13 +717,11 @@
 	passwd = purple_account_get_password(purple_connection_get_account(gc));
 
 	/* use twice-md5 of user password as session key since QQ 2003iii */
-	dest = qd->ld.pwd_2nd_md5;
+	dest = qd->ld.pwd_md5;
 	qq_get_md5(dest, dest_len, (guint8 *)passwd, strlen(passwd));
-	qq_get_md5(dest, dest_len, dest, dest_len);
 
-	dest = qd->ld.pwd_4th_md5;
-	qq_get_md5(dest, dest_len, qd->ld.pwd_2nd_md5, dest_len);
-	qq_get_md5(dest, dest_len, dest, dest_len);
+	dest = qd->ld.pwd_twice_md5;
+	qq_get_md5(dest, dest_len, qd->ld.pwd_md5, dest_len);
 }
 
 /* the callback function after socket is built
@@ -1021,8 +1021,8 @@
 	qq_trans_remove_all(gc);
 
 	memset(qd->ld.random_key, 0, sizeof(qd->ld.random_key));
-	memset(qd->ld.pwd_2nd_md5, 0, sizeof(qd->ld.pwd_2nd_md5));
-	memset(qd->ld.pwd_4th_md5, 0, sizeof(qd->ld.pwd_4th_md5));
+	memset(qd->ld.pwd_md5, 0, sizeof(qd->ld.pwd_md5));
+	memset(qd->ld.pwd_twice_md5, 0, sizeof(qd->ld.pwd_twice_md5));
 	memset(qd->ld.login_key, 0, sizeof(qd->ld.login_key));
 	memset(qd->session_key, 0, sizeof(qd->session_key));
 	memset(qd->session_md5, 0, sizeof(qd->session_md5));

mercurial