summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/vyatta-interfaces.pl16
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;
}