Changeset 2747


Ignore:
Timestamp:
07/15/10 12:40:14 (10 years ago)
Author:
schlocke
Message:

cache1 reactivated. remark: works only if cw is already found

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/globals.h

    r2733 r2747  
    10421042extern int cs_auth_client(struct s_auth *, char*);
    10431043extern void cs_disconnect_client(void);
    1044 extern int check_ecmcache(ECM_REQUEST *, ulong);
     1044extern int check_ecmcache1(ECM_REQUEST *, ulong);
     1045extern int check_ecmcache2(ECM_REQUEST *, ulong);
    10451046extern void store_logentry(char *);
    10461047extern int write_to_pipe(int, int, uchar *, int);
  • trunk/oscam-reader.c

    r2733 r2747  
    445445  }
    446446  // cache2
    447   if (check_ecmcache(er, client[er->cidx].grp))
     447  if (check_ecmcache2(er, client[er->cidx].grp))
    448448  {
    449449    er->rc=2;
  • trunk/oscam.c

    r2722 r2747  
    13681368}
    13691369
    1370 int check_ecmcache(ECM_REQUEST *er, ulong grp)
    1371 {
    1372     // disable cache1 and cache2
    1373     if (!reader[ridx].cachecm) return(0);
    1374    
     1370/**
     1371 * cache 1: client-invoked
     1372 * returns found ecm task index
     1373 **/
     1374int check_ecmcache1(ECM_REQUEST *er, ulong grp)
     1375{
    13751376    int i;
    13761377    //cs_ddump(ecmd5, CS_ECMSTORESIZE, "ECM search");
    1377     //cs_log("cache CHECK: grp=%lX", grp);
     1378    //cs_log("cache1 CHECK: grp=%lX", grp);
    13781379    for(i=0; i<CS_ECMCACHESIZE; i++) {
    13791380        if ((grp & ecmcache[i].grp) &&
     
    13811382             (!memcmp(ecmcache[i].ecmd5, er->ecmd5, CS_ECMSTORESIZE)))
    13821383        {
    1383             //cs_log("cache found: grp=%lX cgrp=%lX", grp, ecmcache[i].grp);
     1384            //cs_log("cache1 found: grp=%lX cgrp=%lX", grp, ecmcache[i].grp);
    13841385            memcpy(er->cw, ecmcache[i].cw, 16);
    13851386            return(1);
     
    13881389    return(0);
    13891390}
     1391
     1392/**
     1393 * cache 2: reader-invoked
     1394 * returns 1 if found in cache. cw is copied to er
     1395 **/
     1396int check_ecmcache2(ECM_REQUEST *er, ulong grp)
     1397{
     1398    // disable cache2
     1399    if (!reader[ridx].cachecm) return(0);
     1400   
     1401    int i;
     1402    //cs_ddump(ecmd5, CS_ECMSTORESIZE, "ECM search");
     1403    //cs_log("cache2 CHECK: grp=%lX", grp);
     1404    for(i=0; i<CS_ECMCACHESIZE; i++) {
     1405        if ((grp & ecmcache[i].grp) &&
     1406             ecmcache[i].caid==er->caid &&
     1407             (!memcmp(ecmcache[i].ecmd5, er->ecmd5, CS_ECMSTORESIZE)))
     1408        {
     1409            //cs_log("cache2 found: grp=%lX cgrp=%lX", grp, ecmcache[i].grp);
     1410            memcpy(er->cw, ecmcache[i].cw, 16);
     1411            return(1);
     1412        }
     1413    }
     1414    return(0);
     1415}
     1416
    13901417
    13911418static void store_ecm(ECM_REQUEST *er)
     
    23562383            }
    23572384        }
    2358 
     2385    }
     2386   
     2387    //Schlocke: above checks could change er->rc so
     2388    if (er->rc > 99) {
    23592389        /*BetaCrypt tunneling
    23602390         *moved behind the check routines,
     
    23692399
    23702400        // cache1
    2371         if (check_ecmcache(er, client[cs_idx].grp))
     2401        if (check_ecmcache1(er, client[cs_idx].grp))
    23722402            er->rc = 1;
    23732403
     
    23772407    }
    23782408
    2379     if(er->rc > 99 && er->rc != 1) {
     2409    if(er->rc > 99) {
    23802410
    23812411        if (cfg->reader_auto_loadbalance) {
Note: See TracChangeset for help on using the changeset viewer.