From 69e9a07f8b5808d04207256fd4413c4eece93966 Mon Sep 17 00:00:00 2001
From: Klaus Schmidinger <vdr@tvdr.de>
Date: Sat, 15 Feb 2003 14:25:30 +0100
Subject: Resetting the CAM slot in case communication breaks down

---
 HISTORY |  1 +
 ci.c    | 14 ++++++--------
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/HISTORY b/HISTORY
index e00a0c03..2c5b4c59 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1964,3 +1964,4 @@ Video Disk Recorder Revision History
 - Fixed margin handling in cRingBufferLinear.
 - Now polling the output device in 'Transfer Mode' and retrying to put packets
   into the ring buffer.
+- Resetting the CAM slot in case communication breaks down.
diff --git a/ci.c b/ci.c
index b602219f..06a08c43 100644
--- a/ci.c
+++ b/ci.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: ci.c 1.5 2003/02/09 12:45:00 kls Exp $
+ * $Id: ci.c 1.6 2003/02/15 14:14:57 kls Exp $
  */
 
 /* XXX TODO
@@ -1453,13 +1453,11 @@ void cCiHandler::Process(void)
               }
             }
          }
-      else {
-         if (!CloseAllSessions(Slot)) {
-            if (tpl->ModuleReady(Slot)) {
-               dbgprotocol("Module ready in slot %d\n", Slot);
-               tpl->NewConnection(Slot);
-               }
-            }
+      else if (CloseAllSessions(Slot))
+         tpl->ResetSlot(Slot);
+      else if (tpl->ModuleReady(Slot)) {
+         dbgprotocol("Module ready in slot %d\n", Slot);
+         tpl->NewConnection(Slot);
          }
       }
   for (int i = 0; i < MAX_CI_SESSION; i++) {
-- 
cgit v1.2.3