From: leslie Date: Mon, 27 Sep 2010 16:19:04 +0000 (+0200) Subject: sc-nagra: fix ECM cmd resend X-Git-Tag: upstream/620~63 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=161181d347770dbab27c6e40a2a828840c218e4e;p=sasc-ng.git sc-nagra: fix ECM cmd resend --- diff --git a/systems/sc-nagra/sc-nagra.c b/systems/sc-nagra/sc-nagra.c index e26c903..609b127 100644 --- a/systems/sc-nagra/sc-nagra.c +++ b/systems/sc-nagra/sc-nagra.c @@ -669,12 +669,12 @@ bool cSmartCardNagra::Decode(const cEcmInfo *ecm, const unsigned char *data, uns memset(pkt,0,sizeof(pkt)); memcpy(pkt,data+3+2,data[4]); for(int i=1; i>=0; i--) { - if((!isN3 && !DoBlkCmd(data[3],data[4]+2,0x87,0x02,pkt)) || - ( isN3 && !DoBlkCmd(data[3]+1,data[4]+5+2,0x88,0x04,pkt)) || - !Status()) { - PRINTF(L_SC_ERROR,"ECM cmd failed%s",(i>0)?", retrying":""); - if(i==0) return false; - } + if(((!isN3 && DoBlkCmd(data[3],data[4]+2,0x87,0x02,pkt)) || + ( isN3 && DoBlkCmd(data[3]+1,data[4]+5+2,0x88,0x04,pkt))) && + Status()) + break; + PRINTF(L_SC_ERROR,"ECM cmd failed%s",(i>0)?", retrying":""); + if(i==0) return false; } cCondWait::SleepMs(10); for(int retry=0; !GetCardStatus() && retry<5; retry++) cCondWait::SleepMs(5);