Hi,
It seems that the new shutdown procedure introduced for versions 1.5.x
is (at least for me) not working as expected. The problem is that it
does not recognize correctly whether VDR was started manually or not. In
fact it thinks every time that it has been started manually. I traced
the problem to the SystemExec call in
cShutdownHandler::CallShutdownCommand where Setup.NextWakeupTime is
updated only if the SystemExec call returns 0. i changed it to accept
all values greater or equal to 0 and now Setup.NextWakeupTime gets
updated properly. Can some explain me why 0 is expected?
Here is the patch that I came up with:
--- shutdown.c.orig 2007-08-02 00:14:49.000000000 +0300
+++ shutdown.c 2007-08-02 00:15:10.000000000 +0300
@@ -126,7 +126,7 @@
time_t Delta = WakeupTime ? WakeupTime - time(NULL) : 0;
cString cmd = cString::sprintf("%s %ld %ld %d \"%s\" %d",
shutdownCommand, WakeupTime, Delta, Channel, *strescape(File, "\"$"),
UserShutdown);
isyslog("executing '%s'", *cmd);
- if (SystemExec(cmd, true) == 0)
+ if (SystemExec(cmd, true) >= 0)
Setup.NextWakeupTime = WakeupTime; // Remember this wakeup time
for comparison on reboot
}
-Petri