Changeset 1983


Ignore:
Timestamp:
04/06/10 23:21:38 (12 years ago)
Author:
_network
Message:

add function for guessing cardsystem

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/globals.h

    r1977 r1983  
    10081008int reader_get_emm_type(EMM_PACKET *ep, struct s_reader * reader);
    10091009uchar *get_emm_filter(struct s_reader * rdr, int type);
     1010int get_cardsystem(ushort caid);
    10101011
    10111012#ifdef HAVE_PCSC
  • trunk/module-dvbapi.c

    r1959 r1983  
    779779            // QboxHD pmt.tmp is the full capmt written as a string of hex values
    780780            // pmt.tmp must be longer than 3 bytes (6 hex chars) and even length
    781             if ((len<6) || ((len%2) != 0)) {
     781            if ((len<6) || ((len%2) != 0) || ((len/2)>sizeof(dest))) {
    782782                cs_log("dvbapi: error parsing QboxHD pmt.tmp, incorrect length");
    783783                return;
     
    785785
    786786            for(j2=0,j1=0;j2<len;j2+=2,j1++) {
    787                 if (sscanf((char*)mbuf+j2,"%02X",(uint*)dest+j1) != 1) {
     787                if (sscanf((char*)mbuf+j2, "%02X", dest+j1) != 1) {
    788788                    cs_log("dvbapi: error parsing QboxHD pmt.tmp, data not valid in position %d",j2);
    789789                    return;
     
    795795            pmt_id = dvbapi_parse_capmt(dest+4, (len/2)-4, -1);
    796796#else
     797            if (len>sizeof(dest)) return;
    797798            cs_ddump(mbuf,len,"pmt:");
    798799       
  • trunk/reader-common.c

    r1981 r1983  
    418418}
    419419
     420int get_cardsystem(ushort caid) {
     421    switch(caid >> 8) {
     422        case 0x01:
     423            return SC_SECA;
     424        case 0x05:
     425            return SC_VIACCESS;
     426        case 0x06:
     427            return SC_IRDETO;
     428        case 0x09:
     429            return SC_VIDEOGUARD2;
     430        case 0x0B:
     431            return SC_CONAX;
     432        case 0x0D:
     433            return SC_CRYPTOWORKS;
     434        case 0x17:
     435        case 0x18:
     436            return SC_NAGRA;
     437        default:
     438            return 0;
     439    }
     440}
     441
    420442uchar *get_emm_filter(struct s_reader * rdr, int type) {
    421443
Note: See TracChangeset for help on using the changeset viewer.