Here is the patch. I have been using this for months
and it seems working.
-Wei Mingzhi
diff -ur eva.orig/src/api/evapacketmanager.cpp
eva/src/api/evapacketmanager.cpp
--- eva.orig/src/api/evapacketmanager.cpp 2006-01-31
18:04:56.000000000 +0800
+++ eva/src/api/evapacketmanager.cpp 2006-02-10
17:04:22.000000000 +0800
@@ -1153,8 +1153,9 @@
switch(packet->getType()){
case QQ_MSG_SYS_BEING_ADDED:
emit systemMeBeenAdded( packet->getFromQQ());
- break;
+ break;
case QQ_MSG_SYS_ADD_FRIEND_REQUEST:
+ case QQ_MSG_SYS_ADD_FRIEND_REQUEST_ALT:
emit systemAddMeRequest(packet->getFromQQ(), msg);
break;
case QQ_MSG_SYS_ADD_FRIEND_APPROVED:{
diff -ur eva.orig/src/evamain.cpp eva/src/evamain.cpp
--- eva.orig/src/evamain.cpp 2006-01-25
20:43:41.000000000 +0800
+++ eva/src/evamain.cpp 2006-02-10 17:03:51.000000000
+0800
@@ -1405,6 +1405,7 @@
win->slotMeBeenAdded( from);
break;
case QQ_MSG_SYS_ADD_FRIEND_REQUEST:
+ case QQ_MSG_SYS_ADD_FRIEND_REQUEST_ALT:
win->slotAddMeRequest(from, message);
break;
case QQ_MSG_SYS_ADD_FRIEND_APPROVED:
diff -ur eva.orig/src/libeva/evadefines.h
eva/src/libeva/evadefines.h
--- eva.orig/src/libeva/evadefines.h 2006-02-03
20:07:53.000000000 +0800
+++ eva/src/libeva/evadefines.h 2006-02-10
17:03:23.000000000 +0800
@@ -394,6 +394,9 @@
const short QQ_MSG_SYS_ADD_FRIEND_APPROVED = 3;
const short QQ_MSG_SYS_ADD_FRIEND_REJECTED = 4;
const short QQ_MSG_SYS_UPDATE_HINT = 9;
+// 2/10/2006 Whistler - START
+const short QQ_MSG_SYS_ADD_FRIEND_REQUEST_ALT = 41;
+// Whistler - END
const unsigned char QQ_SEARCH_ALL = 0x31;
const unsigned char QQ_SEARCH_CUSTOM = 0x30;
Logged In: NO
Thanks man.
Too busy to coding for Eva recently. :)
For adding friends in 2006, I have found all secrets about
the protocol which changes a bit on its verification
process. I haven't got time to test your patch(maybe this
weekend :) ),
From your patch above, it looks like a simple hack on 2006
adding protocol, as you simply sending a
Q_MSG_SYS_ADD_FRIEND_REQUEST_ALT instead of
Q_MSG_SYS_ADD_FRIEND_REQUEST. This might work in some cases
but I don't think it's gonna work with all cases.
In 2006, client still need to ask for a verification code
from server, to complete adding action which is totally
differnt from old protocol.
Well, I will post your patch in linuxfans for now as I
don't have time to finish the completely solution for
Eva. But, I'll try to finish it once I finish my work
in hand.
Thanks again!
yunfan
Logged In: NO
well sorry but maybe I didn't described the problem
correctly, I actually posted the above one in such a hurry...
The problem is when a "real" QQ2006 client trying to add an
Eva client, Eva won't handle it correctly and will interpret
it as a TX's System Message, i.e., simply displaying it
without giving you the "Approve" and "Reject" options.
Also actually this patch is already in that "bug report"
thread at LinuxFans forum, but at that time I'm just not
sure if it's working because I can't run Tencent QQ on
GNU/Linux, and I'm such a Free Software nazi who won't
install Windows :). Now after a few months it seems working
pretty well, and it looks like you didn't see it, so I
submitted this one here. Maybe I'm kinda annoying here :)
Wei Mingzhi
Logged In: NO
...and nevertheless you're right that this is just a
temporary workaround :)
Logged In: NO
Good Job man!
Many Thanks!
I'v posted it in linuxfans.
Logged In: NO
good job