From 6be4dd24043dc331a2ffda3b40a7cf150d1f8f0a Mon Sep 17 00:00:00 2001 From: maniacikarus Date: Fri, 18 May 2007 16:48:08 +0000 Subject: [PATCH] Config types auf ist Zustand gebogen ... hoffentlich ... header.pl von doppelten funktionen befreit die schon in der genereal stehen git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@562 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- config/cfgroot/header.pl | 518 +------------------ html/html/themes/ipfire/include/functions.pl | 4 +- html/html/themes/maniac/include/functions.pl | 4 +- src/initscripts/init.d/network | 14 +- 4 files changed, 21 insertions(+), 519 deletions(-) diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 1dc4097516..0d775f0e18 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -53,8 +53,8 @@ if ($ENV{'SERVER_ADDR'} && $ENV{'HTTPS'} ne 'on') { } ### Initialize environment -&readhash("${swroot}/main/settings", \%settings); -&readhash("${swroot}/ethernet/settings", \%ethsettings); +&General::readhash("${swroot}/main/settings", \%settings); +&General::readhash("${swroot}/ethernet/settings", \%ethsettings); $language = $settings{'LANGUAGE'}; $hostname = $settings{'HOSTNAME'}; $hostnameintitle = 0; @@ -101,21 +101,21 @@ require "${swroot}/langs/${language}.pl"; eval `/bin/cat /srv/web/ipfire/html/themes/$settings{'THEME'}/include/functions.pl`; sub orange_used () { - if ($ethsettings{'CONFIG_TYPE'} =~ /^[1357]$/) { + if ($ethsettings{'CONFIG_TYPE'} =~ /^[24]$/) { return 1; } return 0; } sub blue_used () { - if ($ethsettings{'CONFIG_TYPE'} =~ /^[4567]$/) { + if ($ethsettings{'CONFIG_TYPE'} =~ /^[34]$/) { return 1; } return 0; } sub is_modem { - if ($ethsettings{'CONFIG_TYPE'} =~ /^[0145]$/) { + if ($ethsettings{'CONFIG_TYPE'} =~ /^[0]$/) { return 1; } return 0; @@ -154,7 +154,7 @@ sub genmenu { if (! blue_used()) { $menu->{'05.firewall'}{'subMenu'}->{'30.wireless'}{'enabled'} = 0; } - if ( $ethsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $ethsettings{'RED_TYPE'} eq 'STATIC' ) { + if ( $ethsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $ethsettings{'RED_TYPE'} eq 'STATIC' ) { $menu->{'03.network'}{'subMenu'}->{'70.aliases'}{'enabled'} = 1; } } @@ -253,56 +253,6 @@ sub gettitle($) { return ''; } -sub writehash -{ - my $filename = $_[0]; - my $hash = $_[1]; - - # write cgi vars to the file. - open(FILE, ">${filename}") or die "Unable to write file $filename"; - flock FILE, 2; - foreach $var (keys %$hash) - { - $val = $hash->{$var}; - # Darren Critchley Jan 17, 2003 added the following because when submitting with a graphic, the x and y - # location of the mouse are submitted as well, this was being written to the settings file causing - # some serious grief! This skips the variable.x and variable.y - if (!($var =~ /(.x|.y)$/)) { - if ($val =~ / /) { - $val = "\'$val\'"; } - if (!($var =~ /^ACTION/)) { - print FILE "${var}=${val}\n"; } - } - } - close FILE; -} - -sub readhash -{ - my $filename = $_[0]; - my $hash = $_[1]; - my ($var, $val); - - open(FILE, $filename) or die "Unable to read file $filename"; - - while () - { - 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; -} - sub getcgihash { my ($hash, $params) = @_; my $cgi = CGI->new (); @@ -336,235 +286,6 @@ sub getcgihash { return; } -sub log -{ - my $logmessage = $_[0]; - $logmessage =~ /([\w\W]*)/; - $logmessage = $1; - system('/usr/bin/logger', '-t', 'ipfire', $logmessage); -} - -sub age -{ - my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, - $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0]; - my $now = time; - - my $totalsecs = $now - $mtime; - my $days = int($totalsecs / 86400); - my $totalhours = int($totalsecs / 3600); - my $hours = $totalhours % 24; - my $totalmins = int($totalsecs / 60); - my $mins = $totalmins % 60; - my $secs = $totalsecs % 60; - - return "${days}d ${hours}h ${mins}m ${secs}s"; -} - -sub validip -{ - my $ip = $_[0]; - - if (!($ip =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)) { - return 0; } - else - { - @octets = ($1, $2, $3, $4); - foreach $_ (@octets) - { - if (/^0./) { - return 0; } - if ($_ < 0 || $_ > 255) { - return 0; } - } - return 1; - } -} - -sub validmask -{ - my $mask = $_[0]; - - # secord part an ip? - if (&validip($mask)) { - return 1; } - # second part a number? - if (/^0/) { - return 0; } - if (!($mask =~ /^\d+$/)) { - return 0; } - if ($mask >= 0 && $mask <= 32) { - return 1; } - return 0; -} - -sub validipormask -{ - my $ipormask = $_[0]; - - # see if it is a IP only. - if (&validip($ipormask)) { - return 1; } - # split it into number and mask. - if (!($ipormask =~ /^(.*?)\/(.*?)$/)) { - return 0; } - $ip = $1; - $mask = $2; - # first part not a ip? - if (!(&validip($ip))) { - return 0; } - return &validmask($mask); -} - -sub validipandmask -{ - my $ipandmask = $_[0]; - - # split it into number and mask. - if (!($ipandmask =~ /^(.*?)\/(.*?)$/)) { - return 0; } - $ip = $1; - $mask = $2; - # first part not a ip? - if (!(&validip($ip))) { - return 0; } - return &validmask($mask); -} - -sub validport -{ - $_ = $_[0]; - - if (!/^\d+$/) { - return 0; } - if (/^0./) { - return 0; } - if ($_ >= 1 && $_ <= 65535) { - return 1; } - return 0; -} - -sub validmac -{ - my $checkmac = $_[0]; - my $ot = '[0-9a-f]{2}'; # 2 Hex digits (one octet) - if ($checkmac !~ /^$ot:$ot:$ot:$ot:$ot:$ot$/i) - { - return 0; - } - return 1; -} - -sub validhostname -{ - # Checks a hostname against RFC1035 - my $hostname = $_[0]; - - # Each part should be at least two characters in length - # but no more than 63 characters - if (length ($hostname) < 2 || length ($hostname) > 63) { - return 0;} - # Only valid characters are a-z, A-Z, 0-9 and - - if ($hostname !~ /^[a-zA-Z0-9-]*$/) { - return 0;} - # First character can only be a letter or a digit - if (substr ($hostname, 0, 1) !~ /^[a-zA-Z0-9]*$/) { - return 0;} - # Last character can only be a letter or a digit - if (substr ($hostname, -1, 1) !~ /^[a-zA-Z0-9]*$/) { - return 0;} - return 1; -} - -sub validdomainname -{ - # Checks a domain name against RFC1035 - my $domainname = $_[0]; - my @parts = split (/\./, $domainname); # Split hostname at the '.' - - foreach $part (@parts) { - # Each part should be at least two characters in length - # but no more than 63 characters - if (length ($part) < 2 || length ($part) > 63) { - return 0;} - # Only valid characters are a-z, A-Z, 0-9 and - - if ($part !~ /^[a-zA-Z0-9-]*$/) { - return 0;} - # First character can only be a letter or a digit - if (substr ($part, 0, 1) !~ /^[a-zA-Z0-9]*$/) { - return 0;} - # Last character can only be a letter or a digit - if (substr ($part, -1, 1) !~ /^[a-zA-Z0-9]*$/) { - return 0;} - } - return 1; -} - -sub validfqdn -{ - # Checks a fully qualified domain name against RFC1035 - my $fqdn = $_[0]; - my @parts = split (/\./, $fqdn); # Split hostname at the '.' - if (scalar(@parts) < 2) { # At least two parts should - return 0;} # exist in a FQDN - # (i.e. hostname.domain) - foreach $part (@parts) { - # Each part should be at least two characters in length - # but no more than 63 characters - if (length ($part) < 2 || length ($part) > 63) { - return 0;} - # Only valid characters are a-z, A-Z, 0-9 and - - if ($part !~ /^[a-zA-Z0-9-]*$/) { - return 0;} - # First character can only be a letter or a digit - if (substr ($part, 0, 1) !~ /^[a-zA-Z0-9]*$/) { - return 0;} - # Last character can only be a letter or a digit - if (substr ($part, -1, 1) !~ /^[a-zA-Z0-9]*$/) { - return 0;} - } - return 1; -} - -sub validportrange # used to check a port range -{ - my $port = $_[0]; # port values - $port =~ tr/-/:/; # replace all - with colons just in case someone used - - my $srcdst = $_[1]; # is it a source or destination port - - if (!($port =~ /^(\d+)\:(\d+)$/)) { - - if (!(&validport($port))) { - if ($srcdst eq 'src'){ - return $tr{'source port numbers'}; - } else { - return $tr{'destination port numbers'}; - } - } - } - else - { - @ports = ($1, $2); - if ($1 >= $2){ - if ($srcdst eq 'src'){ - return $tr{'bad source range'}; - } else { - return $tr{'bad destination range'}; - } - } - foreach $_ (@ports) - { - if (!(&validport($_))) { - if ($srcdst eq 'src'){ - return $tr{'source port numbers'}; - } else { - return $tr{'destination port numbers'}; - } - } - } - return; - } -} # Test if IP is within a subnet # Call: IpInSubnet (Addr, Subnet, Subnet Mask) @@ -581,63 +302,6 @@ sub IpInSubnet return (($ip >= $start) && ($ip <= $end)); } -sub validemail { - my $mail = shift; - return 0 if ( $mail !~ /^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/ ); - return 0 if ( $mail =~ /^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/); - return 0 if ( $mail !~ /([0-9a-zA-Z]{1})\@./ ); - return 0 if ( $mail !~ /.\@([0-9a-zA-Z]{1})/ ); - return 0 if ( $mail =~ /.\.\-.|.\-\..|.\.\..|.\-\-./g ); - return 0 if ( $mail =~ /.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./g ); - return 0 if ( $mail !~ /\.([a-zA-Z]{2,3})$/ ); - return 1; -} - -sub readhasharray { - my ($filename, $hash) = @_; - - open(FILE, $filename) or die "Unable to read file $filename"; - - while () { - my ($key, $rest, @temp); - chomp; - ($key, $rest) = split (/,/, $_, 2); - if ($key =~ /^[0-9]+$/ && $rest) { - @temp = split (/,/, $rest); - $hash->{$key} = \@temp; - } - } - close FILE; - return; -} - -sub writehasharray { - my ($filename, $hash) = @_; - my ($key, @temp); - - open(FILE, ">$filename") or die "Unable to write to file $filename"; - - foreach $key (keys %$hash) { - if ( $hash->{$key} ) { - print FILE "$key"; - foreach $i (0 .. $#{$hash->{$key}}) { - print FILE ",$hash->{$key}[$i]"; - } - } - print FILE "\n"; - } - close FILE; - return; -} - -sub findhasharraykey { - foreach my $i (1 .. 1000000) { - if ( ! exists $_[0]{$i}) { - return $i; - } - } -} - sub cleanhtml { my $outstring =$_[0]; @@ -661,7 +325,7 @@ sub connectionstatus &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); my $profileused=''; - if ( ! ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) { + if ( ! ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) { $profileused="- $pppsettings{'PROFILENAME'}"; } @@ -676,7 +340,7 @@ sub connectionstatus } my ($timestr, $connstate); - if ($netsettings{'CONFIG_TYPE'} =~ /^(0|1|4|5)$/ && $pppsettings{'TYPE'} =~ /^isdn/) { + if ($netsettings{'CONFIG_TYPE'} =~ /^(0|1|2|3|4)$/ && $pppsettings{'TYPE'} =~ /^isdn/) { # Count ISDN channels my ($idmap, $chmap, $drmap, $usage, $flags, $phone); my @phonenumbers; @@ -771,104 +435,10 @@ sub connectionstatus return $connstate; } -sub srtarray -# Darren Critchley - darrenc@telus.net - (c) 2003 -# &srtarray(SortOrder, AlphaNumeric, SortDirection, ArrayToBeSorted) -# This subroutine will take the following parameters: -# ColumnNumber = the column which you want to sort on, starts at 1 -# AlphaNumberic = a or n (lowercase) defines whether the sort should be alpha or numberic -# SortDirection = asc or dsc (lowercase) Ascending or Descending sort -# ArrayToBeSorted = the array that wants sorting -# -# Returns an array that is sorted to your specs -# -# If SortOrder is greater than the elements in array, then it defaults to the first element -# -{ - my ($colno, $alpnum, $srtdir, @tobesorted) = @_; - my @tmparray; - my @srtedarray; - my $line; - my $newline; - my $ttlitems = scalar @tobesorted; # want to know the number of rows in the passed array - if ($ttlitems < 1){ # if no items, don't waste our time lets leave - return (@tobesorted); - } - my @tmp = split(/\,/,$tobesorted[0]); - $ttlitems = scalar @tmp; # this should be the number of elements in each row of the passed in array - - # Darren Critchley - validate parameters - if ($colno > $ttlitems){$colno = '1';} - $colno--; # remove one from colno to deal with arrays starting at 0 - if($colno < 0){$colno = '0';} - if ($alpnum ne '') { $alpnum = lc($alpnum); } else { $alpnum = 'a'; } - if ($srtdir ne '') { $srtdir = lc($srtdir); } else { $srtdir = 'src'; } - - foreach $line (@tobesorted) - { - chomp($line); - if ($line ne '') { - my @temp = split(/\,/,$line); - # Darren Critchley - juggle the fields so that the one we want to sort on is first - my $tmpholder = $temp[0]; - $temp[0] = $temp[$colno]; - $temp[$colno] = $tmpholder; - $newline = ""; - for ($ctr=0; $ctr < $ttlitems ; $ctr++) { - $newline=$newline . $temp[$ctr] . ","; - } - chop($newline); - push(@tmparray,$newline); - } - } - if ($alpnum eq 'n') { - @tmparray = sort {$a <=> $b} @tmparray; - } else { - @tmparray = (sort @tmparray); - } - foreach $line (@tmparray) - { - chomp($line); - if ($line ne '') { - my @temp = split(/\,/,$line); - my $tmpholder = $temp[0]; - $temp[0] = $temp[$colno]; - $temp[$colno] = $tmpholder; - $newline = ""; - for ($ctr=0; $ctr < $ttlitems ; $ctr++){ - $newline=$newline . $temp[$ctr] . ","; - } - chop($newline); - push(@srtedarray,$newline); - } - } - - if ($srtdir eq 'dsc') { - @tmparray = reverse(@srtedarray); - return (@tmparray); - } else { - return (@srtedarray); - } -} - -sub speedtouchversion -{ - if (-f "/proc/bus/usb/devices") - { - $speedtouch=`/bin/cat /proc/bus/usb/devices | /bin/grep 'Vendor=06b9 ProdID=4061' | /usr/bin/cut -d ' ' -f6`; - if ($speedtouch eq '') { - $speedtouch= $tr{'connect the modem'}; - } - } else { - $speedtouch='USB '.$tr{'not running'}; - } - return $speedtouch -} - sub CheckSortOrder { #Sorting of allocated leases if ($ENV{'QUERY_STRING'} =~ /^IPADDR|^ETHER|^HOSTNAME|^ENDTIME/ ) { - my $newsort=$ENV{'QUERY_STRING'}; + my $newsort=$ENV{'QUERY_STRING'}; &readhash("${swroot}/dhcp/settings", \%dhcpsettings); $act=$dhcpsettings{'SORT_LEASELIST'}; #Reverse actual ? @@ -878,7 +448,7 @@ sub CheckSortOrder { }; $dhcpsettings{'SORT_LEASELIST'}=$newsort; - &writehash("${swroot}/dhcp/settings", \%dhcpsettings); + &writehash("${swroot}/dhcp/settings", \%dhcpsettings); $dhcpsettings{'ACTION'} = 'SORT'; # avoid the next test "First lauch" } @@ -1010,71 +580,3 @@ sub leasesort { } } } - -sub get_uplinks() { - my @uplinks = (); - opendir(DIR, "${swroot}/uplinks/") || return \@uplinks; - foreach my $dir (readdir(DIR)) { - next if ($dir =~ /^\./); - next if (-f "${swroot}/uplinks/$dir"); - push(@uplinks, $dir); - } - closedir(DIR); - return \@uplinks; -} - -sub get_iface($) { - my $filename = shift; - chomp($filename); - open (F, $filename) || return ""; - my $iface = ; - close(F); - chomp($iface); - return $iface; -} - -sub get_red_ifaces_by_type($) { - my $type=shift; - my @gottypeiface = (); - my @gottypeuplink = (); - my @gottype = (); - - my $ref=get_uplinks(); - my @uplinks=@$ref; - my %set = (); - foreach my $link (@uplinks) { - eval { - &readhash("${swroot}/uplinks/$link/settings", \%set); - }; - push(@gottype, $link); - - my $iface = $set{'RED_DEV'}; - if (!$iface) { - $iface = get_iface("${swroot}/uplinks/$link/interface"); - } - next if (!$iface); - - if ($set{'RED_TYPE'} eq $type) { - push(@gottypeiface, $iface); - push(@gottypeuplink, $link); - } - } - return (\@gottypeiface, \@gottypeuplink, \@gottype); -} - -sub get_red_ifaces() { - return `cat ${swroot}/uplinks/*/interface 2>/dev/null`; -} - -sub get_zone_devices($) { - my $bridge = shift; - my @ifaces = (); - open (FILE, "${swroot}/ethernet/$bridge") || return ""; - foreach my $line () { - chomp($line); - next if (!$line); - push(@ifaces, $line); - } - close(FILE); - return \@ifaces; -} diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index 76c85ff112..c83897e0e0 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -113,7 +113,7 @@ sub openpage { my $extrahead = shift; @URI=split ('\?', $ENV{'REQUEST_URI'} ); - &readhash("${swroot}/main/settings", \%settings); + &General::readhash("${swroot}/main/settings", \%settings); &genmenu(); my $h2 = gettitle($menu); @@ -251,7 +251,7 @@ sub openpagewithoutmenu { my $extrahead = shift; @URI=split ('\?', $ENV{'REQUEST_URI'} ); - &readhash("${swroot}/main/settings", \%settings); + &General::readhash("${swroot}/main/settings", \%settings); &genmenu(); my $h2 = gettitle($menu); diff --git a/html/html/themes/maniac/include/functions.pl b/html/html/themes/maniac/include/functions.pl index 262bdc2efc..730105454f 100644 --- a/html/html/themes/maniac/include/functions.pl +++ b/html/html/themes/maniac/include/functions.pl @@ -113,7 +113,7 @@ sub openpage { my $extrahead = shift; @URI=split ('\?', $ENV{'REQUEST_URI'} ); - &readhash("${swroot}/main/settings", \%settings); + &General::readhash("${swroot}/main/settings", \%settings); &genmenu(); my $h2 = gettitle($menu); @@ -199,7 +199,7 @@ sub openpagewithoutmenu { my $extrahead = shift; @URI=split ('\?', $ENV{'REQUEST_URI'} ); - &readhash("${swroot}/main/settings", \%settings); + &General::readhash("${swroot}/main/settings", \%settings); &genmenu(); my $h2 = gettitle($menu); diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index c348c5de66..a0d40a6d37 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -73,7 +73,7 @@ case "${DO}" in boot_mesg "Setting IPFire DMZ pinholes" /usr/local/bin/setdmzholes; evaluate_retval - if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then boot_mesg "Setting up wireless firewall rules" /usr/local/bin/restartwireless; evaluate_retval fi @@ -96,21 +96,21 @@ case "${DO}" in # BLUE if [ "$blue" == "1" ]; then - if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then name=blue /etc/rc.d/init.d/net/ifup fi fi # ORANGE if [ "$orange" == "1" ]; then - if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "4" ]; then name=orange /etc/rc.d/init.d/net/ifup fi fi # RED if [ "$red" == "1" ]; then - if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then # Remove possible leftover files rm -f /var/ipfire/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf} if [ "$AUTOCONNECT" == "off" ]; then @@ -131,21 +131,21 @@ case "${DO}" in # BLUE if [ "$blue" == "1" ]; then - if [ "$CONFIG_TYPE" = "4" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then name=blue /etc/rc.d/init.d/net/ifdown fi fi # ORANGE if [ "$orange" == "1" ]; then - if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "5" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "4" ]; then name=orange /etc/rc.d/init.d/net/ifdown fi fi # RED if [ "$red" == "1" ]; then - if [ "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "6" -o "$CONFIG_TYPE" = "7" ]; then + if [ "$CONFIG_TYPE" = "1" -o "$CONFIG_TYPE" = "2" -o "$CONFIG_TYPE" = "3" -o "$CONFIG_TYPE" = "4" ]; then name=red /etc/rc.d/init.d/net/ifdown fi fi -- 2.39.2