diff options
-rw-r--r-- | Makefile.am | 5 | ||||
-rwxr-xr-x | scripts/netplug/linkdown/dhclient | 64 | ||||
-rwxr-xr-x | scripts/netplug/linkup/dhclient | 63 |
3 files changed, 132 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index a018961f..340f905f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,11 +4,16 @@ libudevdir = /lib/udev etcudevdir = /etc/udev bin_sudo_usersdir = $(bindir)/sudo-users curverdir = $(sysconfdir)/config-migrate/current +netplugupdir = /etc/netplug/linkup.d +netplugdowndir = /etc/netplug/linkdown.d bin_SCRIPTS = sbin_SCRIPTS = sysconf_DATA = +netplugup_SCRIPTS = scripts/netplug/linkup/dhclient +netplugdown_SCRIPTS = scripts/netplug/linkdown/dhclient + bin_SCRIPTS += scripts/progress-indicator bin_SCRIPTS += scripts/vyatta-functions diff --git a/scripts/netplug/linkdown/dhclient b/scripts/netplug/linkdown/dhclient new file mode 100755 index 00000000..78737b54 --- /dev/null +++ b/scripts/netplug/linkdown/dhclient @@ -0,0 +1,64 @@ +#!/usr/bin/perl +# +# Module: dhclient +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Mohit Mehta +# Date: November 2008 +# Description: Script to release lease on link down +# +# **** End License **** +# + +use lib "/opt/vyatta/share/perl5/"; +use VyattaConfig; +use VyattaMisc; + +use strict; +use warnings; + +sub stop_dhclient { + my $intf = shift; + my $dhcp_daemon = '/sbin/dhclient'; + my ($intf_config_file, $intf_process_id_file, $intf_leases_file) = VyattaMisc::generate_dhclient_intf_files($intf); + my $release_cmd = "$dhcp_daemon -q -cf $intf_config_file -pf $intf_process_id_file -lf $intf_leases_file -r $intf 2> /dev/null"; + system ($release_cmd); +} + + +# +# main +# + +my $dev=shift; + +# only do this if interface is configured to use dhcp for getting IP address +if (VyattaMisc::is_dhcp_enabled($dev, "outside_cli")) { + # do a dhcp lease release for interface + stop_dhclient($dev); +} + +exit 0; + +# end of file + diff --git a/scripts/netplug/linkup/dhclient b/scripts/netplug/linkup/dhclient new file mode 100755 index 00000000..8a2d39a0 --- /dev/null +++ b/scripts/netplug/linkup/dhclient @@ -0,0 +1,63 @@ +#!/usr/bin/perl +# +# Module: dhclient +# +# **** License **** +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# A copy of the GNU General Public License is available as +# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution +# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. +# You can also obtain it by writing to the Free Software Foundation, +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Mohit Mehta +# Date: November 2008 +# Description: Script to renew lease on link up +# +# **** End License **** +# + +use lib "/opt/vyatta/share/perl5/"; +use VyattaConfig; +use VyattaMisc; + +use strict; +use warnings; + +sub run_dhclient { + my $intf = shift; + my $dhcp_daemon = '/sbin/dhclient'; + my ($intf_config_file, $intf_process_id_file, $intf_leases_file) = VyattaMisc::generate_dhclient_intf_files($intf); + my $cmd = "$dhcp_daemon -q -nw -cf $intf_config_file -pf $intf_process_id_file -lf $intf_leases_file $intf 2> /dev/null &"; + system ($cmd); +} + +# +# main +# + +my $dev=shift; + +# only do this if interface is configured to use dhcp for getting IP address +if (VyattaMisc::is_dhcp_enabled($dev, "outside_cli")) { + # do a dhcp lease renew for interface + run_dhclient($dev); +} + +exit 0; + +# end of file + |