Changeset 5104
- Timestamp:
- 04/28/11 18:57:09 (13 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-cccshare.c
r5085 r5104 1047 1047 else 1048 1048 { 1049 if (cfg.cc_update_interval <= 0)1049 if (cfg.cc_update_interval <= 10) 1050 1050 cfg.cc_update_interval = DEFAULT_UPDATEINTERVAL; 1051 1051 cs_sleepms(cfg.cc_update_interval*1000); -
trunk/module-stat.c
r5101 r5104 819 819 while ((rdr=ll_iter_next(it))) { 820 820 stat = get_stat(rdr, er->caid, prid, er->srvid, er->l); 821 if (stat && stat->ecm_count>0 ) {821 if (stat && stat->ecm_count>0 && stat->last_received+get_reopen_seconds(stat) < current_time) { 822 822 if (!ll_contains(result, rdr) && nreaders) { 823 823 ll_append(result, rdr); … … 846 846 847 847 if (stat && stat->rc != 0) { //retrylimit reached: 848 if ( stat->last_received+get_reopen_seconds(stat) < current_time) { //Retrying reader every (900/conf) seconds848 if (cfg.lb_reopen_mode || stat->last_received+get_reopen_seconds(stat) < current_time) { //Retrying reader every (900/conf) seconds 849 849 stat->last_received = current_time; 850 850 nreaders += ll_remove(result, rdr); -
trunk/oscam-garbage.c
r5100 r5104 35 35 36 36 int32_t bucket = (uintptr_t)data/16 % HASH_BUCKETS; 37 while (pthread_mutex_ lock(&garbage_lock[bucket])) {37 while (pthread_mutex_trylock(&garbage_lock[bucket])) { 38 38 cs_debug_mask(D_TRACE, "trylock add_garbage wait"); 39 39 cs_sleepms(50); -
trunk/oscam.c
r5101 r5104 1793 1793 * distributes found ecm-request to all clients with rc=99 1794 1794 **/ 1795 void distribute_ecm(ECM_REQUEST *er, uint64_t grp )1795 void distribute_ecm(ECM_REQUEST *er, uint64_t grp, int32_t rc) 1796 1796 { 1797 1797 struct s_client *cl; 1798 1798 ECM_REQUEST *ecm; 1799 1799 int32_t n, i, pending; 1800 1801 if (er->rc == E_RDR_FOUND) //found converted to cache... 1802 er->rc = E_CACHE2; //cache 1800 1801 er->rc = rc; 1803 1802 1804 1803 for (cl=first_client->next; cl ; cl=cl->next) { … … 1811 1810 if (ecm->rc >= E_99) { 1812 1811 pending++; 1813 if (ecm->ecmcacheptr == er->ecmcacheptr) { // 1814 //|| 1815 //((ecm->caid==er->caid || ecm->ocaid==er->ocaid) && !memcmp(ecm->ecmd5, er->ecmd5, CS_ECMSTORESIZE)))) { 1812 if (ecm->ecmcacheptr == er->ecmcacheptr) { 1816 1813 er->cpti = ecm->cpti; 1817 1814 //cs_log("distribute %04X:%06X:%04X cpti %d to client %s", ecm->caid, ecm->prid, ecm->srvid, ecm->cpti, username(cl)); … … 2205 2202 store_cw_in_cache(ecm_nagra, ecm_nagra->selected_reader->grp, ecm_nagra->rc); 2206 2203 send_dcw(cl, ecm_nagra); 2207 distribute_ecm(ecm_nagra, ert->selected_reader->grp );2204 distribute_ecm(ecm_nagra, ert->selected_reader->grp, ert->rc); 2208 2205 } 2209 2206 return; //do not send it to the client, he hasn't requested that, its from the lb … … 2221 2218 2222 2219 send_dcw(cl, ert); 2223 distribute_ecm(er, ert->selected_reader->grp );2220 distribute_ecm(er, ert->selected_reader->grp, (ert->rc<E_NOTFOUND)?E_CACHE2:ert->rc); 2224 2221 } 2225 2222 return;
Note:
See TracChangeset
for help on using the changeset viewer.