mldonkey-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-users] ET_COMPATIBLECLIENT


From: Roland Arendes
Subject: [Mldonkey-users] ET_COMPATIBLECLIENT
Date: Thu, 20 Nov 2003 17:05:21 +0100 (CET)
User-agent: SquirrelMail/1.4.2

Hi

I looked into the source of eMule 0.30c and found these snippets. I hope
it helps to use the ET_COMPATIBLECLIENT-Flag to identify mldonkey without
left_bytes, eMule-Hashfake or other tricks. We (you) should negotiate with
the emule-devs to implement this correctly.

If you remove left_bytes like suggested by someone in the forum, mldonkey
is recognized as a hybrid client (by eMule) - this is not the way we
should take, I think.


----------
--- opcodes.h

// emule tagnames
#define ET_COMPRESSION                  0x20
#define ET_UDPPORT                              0x21
#define ET_UDPVER                               0x22
#define ET_SOURCEEXCHANGE               0x23
#define ET_COMMENTS                             0x24
#define ET_EXTENDEDREQUEST              0x25
#define ET_COMPATIBLECLIENT             0x26


--- BaseClient.cpp

                        case ET_COMPATIBLECLIENT:
                                // Bits 31- 8: 0 - reserved
                                // Bits  7- 0: compatible client ID
                                m_byCompatibleClient = temptag.tag.intvalue;
                                break;

--- BaseClient.cpp

                switch(m_byCompatibleClient){
                        case SO_CDONKEY:
                                m_clientSoft = SO_CDONKEY;
                                break;
                        case SO_XMULE:
                                m_clientSoft = SO_XMULE;
                                break;
                        case SO_SHAREAZA:
                                m_clientSoft = SO_SHAREAZA;
                                break;
                        default:
                                if (m_bIsML)
                                        m_clientSoft = SO_MLDONKEY;
                                else if (m_bIsHybrid)
                                        m_clientSoft = SO_EDONKEYHYBRID;
                                else
                                        m_clientSoft = SO_EMULE;
                }
                return;

--- BaseClient.cpp


                if (test=='KDLM')
                        m_bIsML=true;
                else{
                        m_bIsHybrid = true;
                        m_fSharedDirectories = 1;
                }
        }


--- updownclient.h

enum EClientSoftware{
        SO_EMULE                        = 0,
        SO_CDONKEY                      = 1,
        SO_XMULE                        = 2,
        SO_SHAREAZA                     = 4,
        SO_EDONKEYHYBRID        = 50,
        SO_EDONKEY                      = 51,
        SO_MLDONKEY                     = 52,
        SO_OLDEMULE                     = 53,
        SO_UNKNOWN                      = 54
};






reply via email to

[Prev in Thread] Current Thread [Next in Thread]