Changeset 1793


Ignore:
Timestamp:
Mar 5, 2010, 5:43:03 PM (10 years ago)
Author:
merek
Message:

Introducing conax_get_emm_type()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/reader-conax.c

    r1774 r1793  
    206206int conax_get_emm_type(EMM_PACKET *ep, struct s_reader * rdr) //returns TRUE if shared emm matches SA, unique emm matches serial, or global or unknown
    207207{
    208     ep->type=ep->emm[2]+3; //FIXME not sure how this maps onto global, unique and shared!
    209     return TRUE; //FIXME let it all pass without checking serial or SA, without filling ep->hexserial
     208    int i, ok = 0;
     209
     210    cs_debug_mask(D_EMM, "Entered conax_get_emm_type ep->emm[2]=%02x",ep->emm[2]);
     211
     212    for (i = 0; i < rdr->nprov; i++) {
     213        ok = (!memcmp(&ep->emm[6], rdr->sa[i], 4));
     214        if (ok) break;
     215    }
     216
     217    if (ok) {
     218        ep->type = SHARED;
     219        memset(ep->hexserial, 0, 8);
     220        memcpy(ep->hexserial, &ep->emm[4], 6);
     221        cs_debug_mask(D_EMM, "CONAX EMM: SHARED, ep->hexserial = %s", cs_hexdump(1, ep->hexserial, 8));
     222        return TRUE;
     223    }
     224    else {
     225        if (!memcmp(&ep->emm[4], rdr->hexserial, 6)) {
     226            ep->type = UNIQUE;
     227            memset(ep->hexserial, 0, 8);
     228            memcpy(ep->hexserial, &ep->emm[4], 6);
     229            cs_debug_mask(D_EMM, "CONAX EMM: UNIQUE, ep->hexserial = %s", cs_hexdump(1, ep->hexserial, 8));
     230            return TRUE;
     231        }
     232        else {
     233            ep->type = GLOBAL;
     234            cs_debug_mask(D_EMM, "CONAX EMM: GLOBAL");
     235            memset(ep->hexserial, 0, 8);
     236            return TRUE;
     237        }
     238    }
     239
    210240}
    211241   
Note: See TracChangeset for help on using the changeset viewer.