# Invokes the local dhcp client exit hooks, if any.
exit_with_hooks() {
exit_status=$1
- if [ -f /etc/dhclient-exit-hooks ]; then
- . /etc/dhclient-exit-hooks
- fi
+
+ for i in /etc/dhclient-exit-hooks.d/*[!~,] ; do
+ [ -f "$i" ] || continue
+ # Don't run *.{rpmsave,rpmorig,rpmnew,swp} scripts
+ [ "${i%.rpmsave}" != "${i}" ] && continue
+ [ "${i%.rpmorig}" != "${i}" ] && continue
+ [ "${i%.rpmnew}" != "${i}" ] && continue
+ [ "${i%.swp}" != "${i}" ] && continue
+ [ "${i%,v}" != "${i}" ] && continue
+
+ . ${i}
+ done
# probably should do something with exit status of the local script
exit $exit_status
}
-
-# Invoke the local dhcp client enter hooks, if they exist.
-if [ -f /etc/dhclient-enter-hooks ]; then
- exit_status=0
- . /etc/dhclient-enter-hooks
- # allow the local script to abort processing of this state
- # local script must set exit_status variable to nonzero.
+exit_status=0
+for i in /etc/dhclient-enter-hooks.d/*[!~,] ; do
+ [ -f "$i" ] || continue
+ # Don't run *.{rpmsave,rpmorig,rpmnew,swp} scripts
+ [ "${i%.rpmsave}" != "${i}" ] && continue
+ [ "${i%.rpmorig}" != "${i}" ] && continue
+ [ "${i%.rpmnew}" != "${i}" ] && continue
+ [ "${i%.swp}" != "${i}" ] && continue
+ [ "${i%,v}" != "${i}" ] && continue
+
+ . ${i}
+
if [ $exit_status -ne 0 ]; then
exit $exit_status
fi
-fi
+done
###
### DHCPv4 Handlers
Name: dhcp
# 4.1.0a1 is on DEVEL
Version: 4.0.2
-Release: 1
+Release: 2
Epoch: 4
License: MIT
Group: Networking/Daemons
Requires: coreutils
Requires: iproute2
Requires: net-tools
+Suggests: avahi-autoipd
Obsoletes: dhclient
%description client
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},%{_pkgconfigdir},/var/lib/{dhcpd,dhclient}}
+install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig,dhclient-enter-hooks.d,dhclient-exit-hooks.d},%{_pkgconfigdir},/var/lib/{dhcpd,dhclient}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
/sbin/chkconfig --del dhcp-relay
fi
+%triggerun client -- %{name}-client < 4:4.0.2-2
+if [ -f /etc/dhclient-enter-hooks ] ; then
+ mv /etc/dhclient-enter-hooks /etc/dhclient-enter-hooks.d/
+fi
+if [ -f /etc/dhclient-exit-hooks ] ; then
+ mv /etc/dhclient-exit-hooks /etc/dhclient-exit-hooks.d/
+fi
+
%post -n libdhcp4client -p /sbin/ldconfig
%postun -n libdhcp4client -p /sbin/ldconfig
%defattr(644,root,root,755)
%doc contrib/sethostname.sh client/dhclient.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dhclient.conf
+%{_sysconfdir}/dhclient-enter-hooks.d
+%{_sysconfdir}/dhclient-exit-hooks.d
%attr(755,root,root) /sbin/dhclient
%attr(755,root,root) /sbin/dhclient-script
%{_mandir}/man5/dhclient.conf.5*