cccam:hostname:port:emm/caid/mask:socket
#
# (the real) cccam client
+# 'nodeid' is your node ID (16characters). Optional, defaults to use random ID
#
# 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
+cccam2:hostname:port:emm/caid/mask:username:password[:nodeid]
bool cCardClientCCcam2::Init(const char *config)
{
cMutexLock lock(this);
- int num=0;
+ int n=0, num=0;
Logout();
+ char ni[17];
if(!ParseStdConfig(config,&num)
- || sscanf(&config[num],":%20[^:]:%63[^:]",username,password)!=2 ) return false;
+ || (n=sscanf(&config[num],":%20[^:]:%63[^:]:%16[^:]",username,password,ni))<2 ) return false;
PRINTF(L_CC_CORE,"%s: username=%s password=%s",name,username,password);
- for(unsigned int i=0; i<sizeof(nodeid); i++) nodeid[i]=rand();
+ if(n>2) {
+ const char *tmp=ni;
+ if(GetHex(tmp,nodeid,sizeof(nodeid),false)!=sizeof(nodeid)) return false;
+ }
+ else
+ for(unsigned int i=0; i<sizeof(nodeid); i++) nodeid[i]=rand();
LDUMP(L_CC_CORE,nodeid,sizeof(nodeid),"Our nodeid:");
return Immediate() ? Login() : true;
}