1#!/bin/rc 2 3rfork en 4fn usage{ 5 echo 'usage: validatesender [-n /net] plan9.bell-labs.com glenda' >[1=2] 6 exit usage 7} 8 9echo $sysname $pid '$' validatesender $* >>/sys/log/smtpd.mx 10 11netroot=/net 12if(~ $1 -n){ 13 shift 14 netroot=$1 15 shift 16} 17if(! ~ $#* 2) 18 usage 19 20dom=$1 21addr=$2 22 23# Cause some problems 24if(~ $dom swtch.com && ~ $addr glenda && ! ~ $sysname olive) 25 exit 'deferred: always defer this one' 26 27# Sites that we have to special case 28# Lucent only - use external network when mail from external domains 29# is delivered to us internally. Assume that local domains are fine. 30#netroot=/net 31#if(~ $dom *.lucent.com lucent.com *.bell-labs.com bell-labs.com) 32# exit '' 33#if(! ~ $sysname ethel) 34# exit '' 35#if(~ $sysname ethel){ 36# if(! test -d /net.alt/tcp) 37# import outside /net.alt 38# if(test -d /net.alt/tcp) 39# netroot=/net.alt 40#} 41 42if(x=`{upas/smtp -p $netroot/tcp!$dom /dev/null $addr >[2=1] | 43 tee >{sed 's/^/'$sysname' '$pid' /' >> /sys/log/smtpd.mx} | 44 tail -1}) 45 exit '' 46 47smtpstatus=$status 48if(~ $#x 0) 49 x=$smtpstatus 50if(~ $smtpstatus *'Permanent Failure'*) 51 exit 'rejected: smtp ping: '^$"x 52exit 'deferred: smtp ping: '^$"x 53