summaryrefslogtreecommitdiff
path: root/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail
diff options
context:
space:
mode:
Diffstat (limited to 'debian/examples/dhcp/dhclient-exit-hooks.d/sendmail')
-rw-r--r--debian/examples/dhcp/dhclient-exit-hooks.d/sendmail49
1 files changed, 49 insertions, 0 deletions
diff --git a/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail b/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail
new file mode 100644
index 0000000..7135a80
--- /dev/null
+++ b/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# This script is called when a dhcp event occurs.
+#
+# Here is where we'll start/stop sendmail if needed.
+#
+# Written By Richard Nelson <cowboy@debian.org>
+#
+# NOTE: The following lines (without the #) must be in /etc/mail/sendmail.mc:
+# include(`/etc/mail/dialup.m4')dnl
+# include(`/etc/mail/provider.m4')dnl
+#
+# NOTE: The dhcp DNS name is used as the peer name in /etc/mail/peers.
+#
+
+# No need to continue if we're called with an unsupported option
+case "$reason" in
+ EXPIRE|FAIL|RELEASE|STOP) #down... and TIMEOUT too ???
+ ;;
+ BOUND|RENEW|REBIND|REBOOT|TIMEOUT) #up... why TIMEOUT here ???
+ ;;
+ *)
+ return;
+ ;;
+ esac;
+
+# Bring in some script functions to handle dynamic configuration
+. /usr/share/sendmail/dynamic;
+
+# Note the interface that just changed
+update_interface "$interface" "$reason";
+
+# If the domain name has changed, update the provider information
+if [ "$new_domain_name" != "$old_domain_name" ]; then
+ update_provider "$new_domain_name";
+ fi;
+
+# If the ip address has changed, update the host information
+if [ "$new_ip_address" != "$oldnew_ip_address" ]; then
+ update_host "$new_ip_address";
+ fi;
+
+# If anything has been changed, update sendmail.cf and reload
+# Actually, we'll delay the reload because we'll be hit in a moment
+# to handle the change by /etc/network/if-up.d/sendmail
+update_sendmail "dhcp" Delayed;
+
+return;
+