chiark / gitweb /
addrcheck, mkcdb: Check sender addresses for validity in addrcheck.
[newsgate] / bin / addrcheck
index ca6f3fb35433e164d545a1dfe27b1c496397c57d..3a3c5333d053bc626bbb61d0e78d63a9c7275a6d 100755 (executable)
@@ -3,8 +3,26 @@
 set -e
 kind=${1?kind}
 tail=${2?tail}
-if cdb -q groups.cdb "$kind:$tail" >/dev/null 2>&1; then
-  echo +
-else
-  echo "-bad tag $tail"
-fi
+sender=${3?sender}
+
+##bad () { echo "-$*"; exit 0; }
+bad () { 
+  echo "consider reject to $kind:$tail from $sender ($*)" >>addrcheck.log"
+  echo "+just this once"
+  exit 0
+}
+
+entry=`cdb -q groups.cdb "$kind:$tail"` || bad "bad tag $tail"
+set -- $entry
+case $kind in
+  g)
+    SENDER=$sender check-sender <auth.cdb 2>/dev/null || 
+      bad "invalid sender $sender"
+    ;;
+  t)
+    echo $sender
+    echo "$4"
+    case "$sender" in $4) ;; *) bad "incorrect sender $sender" ;; esac
+    ;;
+esac
+echo +