Menu

#3 Add Friend not working for QQ2006

open
nobody
None
5
2006-03-19
2006-03-19
Wei Mingzhi
No

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;

Discussion

  • Nobody/Anonymous

    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

     
  • Nobody/Anonymous

    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

     
  • Nobody/Anonymous

    Logged In: NO

    ...and nevertheless you're right that this is just a
    temporary workaround :)

     
  • Nobody/Anonymous

    Logged In: NO

    Good Job man!

    Many Thanks!

    I'v posted it in linuxfans.

     
  • Nobody/Anonymous

    Logged In: NO

    good job

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.