1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

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 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 for reporting that the "Resume" button in the main menu was active even if the
respective recording did not exist respective recording did not exist
for fixing a double deletion of a cTimer in case HandleRemoteModifications() returned
false
Timo Helkio <timolavi@mbnet.fi> Timo Helkio <timolavi@mbnet.fi>
for reporting a hangup when replaying a TS recording with subtitles activated 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. current channel is listed.
- Fixed a possible crash when pulling the CAM while decrypting a channel with MTD. - 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 - 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. the current SID, in order to avoid any parental rating dialogs.
@ -9030,3 +9030,8 @@ Video Disk Recorder Revision History
Spingler). Spingler).
- Reduced the time before a CAM is marked as known to decrypt a particular channel to - Reduced the time before a CAM is marked as known to decrypt a particular channel to
3 seconds. 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 * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "menu.h"
@ -1328,7 +1328,7 @@ eOSState cMenuTimers::New(void)
if (HasSubMenu()) if (HasSubMenu())
return osContinue; return osContinue;
cTimer *Timer = new cTimer; cTimer *Timer = new cTimer;
if (*Setup.SVDRPDefaultHost) if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
Timer->SetRemote(Setup.SVDRPDefaultHost); Timer->SetRemote(Setup.SVDRPDefaultHost);
return AddSubMenu(new cMenuEditTimer(Timer, true)); return AddSubMenu(new cMenuEditTimer(Timer, true));
} }
@ -1660,7 +1660,7 @@ eOSState cMenuWhatsOn::Record(void)
return AddSubMenu(new cMenuEditTimer(Timer)); return AddSubMenu(new cMenuEditTimer(Timer));
} }
cTimer *Timer = new cTimer(item->event); cTimer *Timer = new cTimer(item->event);
if (*Setup.SVDRPDefaultHost) if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
Timer->SetRemote(Setup.SVDRPDefaultHost); Timer->SetRemote(Setup.SVDRPDefaultHost);
if (cTimer *t = Timers->GetTimer(Timer)) { if (cTimer *t = Timers->GetTimer(Timer)) {
delete Timer; delete Timer;
@ -1674,7 +1674,6 @@ eOSState cMenuWhatsOn::Record(void)
if (!HandleRemoteModifications(Timer)) { if (!HandleRemoteModifications(Timer)) {
// must add the timer before HandleRemoteModifications to get proper log messages with timer ids // must add the timer before HandleRemoteModifications to get proper log messages with timer ids
Timers->Del(Timer); Timers->Del(Timer);
delete Timer;
} }
} }
if (HasSubMenu()) if (HasSubMenu())
@ -1944,7 +1943,7 @@ eOSState cMenuSchedule::Record(void)
return AddSubMenu(new cMenuEditTimer(Timer)); return AddSubMenu(new cMenuEditTimer(Timer));
} }
cTimer *Timer = new cTimer(item->event); cTimer *Timer = new cTimer(item->event);
if (*Setup.SVDRPDefaultHost) if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
Timer->SetRemote(Setup.SVDRPDefaultHost); Timer->SetRemote(Setup.SVDRPDefaultHost);
if (cTimer *t = Timers->GetTimer(Timer)) { if (cTimer *t = Timers->GetTimer(Timer)) {
delete Timer; delete Timer;
@ -1958,7 +1957,6 @@ eOSState cMenuSchedule::Record(void)
if (!HandleRemoteModifications(Timer)) { if (!HandleRemoteModifications(Timer)) {
// must add the timer before HandleRemoteModifications to get proper log messages with timer ids // must add the timer before HandleRemoteModifications to get proper log messages with timer ids
Timers->Del(Timer); Timers->Del(Timer);
delete Timer;
} }
} }
if (HasSubMenu()) if (HasSubMenu())

View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured * and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection. * 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" #include "svdrp.h"
@ -384,6 +384,8 @@ void cSVDRPClient::Close(void)
SVDRPClientPoller.Del(file, false); SVDRPClientPoller.Del(file, false);
file.Close(); file.Close();
socket.Close(); socket.Close();
LOCK_TIMERS_WRITE;
Timers->DelRemoteTimers(serverName);
} }
} }