CacheeEx - all in one [v9]
Neue Version mit folgenden neuen (opt-in) Funktionen:
Lokal generierte CWs werden geflaggt und dieses Flag wird via CacheEx 2/3 (cs378x & cccam-Protokoll) weitergereicht.
Wenn ein solches CW eintrifft, wird dieses verwendet.
Auch wenn cacheex_cw_check verwendet wird und der Counter nicht erreicht wurde, wird dieses CW verwendet.
Im Debug-Level 512 wird folgender Eintrag generiert:
Code:
cacheex: received ECM with localgenerated flag READER_NAME
Bei entsprechenden Hits wird es auch im Debug-Level 0 gekennzeichnet:
//--
Die cacheex_cw_check-Settings werden bei Bedarf auch für den Push/Pull angewendet.
Wenn der Mode 1 oder 2 ist und der counter >1, wird das CW erst gepusht, wenn der counter erreicht wurde.
Config:
Code:
oscam.server => [reader]
cacheex_cw_check_for_push = 0|1
oscam.user => [user]
cacheex_cw_check_for_push = 0|1
Bei verweigertem push erscheint im Log-Level 512:
Code:
"push denied - cacheex_check_cw.counter: X > er->cw_count: Y
//--
Patch ist als "p0"- und "p1"-Version im Zip.
Alle (opt-in) Funktionen/Anpassungen:
cw_cache
[CWs werden gespeichert um "verspätete" CWs nicht lokal im Cache zu verwenden & nicht via CacheEx zu verteilen]
config: oscam.conf => [cache]
cw_cache_size = count of max. CWs for CW cache (default 0)
cw_cache_memory = MiByte of max. memory used for CW cache (default 0)
cw_cache_settings = caid[&mask][@provid][$servid]:mode:timediff_old_cw[,n]
mode = 0 (disabled)​
= 1 log only​
= 2 drop known CWs for other srvid || drop incoming CWs if timediff_old_cw > now - first_seen​
timediff_old_cw = time in ms for dropping old CWs​
//--
ecm_cache
[ECM-Requests werden gespeichert um "verspätete" ECM-Requests abzuweisen]
config: oscam.conf => [cache]
ecm_cache_size = count of max. ECMs for ECM cache (default 0)
ecm_cache_memory = MiByte of max. memory used for ECM cache (default 0)
ecm_cache_droptime = time in seconds for dropping old ECM requests
//--
no push after
[CWs von lokalen/proxy-Readern werden nicht via CacheEx gepusht, wenn Zeit X in ms überschritten wird.]
config: oscam.conf => [cache]
cacheex_nopushafter = CAID:time_in_ms[,n]
//--
drop diffs
[das erste CW wird via CacheEx gepusht, alle Diffs gedropt (das erste CW kann natürlich trotzdem ein FAKE sein)]
config: oscam.conf => [cache]
//--
bad_cw_extended: log_bad_cw => um Service-exception erweitert
[der Patch von
@Canna wurde erweitert, um die noch immer existenten 48bit-CWs der Prüfung zu exkluden]
Die "Ausnahmeliste" für "disablecrccws_only_for" wird via Service/s gepflegt.
Der/die Service/s müssen nur global vorhanden sein und keinem User/Reader zugewiesen sein.
z.B.:
Code:
[service_foo]
disablecrccws_only_for_exception=1
caid = ABCD
provid = 123456
srvid = CAFF,EBAB,E000
//--
wait_time_block
[Wenn die (dyn)wait_time für eine CAID

RID:SRVID x mal (x=waittime_block_start) überschritten wurde, wird für y Sekunden (y=waittime_block_time) die (dyn)wait_time nicht mehr verwendet.]
Code:
waittime_block_start = count of wait_time timeouts to start blocking wait_time
waittime_block_time = seconds of blocking wait_time
//--
cacheex_cw_check_for_push
[Die cacheex_cw_check-Settings werden bei Bedarf auch für den Push/Pull angewendet.
Wenn der Mode 1 oder 2 ist und der counter >1, wird das CW erst gepusht, wenn der counter erreicht wurde.]
config:
Code:
oscam.server => [reader]
cacheex_cw_check_for_push = 0|1
oscam.user => [user]
cacheex_cw_check_for_push = 0|1
Bei verweigertem push erscheint im Log-Level 512:
Code:
"push denied - cacheex_check_cw.counter: X > er->cw_count: Y
Gruß w33d