mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Implemented a check to see whether the system time is running linearly
This commit is contained in:
parent
9f1046221d
commit
53364f9248
1
HISTORY
1
HISTORY
@ -780,3 +780,4 @@ Video Disk Recorder Revision History
|
|||||||
next program start.
|
next program start.
|
||||||
- New command line option '-r' to define a command that gets called before and
|
- New command line option '-r' to define a command that gets called before and
|
||||||
after each recording (see INSTALL for details).
|
after each recording (see INSTALL for details).
|
||||||
|
- Implemented a check to see whether the system time is running linearly.
|
||||||
|
11
vdr.c
11
vdr.c
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
* The project's page is at http://www.cadsoft.de/people/kls/vdr
|
* The project's page is at http://www.cadsoft.de/people/kls/vdr
|
||||||
*
|
*
|
||||||
* $Id: vdr.c 1.75 2001/09/22 14:05:40 kls Exp $
|
* $Id: vdr.c 1.76 2001/09/23 09:58:36 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
@ -310,6 +310,7 @@ int main(int argc, char *argv[])
|
|||||||
int LastChannel = -1;
|
int LastChannel = -1;
|
||||||
int PreviousChannel = cDvbApi::CurrentChannel();
|
int PreviousChannel = cDvbApi::CurrentChannel();
|
||||||
time_t LastActivity = 0;
|
time_t LastActivity = 0;
|
||||||
|
time_t LinearTime = time(NULL);
|
||||||
int MaxLatencyTime = 0;
|
int MaxLatencyTime = 0;
|
||||||
bool ForceShutdown = false;
|
bool ForceShutdown = false;
|
||||||
|
|
||||||
@ -319,6 +320,14 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (!Interrupted) {
|
while (!Interrupted) {
|
||||||
|
// Test if we are running in the Einstein continuum:
|
||||||
|
time_t Now = time(NULL);
|
||||||
|
time_t LinearDelta = Now - LinearTime;
|
||||||
|
if (LinearDelta) {
|
||||||
|
if (LinearDelta < 0 || LinearDelta > 300) // assuming nothing will block for more than 5 minutes
|
||||||
|
esyslog(LOG_ERR, "ERROR: time warp detected (%d seconds)", LinearDelta);
|
||||||
|
LinearTime = Now;
|
||||||
|
}
|
||||||
// Handle emergency exits:
|
// Handle emergency exits:
|
||||||
if (cThread::EmergencyExit()) {
|
if (cThread::EmergencyExit()) {
|
||||||
esyslog(LOG_ERR, "emergency exit requested - shutting down");
|
esyslog(LOG_ERR, "emergency exit requested - shutting down");
|
||||||
|
Loading…
Reference in New Issue
Block a user