#!/bin/bash

set -e

# based on knot-resolver's roundtrip autopkgtest
if [ -z "$AUTOPKGTEST_ARTIFACTS" ]; then
    d="$(mktemp -d)"
    remove="$d"
else
    d="$AUTOPKGTEST_ARTIFACTS"
fi
ip="${TESTIP:-127.$(( $RANDOM % 256 )).$(( $RANDOM % 256 )).$(( $RANDOM % 256 ))}"
kresd="${KRESD:-/usr/sbin/kresd}"
kdig="${KDIG:-$(command -v kdig)}"

declare -a kresd_args=(--addr="$ip@8053" --config="$d/kresd.conf" -f 1 --verbose --verbose --verbose)

section() {
    printf "\n%s\n" "$1"
    sed 's/./-/g' <<<"$1"
}

section "set up kresd daemon on $ip on ports 8053 (UDP, TCP)"
cat > "$d/kresd.conf" <<EOF
verbose(true)
EOF

"$kresd" "${kresd_args[@]}" "$d" 2> "$d/kresd.err" &

sleep 5

kdig @"$ip:8053" -t ns . +dnssec > root-nameservers-result
cat root-nameservers-result
head -n1 < root-nameservers-result | grep -q '^;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: '
