From: <ow...@us...> - 2010-03-30 19:16:37
|
Revision: 4417 http://ipcop.svn.sourceforge.net/ipcop/?rev=4417&view=rev Author: owes Date: 2010-03-30 19:16:31 +0000 (Tue, 30 Mar 2010) Log Message: ----------- Add general functions to fetch interface. Should bring more consistency in interface filter. Modified Paths: -------------- ipcop/trunk/src/libs/general-functions.pl ipcop/trunk/src/rc.d/rc.red Modified: ipcop/trunk/src/libs/general-functions.pl =================================================================== --- ipcop/trunk/src/libs/general-functions.pl 2010-03-29 13:20:46 UTC (rev 4416) +++ ipcop/trunk/src/libs/general-functions.pl 2010-03-30 19:16:31 UTC (rev 4417) @@ -756,7 +756,7 @@ sub getredinterface { my $iface = ''; - + if (open(IFACE, "/var/ipcop/red/iface")) { $iface = <IFACE>; close IFACE; @@ -764,10 +764,43 @@ $iface =~ /([a-zA-Z0-9_\-]*)/; $iface = $1; } - + return $iface; } +# +# Get interface from a string +# +sub getinterface +{ + my $iface = shift; + + $iface =~ /([a-zA-Z0-9_\-]*)/; + $iface = $1; + + return $iface; +} + +# +# Get interface from a file +# +sub getinterfacefromfile +{ + my $iface = ''; + my $filename = shift; + + if (open(FILE, $filename)) { + $iface = <FILE>; + close FILE; + chomp($iface); + $iface =~ /([a-zA-Z0-9_\-]*)/; + $iface = $1; + } + + return $iface; +} + + sub isrunning($) { my $cmd = $_[0]; Modified: ipcop/trunk/src/rc.d/rc.red =================================================================== --- ipcop/trunk/src/rc.d/rc.red 2010-03-29 13:20:46 UTC (rev 4416) +++ ipcop/trunk/src/rc.d/rc.red 2010-03-30 19:16:31 UTC (rev 4417) @@ -253,16 +253,8 @@ } elsif ($ARGV[0] eq 'stop') { $iface = &General::getredinterface(); + my $device = &General::getinterfacefromfile("/var/ipcop/red/device"); - my $device; - if (open(FILE, "/var/ipcop/red/device")) { - $device = <FILE>; - close FILE; - chomp($device); - $device =~ /([a-zA-Z0-9_]*)/; - $device = $1; - } - unlink "/var/ipcop/red/dial-on-demand"; unlink "/var/ipcop/red/active"; unlink "/var/ipcop/red/local-ipaddress"; @@ -713,12 +705,8 @@ sub dopptpdial { my %pptpdhcpc; my $routerip = $pppsettings{'ROUTERIP'} ? $pppsettings{'ROUTERIP'} : "10.0.0.138"; - if ($pppsettings{'METHOD'} eq 'DHCP' && open(FILE, "/var/ipcop/red/device")) { - my $device = <FILE>; - close FILE; - chomp($device); - $device =~ /([a-zA-Z0-9_]*)/; - $device = $1; + if ($pppsettings{'METHOD'} eq 'DHCP' && -e "/var/ipcop/red/device") { + my $device = &General::getinterfacefromfile("/var/ipcop/red/device"); # FIXME: equivalents for dhclient ? if (&General::readhash("/var/ipcop/dhcpc/dhcpcd-$device.info", \%pptpdhcpc)) { @@ -1000,8 +988,7 @@ exit 1; } $iface = `/usr/sbin/eaglectrl -i 2>/dev/null | /usr/bin/tr -d '\012'`; - $iface =~ /([a-zA-Z0-9_]*)/; - $iface = $1; + $iface = &General::getinterface($iface); if ($pppsettings{'PROTOCOL'} eq 'RFC1483') { if (open(FILE, ">/var/ipcop/red/iface")) { print FILE $iface; close FILE; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |