From 6200a4d03150b89912342ac7ce442936617e352d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hern=C3=A2ni=20Marques?= Date: Fri, 4 Sep 2026 16:41:03 +0200 Subject: [PATCH] feat: mail ipv6/rdns checks and taler-ops catalog --- check_mail.sh | 34 +++++++++++++++++++++++++++++++++- mail-catalog.conf | 1 + 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/check_mail.sh b/check_mail.sh index 7f92433..7dab097 100755 --- a/check_mail.sh +++ b/check_mail.sh @@ -213,12 +213,44 @@ while IFS= read -r line || [ -n "$line" ]; do h=$(echo "$h" | tr '[:upper:]' '[:lower:]' | sed 's/\.$//;s/^[[:space:]]*//;s/[[:space:]]*$//') [ -z "$h" ] && continue - addrs=$(dns_a "$h" | tr '\n' ' ') + mapfile -t _a4 < <(dns_a "$h" | sed '/^$/d') + addrs=$(printf '%s ' "${_a4[@]}") if [ -z "${addrs// }" ]; then fail "dns" "$h does not resolve (A/AAAA)" continue fi ok "dns" "$h → $addrs" + # Explicit IPv6 signal + _has_v4=0 + _has_v6=0 + for _ip in "${_a4[@]}"; do + case "$_ip" in + *:*) _has_v6=1 ;; + *) _has_v4=1 ;; + esac + done + if [ "$_has_v4" = "1" ] && [ "$_has_v6" = "0" ]; then + warn "ipv6" "$h has A but no AAAA" + elif [ "$_has_v6" = "1" ]; then + ok "ipv6" "$h has AAAA" + fi + # Reverse DNS (PTR) on first IPv4 + for _ip in "${_a4[@]}"; do + case "$_ip" in + *:*) continue ;; + esac + if command -v dig >/dev/null 2>&1; then + ptr=$(dig +short +time=3 +tries=2 -x "$_ip" 2>/dev/null | sed 's/\.$//' | tr '\n' ' ') + else + ptr=$(host "$_ip" 2>/dev/null | awk '/domain name pointer/{print $NF}' | sed 's/\.$//' | tr '\n' ' ') + fi + if [ -n "${ptr// }" ]; then + ok "rdns" "$_ip PTR → $ptr" + else + warn "rdns" "$_ip has no PTR" + fi + break + done # skip full protocol re-probe if already done if [ "${HOST_DONE[$h]:-}" = "1" ]; then diff --git a/mail-catalog.conf b/mail-catalog.conf index f489234..5cd6a00 100644 --- a/mail-catalog.conf +++ b/mail-catalog.conf @@ -18,3 +18,4 @@ gnunet.org firefly.gnunet.org firefly.gnunet.org # Port 587 often closed/filtered on this plane → WARN only (see check_mail.sh). taler-systems.com mail.anastasis.lu mail.anastasis.lu,pixel.taler-systems.com 25,465,587 143,993 tsa-anastasis anastasis.lu mail.anastasis.lu mail.anastasis.lu 25,465,587 143,993 anastasis-lu +taler-ops.ch pixel.taler-systems.com mail.anastasis.lu,pixel.taler-systems.com 25,465,587 143,993 tops-mail