Changeset 8454


Ignore:
Timestamp:
03/02/13 22:37:12 (9 years ago)
Author:
gf
Message:

Add emmreassembly reader setting.

Unfortunately r8441 causes too many errors for clients that do not
try to be smart (like dvbapi, see ticket #3204) so this commit reverts
r8441.

I can't see how to make non assembled and assembled emms to work both,
so I'm forced to introduce reader setting that turns off emm reassembly.

For the documentation:

emmreassembly = [0|1], Default: 1 (EMM reassembly is enabled).

emmreassembly = 0 (disable) should be set for viaccess and cryptoworks
readers if the client that you are using to send EMMs is reassembling
them instead of just sending them to OSCam for processing.

Two such clients are mgcamd and ACamd (over newcamd).

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/globals.h

    r8445 r8454  
    13981398    uint8_t         bulcrypt_version;
    13991399    uint8_t         griffin_cmd_base; // Griffin command base, depends on the card
     1400    uint8_t         emm_reassembly;
    14001401
    14011402    struct s_reader *next;
  • trunk/oscam-config-reader.c

    r8450 r8454  
    787787    DEF_OPT_INT8("ccchop"               , OFS(cc_hop),                  0 ),
    788788#endif
     789    DEF_OPT_UINT8("emmreassembly"       , OFS(emm_reassembly),          1 ),
    789790    DEF_OPT_INT8("deprecated"           , OFS(deprecated),              0 ),
    790791    DEF_OPT_INT8("audisabled"           , OFS(audisabled),              0 ),
     
    817818        "readnano", "resetcycle", "smargopatch", "sc8in1_dtrrts_patch", "boxid",
    818819        "fix9993", "rsakey", "ins7e", "ins7e11", "force_irdeto", "boxkey",
    819         "atr", "detect", "nagra_read", "mhz", "cardmhz",
     820        "atr", "detect", "nagra_read", "mhz", "cardmhz", "emmreassembly",
    820821#ifdef WITH_AZBOX
    821822        "mode",
  • trunk/oscam-emm.c

    r8452 r8454  
    324324        }
    325325
    326         if (aureader->csystem.do_emm_reassembly && !aureader->csystem.do_emm_reassembly(aureader, ep))
    327             return;
     326        if (aureader->emm_reassembly && aureader->csystem.do_emm_reassembly) {
     327            if (!aureader->csystem.do_emm_reassembly(aureader, ep))
     328                return;
     329        }
    328330
    329331        rdr_debug_mask_sensitive(aureader, D_EMM, "emmtype %s. Reader serial {%s}.", typtext[ep->type],
  • trunk/reader-cryptoworks.c

    r8441 r8454  
    738738        case 0x86: // emm-sb
    739739            cs_debug_mask(D_DVBAPI, "[cryptoworks] shared emm (EMM-SB): %s" , cs_hexdump(0, buffer, *len, dumpbuf, sizeof(dumpbuf)));
    740             if (!reader->reassemble_emm_len) return 1;
     740            if (!reader->reassemble_emm_len) return 0;
    741741
    742742            // we keep the first 12 bytes of the 0x84 emm (EMM-SH)
     
    785785                // error in emm assembly
    786786                cs_debug_mask(D_DVBAPI, "[cryptoworks] Error assembling Cryptoworks EMM-S");
     787                return 0;
    787788            }
    788789            break;
  • trunk/reader-viaccess.c

    r8441 r8454  
    10141014            reader->reassemble_emm_len=*len;
    10151015            //cs_ddump_mask(D_READER, buffer, len, "viaccess global emm:");
    1016             break;
     1016            return 0;
    10171017
    10181018        case 0x8e:
    10191019            // emm-s part 2
    1020             if (!reader->reassemble_emm_len) return 1;
     1020            if (!reader->reassemble_emm_len) return 0;
    10211021
    10221022            //extract nanos from emm-gh and emm-s
Note: See TracChangeset for help on using the changeset viewer.