chiark / gitweb /
probes: fixes
[modbot-ulm.git] / probes / modrelays-probe
index 79e8ab7f5f4b0d10f13795ec888bb0ec11e0b3c9..6245c82804543dde67dafb66600b4019b00048d9 100755 (executable)
@@ -31,9 +31,9 @@ compute-td () {
        # 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"
@@ -358,6 +358,9 @@ mode_received () {
        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" ||: