From: leslie Date: Thu, 2 Oct 2008 11:02:37 +0000 (+0800) Subject: viaccess: fix TPS to keep using last key X-Git-Tag: 0.9.1~17 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=3edf57dd11cbe22436ec3bc48c3d2926f1d60aa7;p=sasc-ng.git viaccess: fix TPS to keep using last key --- diff --git a/systems/viaccess/tps.c b/systems/viaccess/tps.c index 2f47747..210cfd1 100644 --- a/systems/viaccess/tps.c +++ b/systems/viaccess/tps.c @@ -611,7 +611,12 @@ const cTpsKey *cTpsKeys::GetKey(time_t t) { ListLock(false); cTpsKey *k; - for(k=First(); k; k=Next(k)) if(tTimestamp()) break; + for(k=First(); k;) { + if(tTimestamp()) break; + cTpsKey *n=Next(k); + if(!n) break; // if all keys are expired, use last one + k=n; + } ListUnlock(); return k; } @@ -672,7 +677,7 @@ void cTpsKeys::Purge(time_t now) ListLock(true); for(cTpsKey *k=First(); k;) { cTpsKey *n=Next(k); - if(k->Timestamp()Timestamp()