From: leslie Date: Sat, 10 Oct 2009 01:15:51 +0000 (+0800) Subject: cardclient-cccam2: add version/build setting to config X-Git-Tag: upstream/620~149 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=6644eb939e55300a28a5f6bc9b74263344357b46;p=sasc-ng.git cardclient-cccam2: add version/build setting to config --- diff --git a/examples/cardclient.conf.example b/examples/cardclient.conf.example index e6db6d0..6f7f6c7 100644 --- a/examples/cardclient.conf.example +++ b/examples/cardclient.conf.example @@ -56,8 +56,12 @@ gbox:hostname:port:emm/caid/mask cccam:hostname:port:emm/caid/mask:socket # # (the real) cccam client -# 'nodeid' is your node ID (16characters). Optional, defaults to use random ID +# '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. # # 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] +cccam2:hostname:port:emm/caid/mask:username:password[:nodeid][:version/build] diff --git a/systems/cardclient/cccam2.c b/systems/cardclient/cccam2.c index 58ac4ee..0e311f5 100644 --- a/systems/cardclient/cccam2.c +++ b/systems/cardclient/cccam2.c @@ -525,7 +525,7 @@ private: cShares shares; unsigned char nodeid[8]; int shareid; - char username[21], password[64]; + char username[21], password[64], versstr[32], buildstr[32]; bool login, emmProcessing; cTimeMs lastsend; int pendingDCW, keymaskpos; @@ -713,19 +713,22 @@ bool cCardClientCCcam2::CanHandle(unsigned short SysId) bool cCardClientCCcam2::Init(const char *config) { cMutexLock lock(this); + strn0cpy(versstr,"2.0.11",sizeof(versstr)); + strn0cpy(buildstr,"2892",sizeof(buildstr)); int n=0, num=0; Logout(); char ni[17]; if(!ParseStdConfig(config,&num) - || (n=sscanf(&config[num],":%20[^:]:%63[^:]:%16[^:]",username,password,ni))<2 ) return false; + || (n=sscanf(&config[num],":%20[^:]:%63[^:]:%16[^:]:%31[^/]:%31[^:]",username,password,ni,versstr,buildstr))<2 ) return false; PRINTF(L_CC_CORE,"%s: username=%s password=%s",name,username,password); - if(n>2) { + if(n>2 && strcmp(ni,"*")) { const char *tmp=ni; if(GetHex(tmp,nodeid,sizeof(nodeid),false)!=sizeof(nodeid)) return false; } else for(unsigned int i=0; i