Seite 1 von 1

BeitragVerfasst: Mo 14. Apr 2008, 22:46
Author: taz
I've altered @ CClientList::GetModStatistics

Code: Alles auswählen
//>>> shadow2004::ModStats [TPT]
void CClientList::GetModStatistics(CRBMap<UINT, CRBMap<CString, UINT>* > *clientMods){
    if (!clientMods)
        return;
    clientMods->RemoveAll();

    for (POSITION pos = list.GetHeadPosition(); pos != NULL;) {
        CUpDownClient* cur_client =    list.GetNext(pos);

        switch (cur_client->GetClientSoft()) {
        case SO_EMULE   :
        case SO_OLDEMULE:

// By Taz - ClientAnalyzer don't count Modthief mod version
#ifdef CLIENTANALYZER

// By Taz - tempfix
//            if (cur_client->GetAntiLeechData() && cur_client->GetAntiLeechData()->GetBadForThisSession(AT_MODTHIEF))
            if ((cur_client->GetAntiLeechData() && cur_client->GetAntiLeechData()->GetBadForThisSession(AT_MODTHIEF)) ||
                (StrStrI(cur_client->GetClientModVer(), MOD_VERSION) && cur_client->GetAntiLeechData() && cur_client->GetAntiLeechData()->GetBadForThisSession(AT_NICKTHIEF)))
// <------- tempfix

                continue;
#endif
// <------- ClientAnalyzer don't count Modthief mod version

            break;
        default:
            continue;
        }

...


for more realistic our mod counts.

Perhaps it could be coded better.

Without adding MODSTRING I was under the impression mod thief detection was not so accurate (i.e. nick thief that were also mod thief were detected only as nick thief) - I think a better solution is to integrate it into CAntiLeechData::Check4ModThief (however I do believe that it's better to have a single maintained CA version).

BeitragVerfasst: Di 15. Apr 2008, 08:25
Author: WiZaRd
You do not need an else if you continue anyways... however, the detection of modthieves has gotten a bit harder because a lot of bad clients also fake the client version...

BeitragVerfasst: Di 15. Apr 2008, 18:05
Author: taz
You do not need an else if you continue anyways...


I placed it for clarity as with other typical #ifdef CLIENTANALYZER

however, the detection of modthieves has gotten a bit harder because a lot of bad clients also fake the client version...


Should a test for nick thief with our mod (&version) be considered as mod thief ?

At least as it comes to counting our own I altered 1'st post - and removed the MODSTRING (no longer real added value since it used to trigger, due to easy modver, a mod thief any "nick thief with our mod & version" as well as concatenate an extra "tail" to mod long name).

BeitragVerfasst: Di 15. Apr 2008, 18:22
Author: WiZaRd
[url=index.php?act=findpost&pid=68493]<{POST_SNAPBACK}>[/url]
You do not need an else if you continue anyways...


I placed it for clarity as with other typical #ifdef CLIENTANALYZER

however, the detection of modthieves has gotten a bit harder because a lot of bad clients also fake the client version...


Should a test for nick thief with our mod (&version) be considered as mod thief ?

At least as it comes to counting our own I altered 1'st post - and removed the MODSTRING (no longer real added value since it used to trigger, due to easy modver, a mod thief any "nick thief with our mod & version" as well as concatenate an extra "tail" to mod long name).

You can't be 100% sure, however I think you could skip all of those bad clients for the stats which are useless anyways Bild

BeitragVerfasst: Di 15. Apr 2008, 18:37
Author: taz
You can't be 100% sure, however I think you could skip all of those bad clients for the stats which are useless anyways Bild


The whole "fix" is about facing reality and stopping faulty "ego trips" or faulty indication of mod popularity - thus further enhancing our mod usage based on wrong datum ...