From 3edf57dd11cbe22436ec3bc48c3d2926f1d60aa7 Mon Sep 17 00:00:00 2001 From: leslie Date: Thu, 2 Oct 2008 19:02:37 +0800 Subject: [PATCH] viaccess: fix TPS to keep using last key --- systems/viaccess/tps.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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()