diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-04-28 11:22:59 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-04-28 11:22:59 -0700 |
commit | 0eaba8dad441707b699749f1ef80409e05897c4b (patch) | |
tree | ab8dc87c7e15dac18bf76ecd0b1ed9fb6af809e5 | |
parent | ac3a679d68fab97b0e261445a3bf926993119cdd (diff) | |
download | vyatta-cfg-0eaba8dad441707b699749f1ef80409e05897c4b.tar.gz vyatta-cfg-0eaba8dad441707b699749f1ef80409e05897c4b.zip |
DHCP should be checking config not flags
If interface is down (because of release), then renew should still
be able restart interface.
-rwxr-xr-x | scripts/vyatta-interfaces.pl | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 2310e77..25fefc9 100755 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -402,40 +402,29 @@ sub is_valid_addr { sub op_dhcp_command { my ($op_command, $intf) = @_; - if (!is_dhcp_enabled($intf)) { - print "$intf is not using DHCP to get an IP address\n"; - exit 1; - } + die "$intf is not using DHCP to get an IP address\n" + unless is_dhcp_enabled($intf); - my $flags = get_sysfs_value($intf, 'flags'); - my $hex_flags = hex($flags); - if (!($hex_flags & 0x1)) { - print "$intf is disabled. Unable to release/renew lease\n"; - exit 1; - } + die "$intf is disabled. Unable to release/renew lease\n" + if is_intf_disabled($intf); my $tmp_dhclient_dir = '/var/run/vyatta/dhclient/'; my $release_file = $tmp_dhclient_dir . 'dhclient_release_' . $intf; if ($op_command eq "dhcp-release") { - if (-e $release_file) { - print "IP address for $intf has already been released.\n"; - exit 1; - } else { - print "Releasing DHCP lease on $intf ...\n"; - stop_dhclient($intf); - mkdir ($tmp_dhclient_dir) if (! -d $tmp_dhclient_dir ); - touch ($release_file); - exit 0; - } + die "IP address for $intf has already been released.\n" + if (-e $release_file); + + print "Releasing DHCP lease on $intf ...\n"; + stop_dhclient($intf); + mkdir ($tmp_dhclient_dir) if (! -d $tmp_dhclient_dir ); + touch ($release_file); } elsif ($op_command eq "dhcp-renew") { print "Renewing DHCP lease on $intf ...\n"; run_dhclient($intf); unlink ($release_file); - exit 0; } exit 0; - } sub is_valid_name { |