]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/scripts/connscheduler
core76: Sort exclude file alphabetically.
[people/teissler/ipfire-2.x.git] / src / scripts / connscheduler
index 8c7f17f0f14f62ebcb4dbb4191e5d913379e90ad..bc4d4eb6562302b5fc60c2600604bf3226213e5a 100644 (file)
@@ -63,6 +63,9 @@ exit 0;
 #
 sub hangup
 {
+  # Kill connectd if running to prevent redial
+  system('/bin/killall', 'connectd');
+
   unless ( -e "${General::swroot}/red/active" )
   {
     &General::log("ConnSched already disconnected");
@@ -77,10 +80,13 @@ sub hangup
   }
 
   # now wait for active triggerfile and ppp daemon to disappear 
+  # wait maximum 60 seconds
+  my $counter = 60;
   sleep 1;
-  while ( -e "${General::swroot}/red/active" || -e '/var/run/ppp-ipfire.pid' ) 
+  while ( -e "${General::swroot}/red/active" || -e '/var/run/ppp-ipfire.pid' || $counter == 0 
   {
     sleep 1;
+    $counter--;
   }
 }
 
@@ -113,6 +119,15 @@ sub dial
 sub reconnect
 {
   &hangup() if ( -e "${General::swroot}/red/active" );
+  # now wait for active triggerfile and ppp daemon to disappear
+  # wait maximum 60 seconds
+  my $counter = 60;
+  sleep 1;
+  while ( -e "${General::swroot}/red/active" || -e '/var/run/ppp-ipfire.pid' || $counter == 0 ) 
+  {
+    sleep 1;
+    $counter--;
+  }
   &dial();
 }