#!/usr/bin/env bash
# onx-pdns-setup-slave — PowerDNS slave konfigürasyonu
# Input:  {"master_ip":"10.0.0.1","allow_axfr_ips":"10.0.0.0/8"}
# Output: {"configured":true,"pdns_version":"..."}

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/_lib/common.sh"

require_root
require_cmd pdns_control
require_cmd pdnsutil
onx_json_input

MASTER_IP="$(onx_json_field master_ip)"
ALLOW_AXFR="$(onx_json_field allow_axfr_ips "${MASTER_IP}/32")"
PDNS_CONF="/etc/pdns/pdns.conf"

[[ -z "$MASTER_IP" ]] && onx_die 1 "master_ip zorunlu"

onx_log "pdns-setup-slave: master_ip=${MASTER_IP}"

# Yedeği al
[[ -f "$PDNS_CONF" ]] && cp "$PDNS_CONF" "${PDNS_CONF}.bak.$(date +%s)"

# Mevcut slave/master satırlarını kaldır
sed -i '/^slave=/d; /^master=/d; /^superslave=/d; /^allow-axfr-ips=/d; /^also-notify=/d' "$PDNS_CONF"

# Slave modunu etkinleştir
cat >> "$PDNS_CONF" <<PDNS
slave=yes
master=no
superslave=yes
allow-axfr-ips=${ALLOW_AXFR}
PDNS

# PowerDNS'i yeniden başlat
systemctl restart pdns || onx_die 3 "pdns servisi yeniden başlatılamadı"

PDNS_VERSION=$(pdns_control version 2>/dev/null || echo "unknown")
PDNS_VERSION_JSON=$(printf '%s' "$PDNS_VERSION" | jq -Rs '.')

onx_log "pdns-setup-slave: tamamlandi version=${PDNS_VERSION}"
json_ok "{\"configured\":true,\"pdns_version\":${PDNS_VERSION_JSON}}"
