summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2008-11-14 16:11:32 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2008-11-14 16:11:32 -0800
commit160d05043a4b36d519b1e0aeff540c428dac38dd (patch)
tree46d6d1b5b0032d9b0595f4622bc14fc821663dcb
parenta79dc66234f32de6fdf1d16b69129f5722f824e9 (diff)
downloadvyatta-cfg-160d05043a4b36d519b1e0aeff540c428dac38dd.tar.gz
vyatta-cfg-160d05043a4b36d519b1e0aeff540c428dac38dd.zip
Implement touch in perl
Use perl to do the touch command.
-rw-r--r--scripts/vyatta-interfaces.pl14
1 files changed, 11 insertions, 3 deletions
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl
index d382922..b60f0ba 100644
--- a/scripts/vyatta-interfaces.pl
+++ b/scripts/vyatta-interfaces.pl
@@ -37,6 +37,7 @@ use VyattaMisc;
use Getopt::Long;
use POSIX;
use NetAddr::IP;
+use Fcntl;
use strict;
use warnings;
@@ -44,7 +45,6 @@ use warnings;
my $dhcp_daemon = '/sbin/dhclient';
my $dhclient_dir = '/var/lib/dhcp3/';
-
my ($eth_update, $eth_delete, $addr, $dev, $mac, $mac_update, $op_dhclient);
GetOptions("eth-addr-update=s" => \$eth_update,
@@ -96,6 +96,14 @@ sub is_ip_duplicate {
}
}
+sub touch {
+ my $file = shift;
+ my $t = time;
+
+ sysopen (my $f, $file, O_RDWR|O_CREAT) or die "Can't touch $file";
+ close $f;
+ utime $t, $t, $file;
+}
sub dhcp_write_file {
my ($file, $data) = @_;
@@ -263,8 +271,8 @@ sub update_eth_addrs {
my ($addr, $intf) = @_;
if ($addr eq "dhcp") {
+ touch("/var/lib/dhcp3/$intf");
run_dhclient($intf);
- system ("touch /var/lib/dhcp3/$intf\;");
return;
}
my $version = is_ip_v4_or_v6($addr);
@@ -467,7 +475,7 @@ sub op_dhcp_command {
if(! -d $tmp_dhclient_dir ){
system ("mkdir $tmp_dhclient_dir\;");
}
- system ("touch $release_file\;");
+ touch($release_file);
exit 0;
}
} elsif ($op_command eq "dhcp-renew") {