summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--scripts/vyatta-dhclient-hook19
-rw-r--r--scripts/vyatta-interfaces.pl1
3 files changed, 22 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 7cde9aa..ef5aece 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,6 +4,7 @@ completiondir = /etc/bash_completion.d
initddir = /etc/init.d
defaultdir = /etc/default
etc_shell_leveldir = $(sysconfdir)/shell/level
+dhcphookdir = /etc/dhcp3/dhclient-exit-hooks.d
AM_CFLAGS = -I src -Wall
AM_YFLAGS = -d --name-prefix=yy_`basename $* .y`_
@@ -11,6 +12,7 @@ AM_LFLAGS = --prefix=yy_`basename $* .l`_ -olex.yy.c
completion_DATA = etc/bash_completion.d/20vyatta-cfg
initd_SCRIPTS = etc/init.d/vyatta-ofr
+dhcphook_SCRIPTS = scripts/vyatta-dhclient-hook
lib_LTLIBRARIES = src/libvyatta-cfg.la
src_libvyatta_cfg_la_LDFLAGS = -version-info 1:0:0
diff --git a/scripts/vyatta-dhclient-hook b/scripts/vyatta-dhclient-hook
new file mode 100644
index 0000000..cc3cb08
--- /dev/null
+++ b/scripts/vyatta-dhclient-hook
@@ -0,0 +1,19 @@
+
+# To enable this script set the following variable to "yes"
+RUN="yes"
+
+if [ "$RUN" = "yes" ]; then
+ LOG=/var/lib/dhcp3/dhclient_"$interface"_lease
+ echo `date` > $LOG
+
+ for i in reason interface new_expiry new_dhcp_lease_time medium \
+ alias_ip_address new_ip_address new_broadcast_address \
+ new_subnet_mask new_domain_name new_network_number \
+ new_domain_name_servers new_routers new_static_routes \
+ new_dhcp_server_identifier new_dhcp_message_type \
+ old_ip_address old_subnet_mask old_domain_name \
+ old_domain_name_servers old_routers \
+ old_static_routes; do
+ echo $i=\'${!i}\' >> $LOG
+ done
+fi
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl
index dde54c7..1f13e20 100644
--- a/scripts/vyatta-interfaces.pl
+++ b/scripts/vyatta-interfaces.pl
@@ -277,6 +277,7 @@ sub delete_eth_addrs {
if ($addr eq "dhcp") {
dhcp_release_addr($intf);
update_dhcp_client();
+ system("rm -f /var/lib/dhcp3/dhclient_$intf\_lease");
return;
}
my $version = is_ip_v4_or_v6($addr);