diff options
-rw-r--r-- | scripts/vyatta-interfaces.pl | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 676e196..2f59bd3 100644 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -324,7 +324,7 @@ sub delete_eth_addrs { if ($addr eq "dhcp") { stop_dhclient($intf); - system("rm -f /var/lib/dhcp3/dhclient_$intf\_lease; rm -f /var/lib/dhcp3/$intf\; rm -f /var/lib/dhcp3/release_$intf\;"); + system("rm -f /var/lib/dhcp3/dhclient_$intf\_lease; rm -f /var/lib/dhcp3/$intf\; rm -f /var/run/vyatta/dhclient/dhclient_release_$intf\;"); exit 0; } my $version = is_ip_v4_or_v6($addr); @@ -468,8 +468,9 @@ sub op_dhcp_command { print "$intf is not using DHCP to get an IP address\n"; exit 1; } - - my $release_file = $dhclient_dir . 'release_' . $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"; @@ -477,17 +478,20 @@ sub op_dhcp_command { } else { print "Releasing DHCP lease on $intf ...\n"; stop_dhclient($intf); + if(! -d $tmp_dhclient_dir ){ + system ("mkdir $tmp_dhclient_dir\;"); + } system ("touch $release_file\;"); exit 0; } } elsif ($op_command eq "dhcp-renew") { - print "Renewing DHCP lease on $intf ...\n"; + print "Renewing DHCP lease on $intf ...\n"; run_dhclient($intf); system ("rm -f $release_file\;"); exit 0; } - - exit 0; + + exit 0; } |