12b7fd5adSDavid du Colombier#!/bin/rc 22b7fd5adSDavid du Colombier 32b7fd5adSDavid du Colombierrfork en 42b7fd5adSDavid du Colombierfn usage{ 52b7fd5adSDavid du Colombier echo 'usage: validatesender [-n /net] plan9.bell-labs.com glenda' >[1=2] 62b7fd5adSDavid du Colombier exit usage 72b7fd5adSDavid du Colombier} 82b7fd5adSDavid du Colombier 92b7fd5adSDavid du Colombierecho $sysname $pid '$' validatesender $* >>/sys/log/smtpd.mx 102b7fd5adSDavid du Colombier 112b7fd5adSDavid du Colombiernetroot=/net 122b7fd5adSDavid du Colombierif(~ $1 -n){ 132b7fd5adSDavid du Colombier shift 142b7fd5adSDavid du Colombier netroot=$1 152b7fd5adSDavid du Colombier shift 162b7fd5adSDavid du Colombier} 172b7fd5adSDavid du Colombierif(! ~ $#* 2) 182b7fd5adSDavid du Colombier usage 192b7fd5adSDavid du Colombier 202b7fd5adSDavid du Colombierdom=$1 212b7fd5adSDavid du Colombieraddr=$2 222b7fd5adSDavid du Colombier 232b7fd5adSDavid du Colombier# Cause some problems 242b7fd5adSDavid du Colombierif(~ $dom swtch.com && ~ $addr glenda && ! ~ $sysname olive) 252b7fd5adSDavid du Colombier exit 'deferred: always defer this one' 262b7fd5adSDavid du Colombier 2797787252SDavid du Colombier# Sites that we have to special case 282b7fd5adSDavid du Colombier# Lucent only - use external network when mail from external domains 292b7fd5adSDavid du Colombier# is delivered to us internally. Assume that local domains are fine. 30*cc81b63cSDavid du Colombier#netroot=/net 31*cc81b63cSDavid du Colombier#if(~ $dom *.lucent.com lucent.com *.bell-labs.com bell-labs.com) 32*cc81b63cSDavid du Colombier# exit '' 33*cc81b63cSDavid du Colombier#if(! ~ $sysname ethel) 34*cc81b63cSDavid du Colombier# exit '' 35*cc81b63cSDavid du Colombier#if(~ $sysname ethel){ 36*cc81b63cSDavid du Colombier# if(! test -d /net.alt/tcp) 37*cc81b63cSDavid du Colombier# import outside /net.alt 38*cc81b63cSDavid du Colombier# if(test -d /net.alt/tcp) 39*cc81b63cSDavid du Colombier# netroot=/net.alt 40*cc81b63cSDavid du Colombier#} 412b7fd5adSDavid du Colombier 4269326937SDavid du Colombierif(x=`{upas/smtp -p $netroot/tcp!$dom /dev/null $addr >[2=1] | 432b7fd5adSDavid du Colombier tee >{sed 's/^/'$sysname' '$pid' /' >> /sys/log/smtpd.mx} | 442b7fd5adSDavid du Colombier tail -1}) 452b7fd5adSDavid du Colombier exit '' 462b7fd5adSDavid du Colombier 472b7fd5adSDavid du Colombiersmtpstatus=$status 482b7fd5adSDavid du Colombierif(~ $#x 0) 492b7fd5adSDavid du Colombier x=$smtpstatus 502b7fd5adSDavid du Colombierif(~ $smtpstatus *'Permanent Failure'*) 512b7fd5adSDavid du Colombier exit 'rejected: smtp ping: '^$"x 522b7fd5adSDavid du Colombierexit 'deferred: smtp ping: '^$"x 53