From ac68f90e25c45bb6a01b63629251fa030b63811d Mon Sep 17 00:00:00 2001 From: f Date: Sat, 22 Jun 2024 19:46:30 -0300 Subject: [PATCH] fix: re-register domainkeys when previously failed --- opendkimd.sh | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/opendkimd.sh b/opendkimd.sh index 609152e..73253d4 100755 --- a/opendkimd.sh +++ b/opendkimd.sh @@ -36,17 +36,27 @@ case $1 in dkey="$selc._domainkey.$SUTTY" # Do nothing if it already exists - test -f "$pkey" && exit 0 + if test ! -f "$pkey"; then + # Remove old keys later + prev="`find $dir -name "*.private" -o -name "*.txt"`" - # Remove old keys later - prev="`find $dir -name "*.private" -o -name "*.txt"`" + ok "Generating new keys for selector ${selc}" + opendkim-genkey --directory=$dir --selector=$selc --subdomains --domain=$SUTTY - ok "Generating new keys for selector ${selc}" - opendkim-genkey --directory=$dir --selector=$selc --subdomains --domain=$SUTTY + # Discard previous keys + echo "$dkey $SUTTY:$selc:$pkey" > $key + echo "$SUTTY $dkey" > $sig - # Discard previous keys - echo "$dkey $SUTTY:$selc:$pkey" > $key - echo "$SUTTY $dkey" > $sig + if test -n "$prev"; then + ok "Pruning old keypairs" + rm -f $prev + fi + + if test -f $pid ; then + ok "Reloading" + cat $pid | xargs -r kill -USR1 + fi + fi txt="`cat $tkey | tr -d "\n" | cut -d '"' -f 2,4 | tr -d '"' | tr -d " "`" @@ -54,6 +64,10 @@ case $1 in # continue anyway. ok "Registering public key records" for node in `drill -Q ns $SUTTY`; do + if drill -Q @${node} txt ${dkey} | grep -q "${txt}" ; then + ok "Records already registered for selector ${selc}" + continue + fi # Craft record cat >/tmp/dns <