fix-stats-cacheex #18

Merged
mardock2009 merged 1 commits from fix-stats-bug into main 2026-02-18 12:18:09 +00:00
Owner

Poprawiłem problem z logowaniem hit w CacheEX Stats gdy funkcja cwvote jest włączona.

Przyczyna problemu:

W funkcji cw_vote_add w pliku oscam-ecm.c, gdy CW pochodzi z cache (CacheEX), wywoływana jest z parametrem rdr = ecm->selected_reader. Problem polegał na tym, że:

  1. Gdy rdr nie jest NULL (czyli jest ustawiony na ecm->selected_reader), kod sprawdzał tylko cacheex_reader(rdr) aby ustalić czy jest to CacheEX
  2. Jeśli ecm->selected_reader był prawdziwym readerem (nie wirtualnym CacheEX), wtedy flaga is_cacheex była ustawiana na 0
  3. W rezultacie flaga has_cacheex_vote nie była ustawiana na 1 dla głosów z CacheEX
  4. Nawet jeśli er->cacheex_src był ustawiony (co oznacza że CW faktycznie pochodzi z CacheEX), flaga pozostawała 0

Zastosowana poprawka:

Dodałem dodatkowe sprawdzenie w bloku if (rdr) w funkcji cw_vote_add:

// Dodatkowe sprawdzenie: jeśli er->cacheex_src lub er->from_csp jest ustawione,
// to CW pochodzi z CacheEX, nawet jeśli selected_reader nie jest CacheEX readerem
if (er->cacheex_src || er->from_csp) {
    is_cacheex = 1;
    check_source_duplicates = 0;
}

Ta poprawka zapewnia, że gdy CW pochodzi z CacheEX (nawet jeśli selected_reader nie jest CacheEX readerem), flaga has_cacheex_vote będzie poprawnie ustawiana, co pozwoli na zliczanie hit w CacheEX Stats.

Poprawiłem problem z logowaniem hit w CacheEX Stats gdy funkcja cwvote jest włączona. ## Przyczyna problemu: W funkcji `cw_vote_add` w pliku `oscam-ecm.c`, gdy CW pochodzi z cache (CacheEX), wywoływana jest z parametrem `rdr = ecm->selected_reader`. Problem polegał na tym, że: 1. Gdy `rdr` nie jest NULL (czyli jest ustawiony na `ecm->selected_reader`), kod sprawdzał tylko `cacheex_reader(rdr)` aby ustalić czy jest to CacheEX 2. Jeśli `ecm->selected_reader` był prawdziwym readerem (nie wirtualnym CacheEX), wtedy flaga `is_cacheex` była ustawiana na 0 3. W rezultacie flaga `has_cacheex_vote` nie była ustawiana na 1 dla głosów z CacheEX 4. Nawet jeśli `er->cacheex_src` był ustawiony (co oznacza że CW faktycznie pochodzi z CacheEX), flaga pozostawała 0 ## Zastosowana poprawka: Dodałem dodatkowe sprawdzenie w bloku `if (rdr)` w funkcji `cw_vote_add`: ```c // Dodatkowe sprawdzenie: jeśli er->cacheex_src lub er->from_csp jest ustawione, // to CW pochodzi z CacheEX, nawet jeśli selected_reader nie jest CacheEX readerem if (er->cacheex_src || er->from_csp) { is_cacheex = 1; check_source_duplicates = 0; } ``` Ta poprawka zapewnia, że gdy CW pochodzi z CacheEX (nawet jeśli `selected_reader` nie jest CacheEX readerem), flaga `has_cacheex_vote` będzie poprawnie ustawiana, co pozwoli na zliczanie hit w CacheEX Stats.
mardock2009 added 1 commit 2026-02-18 12:17:18 +00:00
mardock2009 merged commit 2b3e733304 into main 2026-02-18 12:18:09 +00:00
mardock2009 deleted branch fix-stats-bug 2026-02-18 12:18:09 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: mardock2009/oscam-2.26.01-11942-802-with-Advanced-fake-dcw-detection#18
No description provided.