diff options
Diffstat (limited to 'net/isc-dhcp30-server/files/client::scripts::freebsd')
| -rw-r--r-- | net/isc-dhcp30-server/files/client::scripts::freebsd | 510 | 
1 files changed, 0 insertions, 510 deletions
diff --git a/net/isc-dhcp30-server/files/client::scripts::freebsd b/net/isc-dhcp30-server/files/client::scripts::freebsd deleted file mode 100644 index 9c4c3d3a6f24..000000000000 --- a/net/isc-dhcp30-server/files/client::scripts::freebsd +++ /dev/null @@ -1,510 +0,0 @@ -#!/bin/sh - -############################################################################# -# -# Copyright (c) 1999, MindStep Corporation -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -#    notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -#    notice, this list of conditions and the following disclaimer in the -#    documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# -############################################################################# -# -# This script was written by Patrick Bihan-Faou, patrick@mindstep.com, -# Please contact us for bug reports, etc. -# -############################################################################# -# $MindStep_Id: dhclient-script.sh,v 1.8 1999/12/07 22:11:08 patrick Exp $ -# $MindStep_Tag: CONTRIB_19991207 $ -# from FreeBSD: src/sbin/dhclient/dhclient-script.sh,v 1.2 2002/02/01 18:46:58 alfred Exp -# $FreeBSD$ -############################################################################# - - -############################################################################# -# hook functions prototypes -# -# The "pre_state_XXX_hook" functions are called before the main -# work is done for the state XXX -# -# The "post_state_XXX_hook" functions are called after the main -# work is done for the state XXX -# -# These functions are meant to be overridden by the user's -# dhclient-enter-hooks file -############################################################################# - -pre_state_MEDIUM_hook () { } -pre_state_PREINIT_hook () { } -pre_state_ARPCHECK_hook () { } -pre_state_ARPSEND_hook () { } -pre_state_RENEW_hook () { } -pre_state_REBIND_hook () { } -pre_state_BOUND_hook () { } -pre_state_REBOOT_hook () { } -pre_state_EXPIRE_hook () { } -pre_state_FAIL_hook () { } -pre_state_TIMEOUT_hook () { } -post_state_MEDIUM_hook () { } -post_state_PREINIT_hook () { } -post_state_ARPCHECK_hook () { } -post_state_ARPSEND_hook () { } -post_state_RENEW_hook () { } -post_state_REBIND_hook () { } -post_state_BOUND_hook () { } -post_state_REBOOT_hook () { } -post_state_EXPIRE_hook () { } -post_state_FAIL_hook () { } -post_state_TIMEOUT_hook () { } - -############################################################################# -# make_resolv_conf -# -# This function is called to update the information related to the -# DNS configuration (the resolver part) -############################################################################# -make_resolv_conf ()  -{ -   if [ "x$new_domain_name" != x ] && [ "x$new_domain_name_servers" != x ]; then -     echo search $new_domain_name >/etc/resolv.conf -     for nameserver in $new_domain_name_servers; do -       echo nameserver $nameserver >>/etc/resolv.conf -     done -   fi -} - -############################################################################# -# set_XXX -# unset_XXX -# -# These function each deal with one particular setting. -# They are OS dependent and may be overridden in the  -# dhclient-enter-hooks file if needed. -# -# These functions are called with either "new" or "old" to indicate which -# set of variables to use (new_ip_address or old_ip_address...) -# -############################################################################# - -update_hostname () -{ -	local current_hostname=`/bin/hostname` - -  	if	[ "$current_hostname" = "" ] || \ -		[ "$current_hostname" = "$old_host_name" ] -	then -		if [ "$new_host_name" != "$old_host_name" ] -		then -			$LOGGER "New Hostname: $new_host_name" -			hostname $new_host_name -		fi -	fi -} - -set_ip_address ()  -{ -	local ip -	local mask -	local bcast - -	if [ $# -lt 1 ] -	then -		return  1 -	fi - -	eval ip="\$${1}_ip_address" -	eval mask="\$${1}_subnet_mask" -	eval bcast="\$${1}_broadcast_address" - -	if [ "$ip" != "" ] -	then -		ifconfig $interface inet $ip netmask $mask broadcast $bcast $medium -#		route add $ip 127.0.0.1 > /dev/null 2>&1 -	fi -} - -unset_ip_address ()  -{ -	local ip - -	if [ $# -lt 1 ] -	then -		return  1 -	fi - -	eval ip="\$${1}_ip_address" - -	if [ "$ip" != "" ] -	then -		ifconfig $interface inet -alias $ip $medium -#		route delete $ip 127.0.0.1 > /dev/null 2>&1 -	fi -} - -set_ip_alias ()  -{ -	if [ "$alias_ip_address" != "" ] -	then -		ifconfig $interface inet alias $alias_ip_address netmask $alias_subnet_mask -#		route add $alias_ip_address 127.0.0.1 -	fi -} - -unset_ip_alias ()  -{ -	if [ "$alias_ip_address" != "" ] -	then -		ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 -#		route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 -	fi -} - -set_routers ()  -{ -	local router_list - -	if [ $# -lt 1 ] -	then -		return  1 -	fi - -	eval router_list="\$${1}_routers" - -	for router in $router_list -	do -		route add default $router >/dev/null 2>&1 -	done -} - -unset_routers ()  -{ -	local router_list - -	if [ $# -lt 1 ] -	then -		return  1 -	fi - -	eval router_list="\$${1}_routers" - -	for router in $router_list -	do -		route delete default $router >/dev/null 2>&1 -	done -} - -set_static_routes ()  -{ -	local static_routes - -	if [ $# -lt 1 ] -	then -		return  1 -	fi - -	eval static_routes="\$${1}_static_routes" - -	set static_routes - -	while [ $# -ge 2 ] -	do -		$LOGGER "New Static Route: $1 -> $2" -		route add $1 $2 -		shift; shift -	done -} - -unset_static_routes ()  -{ -	local static_routes - -	if [ $# -lt 1 ] -	then -		return  1 -	fi - -	eval static_routes="\$${1}_static_routes" - -	set static_routes - -	while [ $# -ge 2 ] -	do -		route delete $1 $2 -		shift; shift -	done -} - -############################################################################# -# -# utility functions grouping what needs to be done in logical units. -# -############################################################################# - -set_all () -{ -	set_ip_address new -	set_routers new -	set_static_routes new - -	if	[ "$new_ip_address" != "$alias_ip_address" ] -	then -		set_ip_alias -	fi -} - -set_others () -{ -	update_hostname -	make_resolv_conf -} - -clear_arp_table ()  -{ -	arp -d -a -} - -unset_all () -{ -	if [ "$alias_ip_address" != "$old_ip_address" ] -	then -		unset_ip_alias -	fi - -	if [ "$old_ip_address" != "" ]  -	then -		unset_ip_address old -		unset_routers old -		unset_static_routes old -		clear_arp_table -	fi -} - -test_new_lease ()  -{ -	local rc - -	set $new_routers - -	if [ $# -ge 1 ] -	then -		set_ip_address new -		if ping -q -c 1 $1 -		then -			rc=0 -		else -			rc=1 -		fi -		unset_ip_address new -	else -		rc=1 -	fi -	return  $rc -} - -############################################################################# -# Main State functions. -# -# There is a state function for each state of the DHCP client -# These functions are OS specific and should be be tampered with. -############################################################################# - -in_state_MEDIUM ()  -{ -  ifconfig $interface $medium -  ifconfig $interface inet -alias 0.0.0.0 $medium >/dev/null 2>&1 -  sleep 1 -  exit_status=0 -} - -in_state_PREINIT ()  -{ -	unset_ip_alias - -	ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ -			broadcast 255.255.255.255 up -	exit_status=0 -} - -in_state_ARPCHECK ()  -{ -  exit_status=0 -} - -in_state_ARPSEND ()  -{ -  exit_status=0 -} - -in_state_RENEW ()  -{ -	if [ "$old_ip_address" != "$new_ip_address" ] -	then -		unset_all -		set_all -	fi - -	set_others -} - -in_state_REBIND () { -	in_state_RENEW -} - -in_state_BOUND () { -	unset_all -	set_all -	set_others -} - -in_state_REBOOT () { -	in_state_BOUND -} - -in_state_EXPIRE ()  -{ -	unset_all -	set_ip_alias -	exit_status=0 -} - -in_state_FAIL () { -	in_state_EXPIRE -} - -in_state_TIMEOUT ()  -{ -	unset_all - -	if test_new_lease -	then -		set_all -		set_others -	else -	 	$LOGGER "No good lease information in TIMEOUT state"	 -		set_ip_alias -		exit_status=1 -	fi -} - -############################################################################# -# Main functions: -# -# dhclient_script_init() parses the optional "enter_hooks" script which can -#   override any of the state functions -# -# This function also parses the variables and notifies the detected changes. -############################################################################# -dhclient_script_init () -{ -	if [ "$new_network_number" != "" ] -	then -		$LOGGER "New Network Number: $new_network_number" -	fi - -	if [ "$new_ip_address" != "" ] -	then -		$LOGGER "New IP Address: $new_ip_address" -	fi - -	if [ "$new_broadcast_address" != "" ] -	then -		$LOGGER "New Broadcast Address: $new_broadcast_address" -	fi - -	if [ "$new_subnet_mask" != "" ] -	then -		$LOGGER "New Subnet Mask for $interface: $new_subnet_mask" -	fi - -	if [ "$alias_subnet_mask" != "" ] -	then -	fi -} - -############################################################################# -# dhclient_main() does the appropriate work depending on the state of -# the dhcp client -############################################################################# -dhclient_script_main () -{ -#	set -x -	exit_status=0 - -	case $reason in -		MEDIUM|\ -		PREINIT|\ -		ARPCHECK|\ -		ARPSEND|\ -		RENEW|\ -		REBIND|\ -		BOUND|\ -		REBOOT|\ -		EXPIRE|\ -		FAIL|\ -		TIMEOUT) -			pre_state_${reason}_hook -			in_state_${reason} -			post_state_${reason}_hook -			;; -		*) -			$LOGGER "dhclient-script called with invalid reason $reason" -			exit_status=1 -			;; -	esac -} - -############################################################################# -# Let's do the work... -############################################################################# - -if [ -x /usr/bin/logger ]; then -	LOGGER="/usr/bin/logger -s -p user.notice -t dhclient" -else -	LOGGER=echo -fi - -# Invoke the local dhcp client enter hooks, if they exist. -if [ -x %%PREFIX%%/etc/dhclient-enter-hooks ] -then -	exit_status=0 -	. %%PREFIX%%/etc/dhclient-enter-hooks -	# allow the local script to abort processing of this state -	# local script must set exit_status variable to nonzero. -	if [ $exit_status -ne 0 ] -	then -		exit $exit_status -	fi -fi - -dhclient_script_init -dhclient_script_main - -# Invokes the local dhcp client exit hooks, if any. -if [ -x %%PREFIX%%/etc/dhclient-exit-hooks ]; then -	. %%PREFIX%%/etc/dhclient-exit-hooks -fi - -exit $exit_status - -############################################################################# -# That's all folks -#############################################################################  | 
