Fixed handling remote timers

This commit is contained in:
Klaus Schmidinger 2017-05-20 13:01:34 +02:00
parent 4100b47b37
commit 0b9870959b
4 changed files with 15 additions and 8 deletions

View File

@ -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

View File

@ -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).

10
menu.c
View File

@ -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())

View File

@ -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);
}
}