- Timestamp:
- 02/04/17 15:04:06 (7 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-cacheex.c
r11312 r11351 687 687 } 688 688 689 if(chk_is_null_CW(er->cw) )689 if(chk_is_null_CW(er->cw) && er->caid !=0x2600) // 0x2600 used by biss and constant cw could be indeed zero 690 690 { 691 691 cs_log_dump_dbg(D_CACHEEX, er->cw, 16, "push received null cw from %s", csp ? "csp" : username(cl)); -
trunk/module-cw-cycle-check.c
r11306 r11351 116 116 { 117 117 uint8_t ret = 1; 118 if(chk_is_null_CW(er->cw) )118 if(chk_is_null_CW(er->cw) && er->caid !=0x2600) // 0x2600 used by biss and constant cw could be indeed zero 119 119 { er->rc = E_NOTFOUND; } 120 120 -
trunk/module-dvbapi-azbox.c
r11169 r11351 310 310 for(n = 0; n < 2; n++) 311 311 { 312 if(memcmp(er->cw + (n * 8), demux[0].lastcw[n], 8) && memcmp(er->cw + (n * 8), nullcw, 8))312 if(memcmp(er->cw + (n * 8), demux[0].lastcw[n], 8)) 313 313 { 314 314 memcpy(demux[0].lastcw[n], er->cw + (n * 8), 8); -
trunk/module-dvbapi-mca.c
r11169 r11351 601 601 for(n = 0; n < 2; n++) 602 602 { 603 if((memcmp(er->cw + (n * 8), demux[0].lastcw[0], 8) && memcmp(er->cw + (n * 8), demux[0].lastcw[1], 8)) && memcmp(er->cw + (n * 8), nullcw, 8)) 603 // 0x2600 used by biss and constant cw could be indeed zero 604 if((memcmp(er->cw + (n * 8), demux[0].lastcw[0], 8) && memcmp(er->cw + (n * 8), demux[0].lastcw[1], 8)) && memcmp(er->cw + (n * 8), nullcw, 8) || er->caid == 0x2600) 604 605 { 605 606 memcpy(demux[0].lastcw[n], er->cw + (n * 8), 8); -
trunk/module-dvbapi-stapi.c
r11168 r11351 722 722 for(l = 0; l < 2; l++) 723 723 { 724 if(memcmp(cw + (l * 8), demux[demux_id].lastcw[l], 8) != 0 && memcmp(cw + (l * 8), nullcw, 8) != 0)724 if(memcmp(cw + (l * 8), demux[demux_id].lastcw[l], 8) != 0) 725 725 { 726 726 for(n = 0; n < PTINUM; n++) -
trunk/module-dvbapi-stapi5.c
r11188 r11351 728 728 for(l = 0; l < 2; l++) 729 729 { 730 if(memcmp(cw + (l * 8), demux[demux_id].lastcw[l], 8) != 0 && memcmp(cw + (l * 8), nullcw, 8) != 0)730 if(memcmp(cw + (l * 8), demux[demux_id].lastcw[l], 8) != 0) 731 731 { 732 732 ErrorCode = oscam_sttkd_KeyWrite(tkd_desc_info[demux[demux_id].dev_index].key_hndl, l, cw + (l * 8)); -
trunk/module-dvbapi.c
r11340 r11351 5765 5765 cs_hexdump(0, cw + (n * 8), 8, newcw, sizeof(newcw)); 5766 5766 5767 if((memcmp(cw + (n * 8), demux[demux_id].lastcw[n], 8) != 0 || cwEmpty || stream_id >1) 5768 && memcmp(cw + (n * 8), nullcw, 8) != 0) // check if already delivered and new cw part is valid! 5767 if((memcmp(cw + (n * 8), demux[demux_id].lastcw[n], 8) != 0 || cwEmpty || stream_id >1)) 5769 5768 { 5770 5769 ca_index_t idx = dvbapi_ca_setpid(demux_id, pid, stream_id, (algo == CA_ALGO_DES)); // prepare ca … … 5934 5933 } 5935 5934 5936 if((status == 0 || status == 3 || status == 4) && er->rc < E_NOTFOUND) // 0=matching ecm hash, 2=no filter, 3=table reset, 4=cache-ex response 5935 // 0=matching ecm hash, 2=no filter, 3=table reset, 4=cache-ex response 5936 // Dont check for biss since it is using constant cw and cw can even be all zeros 5937 if((status == 0 || status == 3 || status == 4) && er->rc < E_NOTFOUND && er->caid !=0x2600) 5937 5938 { 5938 5939 if(memcmp(er->cw, demux[i].lastcw[0], 8) == 0 && memcmp(er->cw + 8, demux[i].lastcw[1], 8) == 0) // check for matching controlword … … 6727 6728 } 6728 6729 6729 if(memcmp(er->cw, nullcw, 8) == 0 && memcmp(er->cw+8, nullcw, 8) == 0) {return 5;} // received a null cw -> not usable! 6730 // 0x2600 used by biss and constant cw could be zero but every other caid received a null cw -> not usable! 6731 if(memcmp(er->cw, nullcw, 8) == 0 && memcmp(er->cw+8, nullcw, 8) == 0 && er->caid !=0x2600) {return 5;} 6730 6732 struct s_ecmpids *curpid = NULL; 6731 6733 -
trunk/oscam-ecm.c
r11347 r11351 1566 1566 1567 1567 //SPECIAL CHECKs for rc 1568 if(rc < E_NOTFOUND && cw && chk_is_null_CW(cw) ) //ifcw=0 by anticascading1568 if(rc < E_NOTFOUND && cw && chk_is_null_CW(cw) && er->caid !=0x2600) // 0x2600 used by biss and constant cw could be zero but still catch cw=0 by anticascading 1569 1569 { 1570 1570 rc = E_NOTFOUND; … … 1692 1692 { 1693 1693 //cache update 1694 if(ea && (ea->rc < E_NOTFOUND) && (!chk_is_null_CW(ea->cw) ))1694 if(ea && (ea->rc < E_NOTFOUND) && (!chk_is_null_CW(ea->cw) && er->caid !=0x2600)) // 0x2600 used by biss and constant cw could be indeed zero 1695 1695 add_cache_from_reader(er, reader, er->csp_hash, er->ecmd5, ea->cw, er->caid, er->prid, er->srvid ); 1696 1696
Note:
See TracChangeset
for help on using the changeset viewer.