summaryrefslogtreecommitdiff
path: root/server/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/connection.c')
-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