diff options
author | Manuel Reimer <manuel.reimer@gmx.de> | 2013-04-26 16:00:42 +0200 |
---|---|---|
committer | Manuel Reimer <manuel.reimer@gmx.de> | 2013-04-26 16:00:42 +0200 |
commit | 7366d81ece40de638add6638b53cb422dab13c1d (patch) | |
tree | 53a39075ad478bd47f97f012dfde0611d381090d | |
parent | 6b957c3d7c339d30622f67bd821a4117b97c7b36 (diff) | |
download | vdrpbd-7366d81ece40de638add6638b53cb422dab13c1d.tar.gz vdrpbd-7366d81ece40de638add6638b53cb422dab13c1d.tar.bz2 |
Made emergency reboot sequence configurable
-rwxr-xr-x | vdrpbd | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -33,9 +33,10 @@ my $PROGNAME = 'vdrpbd'; my $PIDFILE = '/var/run/vdrpbd.pid'; my $CFGFILE = '/etc/vdrpbd.conf'; my $FHPID; -my $ER_COUNT = 4; # Number of keypresses and ... -my $ER_TIME = 3; # ... timerange in seconds for emergency reboot -my %CONF; +my %CONF = ( + ER_COUNT => 4, # Number of keypresses and ... + ER_TIME => 3 # ... timerange in seconds for emergency reboot +); my $KEYQUEUE = Thread::Queue->new(); # Main code (in main thread) @@ -55,6 +56,12 @@ my $KEYQUEUE = Thread::Queue->new(); if ($CONF{USE_DBUS} && !$HAVE_DBUS) { die("DBus support requested but no Net::DBus module present!\n"); } + if ($CONF{ER_COUNT} !~ /^[0-9]+$/ || $CONF{ER_COUNT} < 2) { + die("Invalid value for ER_COUNT in $CFGFILE!\n"); + } + if ($CONF{ER_TIME} !~ /^[0-9]+$/ || $CONF{ER_TIME} < 1) { + die("Invalid value for ER_TIME in $CFGFILE!\n"); + } # Prepare environment chdir('/'); @@ -87,7 +94,8 @@ my $KEYQUEUE = Thread::Queue->new(); # Detect emergency reboot case push(@btnhist, $tv_sec); - if (@btnhist == $ER_COUNT && $tv_sec - shift(@btnhist) <= $ER_TIME) { + if (@btnhist == $CONF{ER_COUNT} && + $tv_sec - shift(@btnhist) <= $CONF{ER_TIME}) { syslog(LOG_INFO, 'Initiating user-requested emergency reboot!'); system('/sbin/shutdown', '-r', 'now'); } |