PROBE_TIMEOUT=$(( 20 * 60 ))
PROBE_EXPIRE=$(( 32 * 86400 ))
+shopt -s nullglob
+
case "$1" in
received)
mode="$1"
# caller must "local td", which will be set
local probeid=$1
- probeid="$domain,${probeid//[^-=.,_0-9A-Za-z]/%/},$id"
+ probeid="$domain,${probeid//[^-=:.,_0-9A-Za-z]/%},$id"
case $probeid in
- .*|*/*) fail "yikes, sanitisation bug!" ;;
+ .*|*/*) fail "yikes, sanitisation bug ($probeid) !" ;;
esac
td="$statedir/$probeid"
while read hn group id domain mx addr; do
if [ x"$hn" != x"X-WebSTUMP-Relay-Probe:" ]; then continue; fi
if [ x"$group" != x"$GROUP" ]; then continue; fi
+ case " $id $domain $mx $addr" in
+ */*|' '.*) fail "bad syntax" ;;
+ esac
local td
compute-td "mx=$mx,addr=$addr"
>"$td/ok" ||: