#!/bin/sh -eu

. ddns-sh-functions
[ ! -s /etc/sysconfig/system ] || . /etc/sysconfig/system

[ "${SERVER_ROLE:-}" = "master" ] || exit 0

check_reverse()
{
    local tempfile="$(mktemp -t ddns-hook-net-eth.XXXXXX)"
    local rc=0

    foreach_reverse echo|sed 's/.*/&.in-addr.arpa/'|sort>"$tempfile"
    find "$ddns_root/zone/$ddns_zone_dir" -type f -name '*.in-addr.arpa' -printf '%f\n'|
	sort|
	cmp -s - "$tempfile" || rc=1

    rm -f "$tempfile"
    return "$rc"
}

check_ip()
{
    local tempfile="$(mktemp -t ddns-hook-net-eth.XXXXXX)"
    local rc=0

    foreach_ip echo|sort>"$tempfile"
    host "$ddns_zone" 127.0.0.1|
	sed -n 's/.*[[:space:]]\+has[[:space:]]\+address[[:space:]]\+//p'|
	sort|
	cmp -s - "$tempfile" || rc=1

    rm -f "$tempfile"
    return "$rc"
}

if check_reverse && check_ip;then
    echo "No full reset..." >&2
else
    echo "Call full reset..." >&2
    /usr/sbin/ddns-hook-reset
fi
