On Wed, 1 Jun 2011 11:56:36 +0200, [email protected] (Varadi Gabor)
wrote:
Csak a bayes.c -ben találtam hivatkozást a group_type-re :)
ami érdemleges..
**** float bayes_file.... függvény:
- /* query message counters */ -néj jó a az sql select:)
- /* check if sender is autowhitelisted */ -on belül
if(cfg->enable_auto_white_list == 1){ ...a blokk kezdete...
#ifdef HAVE_MYSQL
snprintf(buf, MAXBUFSIZE-1, "SELECT nham, nspam FROM %s WHERE
token=%llu AND (uid=0 OR uid=%ld)", SQL_TOKEN_TABLE,
APHash(state->from), sdata->uid);
#endif
A fent selectben akkor is benne van az (uid=0 OR ...) vizsgálat,
amikor a
group_type == GROUP_SHARED!!
Ez szerintem nem jó, mert ha csak a uid=0-nál találja meg és a
uid=USER_ID-nél nem, akkor FALSE lesz az adat.
Bar szigoruan veve valoban hibas az sql query, de problemat nem okoz,
mert
group_type=0-nal az 'OR uid=%ld' nem ad vissza eredmenyt.
Ugyanúgy az itt meghívott függvénynél qry_spaminess(sdata, state,
1, cfg);
sem lesz jó sdata->uid !!
Itt igazabol nem tortenik spam valoszinuseg szamitas, mert ha az ebben
a blokkban
az amugy 0.0001 lesz, hiszen feherlistan van a felado, hanem itt sak
azert kell a
qry_spaminess, hogy a tokeneknek a timestamp-jet frissiteni lehessen.
De jogos,
elorebb tettem a gid-et fixalo sort.
Csak a függvény végénél (bayes_file függvény) mented el a
saved_uid = sdata->uid és számolod a spamértéket.
Egy hangos kérdés :)
Ha group_type == GROUP_MERGED, akkor nem kellene a tokeneket a
t_token
táblába IS beletenni uid=0-val és a hozzá tartozó t_misc táblába IS?
Miert? A 'merged' tipusnak pont az a lenyege, hogy a kozos token
halmazt nem
bantjak a felhasznalok, hanem csak a sajatjukat.
Mert akkor a GLOBÁLIS tábla is tanulódna, legalább a tanulás idejére,
vagy
az 1000 levélig vagy ha a felhasználó tanítja.
Az updateTokenTimestamps -nál ha group_type == GROUP_MERGED, akkor a
uid=0-ás tokeneknek is állítja az időpillanatát.
Ez feature, nem bug. Ha csak az uid=xxx tokeneket allitana, akkor a
megfelelo
uid=0 tokeneket idovel kitorolne a purge script.
Csatolnák 2 fájlt tömörítve, amiben az SQL utasítások vannak benne.
A konfigurációban ami lényeges.
* group_type=0
* initial_1000_learning=1
* update_tokens=1
Mind a két alkalommal ugyan az a levelet küldtem be, unix_uid :=
1000-es
felhasználóval a spamdrop-nak.
Oooo, mit kellene itt latnom? Btw. volt egy bug pont a
initial_1000_learning
kornyeken, amit csak mostansag javitottam ki.
Suto Janos