|
SASC-NG
DVBSoftCAM
|
#include <cc.h>
Inheritance diagram for cCardClient:Public Member Functions | |
| cCardClient (const char *Name) | |
| virtual bool | Init (const char *config)=0 |
| virtual bool | Login (void)=0 |
| virtual bool | Immediate (void) |
| virtual bool | CanHandle (unsigned short SysId) |
| virtual bool | ProcessECM (const cEcmInfo *ecm, const unsigned char *data, unsigned char *cw)=0 |
| virtual bool | ProcessEMM (int caSys, const unsigned char *data) |
| const char * | Name (void) |
Protected Member Functions | |
| bool | ParseStdConfig (const char *config, int *num=0) |
| virtual bool | SendMsg (const unsigned char *data, int len) |
| virtual int | RecvMsg (unsigned char *data, int len, int to=-1) |
| virtual void | Logout (void) |
| void | CaidsChanged (void) |
Protected Attributes | |
| cNetSocket | so |
| const char * | name |
| char | hostname [64] |
| int | port |
| int | emmAllowed |
| int | emmCaid [MAX_CC_CAID] |
| int | emmMask [MAX_CC_CAID] |
| int | numCaid |
| cMsgCache | msECM |
| cMsgCache | msEMM |
Friends | |
| class | cSystemCardClient |
| cCardClient::cCardClient | ( | const char * | Name | ) |
| void cCardClient::CaidsChanged | ( | void | ) | [protected] |
Definition at line 67 of file cc.c.
Referenced by cCardClientCamd35::HandleEMMRequest(), cCardClientCamd33::HandleEMMRequest(), cCardClientRadegast::Login(), cCardClientNewCamd::Login(), and cCardClientBuffy::Login().
{
cSystem::CaidsChanged();
}
| bool cCardClient::CanHandle | ( | unsigned short | SysId | ) | [virtual] |
Reimplemented in cCardClientCamd33, cCardClientBuffy, cCardClientCCcam2, cCardClientNewCamd, and cCardClientRadegast.
Definition at line 99 of file cc.c.
References emmCaid, emmMask, i, and numCaid.
Referenced by cSystemLinkCardClient::FindBySysId(), cCardClientGbox::ProcessECM(), cCardClientCCcam::ProcessECM(), and cCardClientCommon::ProcessECM().
| bool cCardClient::Immediate | ( | void | ) | [virtual] |
Reimplemented in cCardClientCommon.
Definition at line 62 of file cc.c.
References immediate.
Referenced by cSystemLinkCardClient::ParseLinePlain().
{
return immediate;
}
| virtual bool cCardClient::Init | ( | const char * | config | ) | [pure virtual] |
Implemented in cCardClientAroureos, cCardClientCommon, cCardClientBuffy, cCardClientCamd35, cCardClientCCcam, cCardClientCCcam2, cCardClientGbox, cCardClientNewCamd, and cCardClientRadegast.
Referenced by cSystemLinkCardClient::ParseLinePlain().
| virtual bool cCardClient::Login | ( | void | ) | [pure virtual] |
Implemented in cCardClientAroureos, cCardClientCommon, cCardClientBuffy, cCardClientCamd35, cCardClientCCcam, cCardClientCCcam2, cCardClientGbox, cCardClientNewCamd, and cCardClientRadegast.
Referenced by cSystemLinkCardClient::ParseLinePlain(), RecvMsg(), and SendMsg().
| void cCardClient::Logout | ( | void | ) | [protected, virtual] |
Reimplemented in cCardClientCCcam2.
Definition at line 106 of file cc.c.
References cNetSocket::Disconnect(), and so.
Referenced by cCardClientRadegast::Init(), cCardClientNewCamd::Init(), cCardClientGbox::Init(), cCardClientCCcam::Init(), cCardClientCamd35::Init(), cCardClientCommon::Init(), cCardClientAroureos::Init(), cCardClientRadegast::Login(), cCardClientNewCamd::Login(), cCardClientGbox::Login(), cCardClientCCcam::Login(), cCardClientCamd35::Login(), cCardClientCommon::Login(), cCardClientAroureos::Login(), RecvMsg(), and SendMsg().
{
so.Disconnect();
}
| const char* cCardClient::Name | ( | void | ) | [inline] |
Definition at line 83 of file cc.h.
References name.
Referenced by cSystemLinkCardClient::ParseLinePlain(), and cSystemCardClient::ProcessECM().
{ return name; }
| bool cCardClient::ParseStdConfig | ( | const char * | config, |
| int * | num = 0 |
||
| ) | [protected] |
Definition at line 72 of file cc.c.
References emmAllowed, emmCaid, emmMask, hostname, i, L_CC_CORE, L_GEN_WARN, LBEND, LBPUT, LBSTART, MAX_CC_CAID, numCaid, port, PRINTF, and start().
Referenced by cCardClientRadegast::Init(), cCardClientNewCamd::Init(), cCardClientGbox::Init(), cCardClientCCcam2::Init(), cCardClientCCcam::Init(), cCardClientCamd35::Init(), cCardClientCommon::Init(), and cCardClientAroureos::Init().
{
int n, emm=0;
if(!num) num=&n;
if(sscanf(config,"%63[^:]:%d:%d%n",hostname,&port,&emm,num)<3) return false;
if(emm>0) emmAllowed=1;
if(emm==2) emmAllowed=2; // EMM caching disabled
if(config[*num]=='/') {
numCaid=0;
do {
emmMask[numCaid]=0xFFFF;
int start=(*num)+1;
if(sscanf(&config[start],"%x%n/%x%n",&emmCaid[numCaid],num,&emmMask[numCaid],num)<1)
return false;
*num+=start;
if(emmMask[numCaid]==0x0000 && emmCaid[numCaid]!=0x0000)
PRINTF(L_GEN_WARN,"CAID %04x MASK %04x in cardclient config doesn't match anything!",emmCaid[numCaid],emmMask[numCaid]);
numCaid++;
} while(numCaid<MAX_CC_CAID && config[*num]==',');
}
LBSTART(L_CC_CORE);
LBPUT("hostname=%s port=%d emm=%d emmCaids",hostname,port,emmAllowed);
for(int i=0; i<numCaid; i++) LBPUT(" %04x/%04x",emmCaid[i],emmMask[i]);
LBEND();
return true;
}
| virtual bool cCardClient::ProcessECM | ( | const cEcmInfo * | ecm, |
| const unsigned char * | data, | ||
| unsigned char * | cw | ||
| ) | [pure virtual] |
Implemented in cCardClientAroureos, cCardClientCommon, cCardClientCamd35, cCardClientCCcam, cCardClientCCcam2, cCardClientGbox, cCardClientNewCamd, and cCardClientRadegast.
Referenced by cSystemCardClient::ProcessECM().
| virtual bool cCardClient::ProcessEMM | ( | int | caSys, |
| const unsigned char * | data | ||
| ) | [inline, virtual] |
Reimplemented in cCardClientAroureos, cCardClientCommon, cCardClientCamd35, cCardClientCCcam2, cCardClientNewCamd, and cCardClientRadegast.
Definition at line 82 of file cc.h.
Referenced by cSystemCardClient::ProcessEMM().
{ return false; }
| int cCardClient::RecvMsg | ( | unsigned char * | data, |
| int | len, | ||
| int | to = -1 |
||
| ) | [protected, virtual] |
Reimplemented in cCardClientCommon.
Definition at line 122 of file cc.c.
References cNetSocket::Connected(), L_CC_CORE, Login(), Logout(), PRINTF, cNetSocket::Read(), and so.
Referenced by cCardClientCCcam2::Action(), cCardClientCCcam2::Login(), cCardClientAroureos::ProcessECM(), and cCardClientCamd35::RecvBlock().
| bool cCardClient::SendMsg | ( | const unsigned char * | data, |
| int | len | ||
| ) | [protected, virtual] |
Reimplemented in cCardClientCommon.
Definition at line 111 of file cc.c.
References cNetSocket::Connected(), L_CC_CORE, Login(), Logout(), PRINTF, so, and cNetSocket::Write().
Referenced by cCardClientAroureos::ProcessECM(), cCardClientAroureos::ProcessEMM(), and cCardClientCamd35::SendBlock().
friend class cSystemCardClient [friend] |
int cCardClient::emmAllowed [protected] |
Definition at line 66 of file cc.h.
Referenced by cCardClientCamd35::HandleEMMRequest(), cCardClientCamd33::HandleEMMRequest(), cCardClientCommon::Immediate(), cCardClientRadegast::Login(), cCardClientNewCamd::Login(), cCardClientCommon::Login(), cCardClientAroureos::Login(), ParseStdConfig(), cCardClientRadegast::ProcessEMM(), cCardClientNewCamd::ProcessEMM(), cCardClientCCcam2::ProcessEMM(), cCardClientCamd35::ProcessEMM(), cCardClientCommon::ProcessEMM(), and cCardClientAroureos::ProcessEMM().
int cCardClient::emmCaid[MAX_CC_CAID] [protected] |
Definition at line 67 of file cc.h.
Referenced by CanHandle(), and ParseStdConfig().
int cCardClient::emmMask[MAX_CC_CAID] [protected] |
Definition at line 67 of file cc.h.
Referenced by CanHandle(), and ParseStdConfig().
char cCardClient::hostname[64] [protected] |
Definition at line 64 of file cc.h.
Referenced by cCardClientRadegast::Login(), cCardClientNewCamd::Login(), cCardClientCCcam2::Login(), cCardClientCamd35::Login(), cCardClientCommon::Login(), cCardClientAroureos::Login(), ParseStdConfig(), and cSystemCardClient::ProcessECM().
cMsgCache cCardClient::msECM [protected] |
Definition at line 68 of file cc.h.
Referenced by cSystemCardClient::ProcessECM().
cMsgCache cCardClient::msEMM [protected] |
Definition at line 68 of file cc.h.
Referenced by cCardClientRadegast::ProcessEMM(), cCardClientNewCamd::ProcessEMM(), cCardClientCamd35::ProcessEMM(), cCardClientCommon::ProcessEMM(), and cCardClientAroureos::ProcessEMM().
const char* cCardClient::name [protected] |
Definition at line 63 of file cc.h.
Referenced by cCardClientCamd35::HandleEMMRequest(), cCardClientCamd33::HandleEMMRequest(), cCardClientNewCamd::Init(), cCardClientCCcam2::Init(), cCardClientCCcam::Init(), cCardClientRadegast::Login(), cCardClientNewCamd::Login(), cCardClientCamd35::Login(), cCardClientBuffy::Login(), cCardClientCommon::Login(), cCardClientAroureos::Login(), Name(), cCardClientCommon::ParseKeyConfig(), cCardClientCamd35::ParseUserConfig(), cCardClientCommon::ParseUserConfig(), cCardClientRadegast::ProcessECM(), cCardClientNewCamd::ProcessECM(), cCardClientGbox::ProcessECM(), cCardClientCCcam2::ProcessECM(), cCardClientCamd35::ProcessECM(), cCardClientCommon::ProcessECM(), and cCardClientCamd35::ProcessEMM().
int cCardClient::numCaid [protected] |
Definition at line 67 of file cc.h.
Referenced by CanHandle(), and ParseStdConfig().
int cCardClient::port [protected] |
Definition at line 65 of file cc.h.
Referenced by cCardClientRadegast::Login(), cCardClientNewCamd::Login(), cCardClientCCcam2::Login(), cCardClientCCcam::Login(), cCardClientCamd35::Login(), cCardClientCommon::Login(), cCardClientAroureos::Login(), ParseStdConfig(), and cSystemCardClient::ProcessECM().
cNetSocket cCardClient::so [protected] |
Definition at line 62 of file cc.h.
Referenced by cCardClientCCcam2::Action(), cCardClientCCcam::Action(), cCardClientAroureos::cCardClientAroureos(), cCardClientCamd35::cCardClientCamd35(), cCardClientCCcam::cCardClientCCcam(), cCardClientCCcam2::cCardClientCCcam2(), cCardClientCommon::cCardClientCommon(), cCardClientGbox::cCardClientGbox(), cCardClientNewCamd::cCardClientNewCamd(), cCardClientRadegast::cCardClientRadegast(), cCardClientRadegast::Login(), cCardClientNewCamd::Login(), cCardClientGbox::Login(), cCardClientCCcam2::Login(), cCardClientCCcam::Login(), cCardClientCamd35::Login(), cCardClientCommon::Login(), cCardClientAroureos::Login(), Logout(), cCardClientRadegast::ProcessECM(), cCardClientNewCamd::ProcessECM(), cCardClientGbox::ProcessECM(), cCardClientCCcam2::ProcessECM(), cCardClientCCcam::ProcessECM(), cCardClientCommon::ProcessECM(), cCardClientAroureos::ProcessECM(), RecvMsg(), and SendMsg().