Fixed connscheduler reconnecting even if not pppoe.

The reconnect should only get active if RED_TYPE is set to pppoe,
otherwise is should break and log. Added info to config that this
reconnect only works forWe have to ensure that reconnect is
not called by any static or dynamic RED_TYPE.
This commit is contained in:
Christian Schmidt
2010-01-16 13:08:01 +01:00
parent dfc4bc56a7
commit b68117f5eb
3 changed files with 39 additions and 2 deletions

View File

@@ -1 +1 @@
on,reconnect,,05:00,weekdays,,Mon Tue Wed Thu Fri Sat Sun ,,MorningReconnect
on,reconnect,,05:00,weekdays,,Mon Tue Wed Thu Fri Sat Sun ,,MorningReconnect for pppoe

View File

@@ -13,3 +13,5 @@ lib/modules/2.6.27.42-ipfire-xen/kernel/net/ieee80211/ieee80211_crypt_tkip.off
lib/modules/2.6.27.42-ipfire-xen/kernel/net/ieee80211/ieee80211_crypt_wep.off
srv/web/ipfire/cgi-bin/outgoingfw.cgi
var/ipfire/outgoing/bin/outgoingfw.pl
usr/local/bin/connscheduler
var/ipfire/connscheduler/connscheduler.conf

View File

@@ -21,6 +21,9 @@ $weekday = ($weekday + 6) % 7;
# get the closest thing possible
$minute = int($minute / 5) * 5;
my $swroot = "/var/ipfire";
my %ethernetsettings;
&readhash("${swroot}/ethernet/settings", \%ethernetsettings);
if ( $ARGV[0] eq 'hangup' )
{
@@ -117,7 +120,11 @@ sub dial
sub reconnect
{
{
if ( $ethernetsettings{'RED_TYPE'} ne 'PPPOE' ){
&General::log("ConnSched skipped because not running pppoe");
exit;
}
&hangup() if ( -e "${General::swroot}/red/active" );
# now wait for active triggerfile and ppp daemon to disappear
# wait maximum 60 seconds
@@ -242,3 +249,31 @@ sub timer
}
}
}
sub readhash
{
my $filename = $_[0];
my $hash = $_[1];
my ($var, $val);
if (-e $filename)
{
open(FILE, $filename) or die "Unable to read file $filename";
while (<FILE>)
{
chop;
($var, $val) = split /=/, $_, 2;
if ($var)
{
$val =~ s/^\'//g;
$val =~ s/\'$//g;
# Untaint variables read from hash
$var =~ /([A-Za-z0-9_-]*)/; $var = $1;
$val =~ /([\w\W]*)/; $val = $1;
$hash->{$var} = $val;
}
}
close FILE;
}
}