summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2017-05-20 13:01:34 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2017-05-20 13:01:34 +0200
commit0b9870959beb7ae6a063f73fd5fada8f1faefadb (patch)
treecc74b43431d8694df490b525e9dc79ddaff7fcb2
parent4100b47b370d10caa28d9823cd70f77a34004459 (diff)
downloadvdr-0b9870959beb7ae6a063f73fd5fada8f1faefadb.tar.gz
vdr-0b9870959beb7ae6a063f73fd5fada8f1faefadb.tar.bz2
Fixed handling remote timers
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY7
-rw-r--r--menu.c10
-rw-r--r--svdrp.c4
4 files changed, 15 insertions, 8 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index a2eeaed2..2e7bf8ae 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2829,6 +2829,8 @@ Johann Friedrichs <johann.friedrichs@web.de>
for fixing loading the setup.conf file in case a parameter contains the '#' character
for reporting that the "Resume" button in the main menu was active even if the
respective recording did not exist
+ for fixing a double deletion of a cTimer in case HandleRemoteModifications() returned
+ false
Timo Helkio <timolavi@mbnet.fi>
for reporting a hangup when replaying a TS recording with subtitles activated
diff --git a/HISTORY b/HISTORY
index 0ba94002..a38e941b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8991,7 +8991,7 @@ Video Disk Recorder Revision History
current channel is listed.
- Fixed a possible crash when pulling the CAM while decrypting a channel with MTD.
-2017-05-18: Version 2.3.5
+2017-05-20: Version 2.3.5
- CAMs are now sent a generated EIT packet that contains a single 'present event' for
the current SID, in order to avoid any parental rating dialogs.
@@ -9030,3 +9030,8 @@ Video Disk Recorder Revision History
Spingler).
- Reduced the time before a CAM is marked as known to decrypt a particular channel to
3 seconds.
+- When the connection to a peer VDR is terminated, any remote timers of that peer
+ are no longer shown on the local VDR.
+- No longer setting a new timer's remote host name if "SVDRP peering" is turned off.
+- Fixed a double deletion of a cTimer in case HandleRemoteModifications() returned
+ false (thanks to Johann Friedrichs).
diff --git a/menu.c b/menu.c
index 43ff7280..ae65f2d5 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 4.27 2017/05/17 09:15:51 kls Exp $
+ * $Id: menu.c 4.28 2017/05/20 13:00:21 kls Exp $
*/
#include "menu.h"
@@ -1328,7 +1328,7 @@ eOSState cMenuTimers::New(void)
if (HasSubMenu())
return osContinue;
cTimer *Timer = new cTimer;
- if (*Setup.SVDRPDefaultHost)
+ if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
Timer->SetRemote(Setup.SVDRPDefaultHost);
return AddSubMenu(new cMenuEditTimer(Timer, true));
}
@@ -1660,7 +1660,7 @@ eOSState cMenuWhatsOn::Record(void)
return AddSubMenu(new cMenuEditTimer(Timer));
}
cTimer *Timer = new cTimer(item->event);
- if (*Setup.SVDRPDefaultHost)
+ if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
Timer->SetRemote(Setup.SVDRPDefaultHost);
if (cTimer *t = Timers->GetTimer(Timer)) {
delete Timer;
@@ -1674,7 +1674,6 @@ eOSState cMenuWhatsOn::Record(void)
if (!HandleRemoteModifications(Timer)) {
// must add the timer before HandleRemoteModifications to get proper log messages with timer ids
Timers->Del(Timer);
- delete Timer;
}
}
if (HasSubMenu())
@@ -1944,7 +1943,7 @@ eOSState cMenuSchedule::Record(void)
return AddSubMenu(new cMenuEditTimer(Timer));
}
cTimer *Timer = new cTimer(item->event);
- if (*Setup.SVDRPDefaultHost)
+ if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
Timer->SetRemote(Setup.SVDRPDefaultHost);
if (cTimer *t = Timers->GetTimer(Timer)) {
delete Timer;
@@ -1958,7 +1957,6 @@ eOSState cMenuSchedule::Record(void)
if (!HandleRemoteModifications(Timer)) {
// must add the timer before HandleRemoteModifications to get proper log messages with timer ids
Timers->Del(Timer);
- delete Timer;
}
}
if (HasSubMenu())
diff --git a/svdrp.c b/svdrp.c
index 993150c7..f402c21a 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
- * $Id: svdrp.c 4.17 2017/04/22 11:57:31 kls Exp $
+ * $Id: svdrp.c 4.18 2017/05/18 15:51:24 kls Exp $
*/
#include "svdrp.h"
@@ -384,6 +384,8 @@ void cSVDRPClient::Close(void)
SVDRPClientPoller.Del(file, false);
file.Close();
socket.Close();
+ LOCK_TIMERS_WRITE;
+ Timers->DelRemoteTimers(serverName);
}
}