Opened 11 years ago
Closed 11 years ago
#3223 closed defect (fixed)
ewcamd/camd35: saveemm should enable emm passthrough
Reported by: | manu | Owned by: | |
---|---|---|---|
Priority: | minor | Component: | Protocol - Newcamd |
Severity: | low | Keywords: | |
Cc: | Sensitive: | no |
Description
If user enables a particular saveemm category, the emm should be delivered to oscam even if blockemm is enabled.
Attachments (1)
Change History (9)
by , 11 years ago
Attachment: | 0002-newcamd-camd35-saveemm-should-enable-emm-passthrough.patch added |
---|
comment:1 by , 11 years ago
comment:2 by , 11 years ago
You're missing nothing.
But with current behavior it's simply not possible to save _and_ block a emm category at once. If a user enables save I'm sure he really want's save them. If he additional enables block, he really want's to prevent them being written to the card.
Current behavior is like: "Oh, you want to save and block? No, I'll just silently ignore your save flag."
comment:3 by , 11 years ago
Ad: Maybe you're missing the fact that block + save will *still* prevent the emm for being written to the card. My patch just additional allows to save the blocked emm which otherwise wouldn't be transmitted at all.
comment:4 by , 11 years ago
Sorry for the chat here...
BUT this is a good idea, sometimes you do require the ODD Global or Shared or Unique EMM, If you use blockemm you have to log the emms elsewhere as oscam currently doesnt save them once you select blockemm. Most of us that block emms do so to avoid things like glitching when provider plays games, but every now and then 1 of them is required.
eg.
our provider send 38 length UA EMKs, occasionally they will send a 40 length EMK rendering our card locked, We have to resend the 38 length UA EMM manually,
so we blockemm UA and have to log for our REAL 38 length EMM elsewhere. this is only one example of why i think it would be a wise addition to the code, i am adding it to mine NOW.
Allowing us to save blocked emms would make it easy on us to locate the required emm.
without having to log the stream full time with another program.
I for one think this is a good idea.
Davo
Thanks "manu"
PS can you fix my latest ticket multiple port issue when using mgclient=1
comment:6 by , 11 years ago
can someone check the other protocols, like cccam and gbox for working passthrough ?
I´am not sure that´s here enabled, too, in this combination.
comment:7 by , 11 years ago
Only camd35 and newcamd code that checked blockemm.
globals.h: int32_t blockemm; module-camd35.c: mbuf[128] = (aureader->blockemm & EMM_GLOBAL && !(aureader->saveemm & EMM_GLOBAL)) ? 0: 1; module-camd35.c: mbuf[129] = (aureader->blockemm & EMM_SHARED && !(aureader->saveemm & EMM_SHARED)) ? 0: 1; module-camd35.c: mbuf[130] = (aureader->blockemm & EMM_UNIQUE && !(aureader->saveemm & EMM_UNIQUE)) ? 0: 1; module-camd35.c: rdr->blockemm = 0; module-camd35.c: rdr->blockemm |= (buf[128]==1) ? 0 : EMM_GLOBAL; module-camd35.c: rdr->blockemm |= (buf[129]==1) ? 0 : EMM_SHARED; module-camd35.c: rdr->blockemm |= (buf[130]==1) ? 0 : EMM_UNIQUE; module-dvbapi.c: if ((rdr->blockemm & emmtype) && !(((1<<(filter[0] % 0x80)) & rdr->s_nano) || (rdr->saveemm & emmtype))) module-newcamd.c: if (aureader->blockemm & EMM_GLOBAL && !(aureader->saveemm & EMM_GLOBAL)) module-newcamd.c: if (aureader->blockemm & EMM_SHARED && !(aureader->saveemm & EMM_SHARED)) module-newcamd.c: if (aureader->blockemm & EMM_UNIQUE && !(aureader->saveemm & EMM_UNIQUE)) module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMUNKNOWNCHK", (rdr->blockemm & EMM_UNKNOWN) ? "checked" : ""); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMUNIQCHK", (rdr->blockemm & EMM_UNIQUE) ? "checked" : ""); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMSHAREDCHK", (rdr->blockemm & EMM_SHARED) ? "checked" : ""); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMGLOBALCHK", (rdr->blockemm & EMM_GLOBAL) ? "checked" : ""); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMUNKNOWNVALUE", (rdr->blockemm & EMM_UNKNOWN) ? "1" : "0"); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMUNIQVALUE", (rdr->blockemm & EMM_UNIQUE) ? "1" : "0"); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMSHAREDVALUE", (rdr->blockemm & EMM_SHARED) ? "1" : "0"); module-webif.c: tpl_addVar(vars, TPLADD, "BLOCKEMMGLOBALVALUE", (rdr->blockemm & EMM_GLOBAL) ? "1" : "0"); oscam-config-reader.c: DEF_OPT_FUNC_X("blockemm-unknown" , OFS(blockemm), flags_fn, EMM_UNKNOWN ), oscam-config-reader.c: DEF_OPT_FUNC_X("blockemm-u" , OFS(blockemm), flags_fn, EMM_UNIQUE ), oscam-config-reader.c: DEF_OPT_FUNC_X("blockemm-s" , OFS(blockemm), flags_fn, EMM_SHARED ), oscam-config-reader.c: DEF_OPT_FUNC_X("blockemm-g" , OFS(blockemm), flags_fn, EMM_GLOBAL ), oscam-config-reader.c: DEF_OPT_FUNC("blockemm-bylen" , 0, blockemm_bylen_fn ), oscam-emm.c: case UNKNOWN: is_blocked = (aureader->blockemm & EMM_UNKNOWN) == EMM_UNKNOWN; break; oscam-emm.c: case UNIQUE : is_blocked = (aureader->blockemm & EMM_UNIQUE ) == EMM_UNIQUE; break; oscam-emm.c: case SHARED : is_blocked = (aureader->blockemm & EMM_SHARED ) == EMM_SHARED; break; oscam-emm.c: case GLOBAL : is_blocked = (aureader->blockemm & EMM_GLOBAL ) == EMM_GLOBAL; break;
comment:8 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
thanks for commit gf. ticket is fixed
Isn't it unexpected to pass EMMs when blockemm is enabled? Someone might argue that blockemm takes precedence before saveemm. And if something is blocked it should stay blocked no matter that save is requested.
Others might say that if save is enabled the EMMs should be saved and then blocked.
What am I missing?