diff options
Diffstat (limited to 'debian/local/ip-up.d')
-rw-r--r-- | debian/local/ip-up.d | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/debian/local/ip-up.d b/debian/local/ip-up.d new file mode 100644 index 0000000..9053a4e --- /dev/null +++ b/debian/local/ip-up.d @@ -0,0 +1,100 @@ +#!/bin/sh +# +# This script is called when ppp connects to the network. +# +# Here is where we'll start sendmail if needed, and will +# run the queue in either case. +# +# 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 +# +# ALSO: make sure ipparam is specified somewhere in the ppp options; +# it will be used as the name of a file in /etc/mail/peers +# +# Exit by default, check for validity before commenting out the next line: +exit 0 + +# Define our domain name (from PPP) for sendmail. + +# These variables are for the use of the scripts run by run-parts +#PPP_IFACE="$1" +#PPP_TTY="$2" +#PPP_SPEED="$3" +#PPP_LOCAL="$4" +#PPP_REMOTE="$5" +#PPP_IPPARAM="$6" + +if [ ! -z "$PPP_LOCAL" ]; then + addr=$PPP_LOCAL + provider=$PPP_IPPARAM +else + addr=$1 + provider=$2 + fi + +# Determine our fqdn from our ISP +maxloop=20 +cntr=0 +name="" +until (test ! -z "$name"); do + cntr=$(($cntr+1)) + name=$(nslookup $addr | grep '^Name:' | awk '{print $2}') + test=$(echo $name | cut -d ' ' -f 1) + if [ "$name" != "**" ]; then + break + elif (($cntr > $maxloop)); then + name="" + break + fi + done + +if [ ! -z "$name" ]; then + file="/etc/mail/dialup.m4" + echo "LOCAL_CONFIG" >> $file + echo "#------------------------------------------------------------" >> $file + echo "#" > $file + echo "# Dynamic updates from $0" >> $file + echo "#" >> $file + echo "# Define our true hostname (from our ISP) becomes \$j" >> $file + echo "define(\`confDOMAIN_NAME', \`$name')dnl" >> $file + echo "# Make sure we accept mail as this name (for bounces, etc)" >> $file + echo "Cw$name" >> $file + echo "# Add our hostname to class G for genericstable support" >> $file + echo "CG$name" >> $file + echo "#------------------------------------------------------------" >> $file + fi + +# Add smarthost information (if any)... But not if provider.m4 is a link ! +if [ -f /etc/mail/peers/$provider -a ! -L /etc/mail/provider.m4 ]; then + file="/etc/mail/provider.m4" + echo "LOCAL_CONFIG" >> $file + echo "#------------------------------------------------------------" >> $file + echo "#" > $file + echo "# Dynamic updates from $0" >> $file + echo "#" >> $file + echo "# Provider information from /etc/mail/peers/$provider" >> $file + cat /etc/mail/peers/$provider >> $file + echo "#------------------------------------------------------------" >> $file + fi + +# Build a new sendmail.cf from sendmail.mc, including our address. +# 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 +m4 /usr/share/sendmail/sendmail.cf/m4/cf.m4 /etc/mail/sendmail.mc \ + >/etc/mail/sendmail.cf.pnew +chmod 0640 /etc/mail/sendmail.cf.pnew +chown root.mail /etc/mail/sendmail.cf.pnew +mv -f /etc/mail/sendmail.cf.pnew /etc/mail/sendmail.cf + +# Purge any latent host status that might cause us to *NOT* send mail +purgestat + +# Start/reload sendmail as needed +/etc/init.d/sendmail reload # may be up, or down + +# Process the sendmail queue (background so as to not defer other ip-up work) +runq & |