#!/bin/sh -eu

. ddns-sh-functions

[ "$old_configuration" = "static" ] || exit 0

if [ "$new_configuration" = "dhcp" -o "$new_configuration" = "ipv4ll" ];then
    echo "remove network $old_ip" >&2
    ddns_list_domain|
	while read zone; do
	    ddns_domain_del_net "$zone" "$old_ip"
	done
elif [ "$old_ip" != "$new_ip" ];then
    if [ "${old_ip##*/}" == "${new_ip##*/}" ] && ipv4addr_is_in_subnet "${new_ip%%/*}" "$old_ip"; then
	ddns_list_domain|
	    while read zone;do
		ddns_domain_list_host "$zone"|
		    while read ip host; do
			[ "$ip" = "${old_ip%%/*}" ] || continue
			echo "rename host $host:${old_ip%%/*} -> ${new_ip%%/*}" >&2
			ddns_domain_del_host "$zone" "${old_ip%%/*}" "$host"
			ddns_domain_add_host "$zone" "${new_ip%%/*}" "$host"
		    done
	    done
    else
	echo "remove network $old_ip" >&2
	ddns_list_domain|
	    while read zone;do
		ddns_domain_del_net "$zone" "$old_ip"
	    done
    fi
fi

#restart as it should bind on new IP
service bind restart >&2
