From: leslie Date: Sat, 23 Jan 2010 09:30:38 +0000 (+0100) Subject: cardclient-cccam2: change cardclient config line format X-Git-Tag: upstream/620~107 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=f628b8198534175d41fb6b96f78d06a66a756388;p=sasc-ng.git cardclient-cccam2: change cardclient config line format --- diff --git a/examples/cardclient.conf.example b/examples/cardclient.conf.example index 6f7f6c7..2af65c7 100644 --- a/examples/cardclient.conf.example +++ b/examples/cardclient.conf.example @@ -56,12 +56,15 @@ gbox:hostname:port:emm/caid/mask cccam:hostname:port:emm/caid/mask:socket # # (the real) cccam client -# 'nodeid' is your node ID (16 characters). Optional, defaults to use random ID -# 'version/build' is the version and build string send to the server (each max. -# 31 characters). Optional, defaults to 2.0.11/2892 -# If you want to specify version/build but you don't want to specify a node ID, -# put a * to the node ID field. +# +# The parameter field is a list of parameters seperated by ','. The individual +# parameters must be given in the form PARAMETER=VALUE. +# NODEID=<16 characters> - your static node ID. Defaults to random ID +# VERSION= - version string. Defaults to '2.0.11' +# BUILD= - build string. Defaults to '2892' +# +# parameter example: BUILD=3212,NODEID=123A567F901C34E6 # # NOTE: this is a real client. You don't need to have CCcam running on local # machine. -cccam2:hostname:port:emm/caid/mask:username:password[:nodeid][:version/build] +cccam2:hostname:port:emm/caid/mask:username:password[:param=value[,param=value]] diff --git a/systems/cardclient/cccam2.c b/systems/cardclient/cccam2.c index fbb7259..3ec3484 100644 --- a/systems/cardclient/cccam2.c +++ b/systems/cardclient/cccam2.c @@ -727,20 +727,47 @@ bool cCardClientCCcam2::CanHandle(unsigned short SysId) bool cCardClientCCcam2::Init(const char *config) { cMutexLock lock(this); + // defaults strn0cpy(versstr,"2.0.11",sizeof(versstr)); strn0cpy(buildstr,"2892",sizeof(buildstr)); + for(unsigned int i=0; i2 && strcmp(ni,"*")) { - const char *tmp=ni; - if(GetHex(tmp,nodeid,sizeof(nodeid),false)!=sizeof(nodeid)) return false; + if(n>2) { + char *save; + char *p=strtok_r(params,",",&save); + while(p) { + char *v=index(p,'='); + if(v) { + *v++=0; + if(!strcasecmp(p,"NODEID")) { + const char *v2=v; + if(GetHex(v2,nodeid,sizeof(nodeid),false)!=sizeof(nodeid)) { + PRINTF(L_CC_CORE,"NODEID parameter format error"); + return false; + } + } + else if(!strcasecmp(p,"VERSION")) + strn0cpy(versstr,v,sizeof(versstr)); + else if(!strcasecmp(p,"BUILD")) + strn0cpy(buildstr,v,sizeof(buildstr)); + else { + PRINTF(L_CC_CORE,"unknown parameter '%s'",p); + return false; + } + } + else { + PRINTF(L_CC_CORE,"bad parameter format '%s'",p); + return false; + } + p=strtok_r(0,",",&save); + } } - else - for(unsigned int i=0; i