summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2010-12-10 18:06:39 +0100
committerFrank Schmirler <vdr@schmirler.de>2010-12-10 18:06:39 +0100
commitabf8a62fe9a056c316cff6a32df882e2b7d3ae19 (patch)
tree9fd7ada6351c703975659802844ec7c7a3b6df3d /server
parenta35675490d91a7112119eb7a52a22616f3ed45a7 (diff)
downloadvdr-plugin-streamdev-abf8a62fe9a056c316cff6a32df882e2b7d3ae19.tar.gz
vdr-plugin-streamdev-abf8a62fe9a056c316cff6a32df882e2b7d3ae19.tar.bz2
make sure that a client doesn't interrupt replaying on server's FF card
http://www.vdr-portal.de/board/thread.php?postid=948311 (reported by wtor)
Diffstat (limited to 'server')
-rw-r--r--server/connection.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/server/connection.c b/server/connection.c
index 944b2f5..7b2b9db 100644
--- a/server/connection.c
+++ b/server/connection.c
@@ -295,6 +295,7 @@ cDevice *cServerConnection::GetDevice(const cChannel *Channel, int Priority)
cDevice *device = cDevice::GetDevice(Channel, Priority, false);
if (device && device == cDevice::ActualDevice()
+ && (!device->IsPrimaryDevice() || !device->Replaying())
&& !cSuspendCtl::IsActive()
&& current != NULL
&& !TRANSPONDER(Channel, current)) {
@@ -331,6 +332,7 @@ bool cServerConnection::ProvidesChannel(const cChannel *Channel, int Priority)
cDevice *device = CheckDevice(Channel, Priority, false);
if (!device || (device == cDevice::ActualDevice()
+ && (!device->IsPrimaryDevice() || !device->Replaying())
&& !cSuspendCtl::IsActive()
&& StreamdevServerSetup.SuspendMode != smAlways
&& current != NULL
@@ -341,6 +343,7 @@ bool cServerConnection::ProvidesChannel(const cChannel *Channel, int Priority)
device = CheckDevice(Channel, Priority, false);
Attach();
if (device && device == cDevice::ActualDevice()
+ && (!device->IsPrimaryDevice() || !device->Replaying())
&& !cSuspendCtl::IsActive()
&& StreamdevServerSetup.SuspendMode != smAlways
&& current != NULL