]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/scripts/connscheduler
Fixed connscheduler reconnecting even if not pppoe.
[people/pmueller/ipfire-2.x.git] / src / scripts / connscheduler
index bc4d4eb6562302b5fc60c2600604bf3226213e5a..ceb411601e55efbfb4f2a7fe2a11742b8917dbe6 100644 (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;
+       }
+}
\ No newline at end of file