Blame SPECS/README.dhclient.d

Packit Service 22d8bb
The /etc/dhcp/dhclient.d directory allows other packages and system
Packit Service 22d8bb
administrators to create application-specific option handlers for dhclient.
Packit Service 22d8bb
Packit Service 22d8bb
When dhclient is run, any option listed in the dhcp-options(5) man page can
Packit Service 22d8bb
be requested.  dhclient-script does not handle every option available
Packit Service 22d8bb
because doing so would make the script unmaintainable as the components
Packit Service 22d8bb
using those options might change over time.  The knowledge of how to handle
Packit Service 22d8bb
those options should be under the responsibility of the package maintainer
Packit Service 22d8bb
for that component (e.g., NTP options belong in a handler in the ntp
Packit Service 22d8bb
package).
Packit Service 22d8bb
Packit Service 22d8bb
To make maintenance easier, application specific DHCP options can be handled
Packit Service 22d8bb
by creating a bash script with two functions and placing it in /etc/dhcp/dhclient.d
Packit Service 22d8bb
Packit Service 22d8bb
The script must follow a specific form:
Packit Service 22d8bb
Packit Service 22d8bb
(1) The script must be named NAME.sh.  NAME can be anything, but it makes
Packit Service 22d8bb
    sense to name it for the service it handles.  e.g., ntp.sh
Packit Service 22d8bb
Packit Service 22d8bb
(2) The script must provide a NAME_config() function to read the options and
Packit Service 22d8bb
    do whatever it takes to put those options in place.
Packit Service 22d8bb
Packit Service 22d8bb
(3) The script must provide a NAME_restore() function to restore original
Packit Service 22d8bb
    configuration state when dhclient stops.
Packit Service 22d8bb
Packit Service 22d8bb
(4) The script must be 'chmod +x' or dhclient-script will ignore it.
Packit Service 22d8bb
Packit Service 22d8bb
The scripts execute in the same environment as dhclient-script.  That means
Packit Service 22d8bb
all of the functions and variables available to it are available to your
Packit Service 22d8bb
NAME.sh script.  Things of note:
Packit Service 22d8bb
Packit Service 22d8bb
    ${SAVEDIR} is where original configuration files are saved.  Save your
Packit Service 22d8bb
    original configuration files here before you take the DHCP provided
Packit Service 22d8bb
    values and generate new files.
Packit Service 22d8bb
Packit Service 22d8bb
    Variables set in /etc/sysconfig/network, /etc/sysconfig/networking/network,
Packit Service 22d8bb
    and /etc/sysconfig/network-scripts/ifcfg-$interface are available to
Packit Service 22d8bb
    you.
Packit Service 22d8bb
Packit Service 22d8bb
See the scripts in /etc/dhcp/dhclient.d for examples.
Packit Service 22d8bb
Packit Service 22d8bb
NOTE:  Do not use functions defined in /usr/sbin/dhclient-script.  Consider
Packit Service 22d8bb
dhclient-script a black box.  This script may change over time, so the
Packit Service 22d8bb
dhclient.d scripts should not be using functions defined in it.
Packit Service 22d8bb
Packit Service 22d8bb
-- 
Packit Service 22d8bb
David Cantrell <dcantrell@redhat.com>