36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# FILE: wgapi:back/lib/ns/update/add
|
|
# DESCRIPTION: Add a new peer's domain to nameserver
|
|
# USAGE: add domain ipv4 ipv6
|
|
# ERRORS:
|
|
# 3: Bad usage
|
|
# 4: config file not found
|
|
# 5: nsupdate failed
|
|
|
|
[ ${#} -eq 3 ] || exit 3
|
|
CONFIG_FILE='/etc/wgapi/config'
|
|
[ -f "${CONFIG_FILE}" ] || exit 4
|
|
source "${CONFIG_FILE}"
|
|
|
|
# Keep these updates seperate because the zones are different
|
|
printf "update add ${1}. ${DNS_TTL} A ${2}
|
|
update add ${1}. ${DNS_TTL} AAAA ${3}
|
|
update add *.${1}. ${DNS_TTL} CNAME ${1}.
|
|
send
|
|
" >>"${LOGFILE}"
|
|
printf "update add $("${LIB_DIR}/ns_update_rev_ipv4" "${2}") ${DNS_TTL} PTR ${1}.
|
|
send
|
|
"
|
|
printf "update add $("${LIB_DIR}/ns_update_rev_ipv6" "${3}") ${DNS_TTL} PTR ${1}.
|
|
send
|
|
"
|
|
( "${LIB_DIR}/ns_update_send" "update add ${1}. ${DNS_TTL} A ${2}
|
|
update add ${1}. ${DNS_TTL} AAAA ${3}
|
|
update add *.${1}. ${DNS_TTL} CNAME ${1}.
|
|
send
|
|
" && "${LIB_DIR}/ns_update_send" "update add $("${LIB_DIR}/ns_update_rev_ipv4" "${2}") ${DNS_TTL} PTR ${1}.
|
|
send
|
|
" && "${LIB_DIR}/ns_update_send" "update add $("${LIB_DIR}/ns_update_rev_ipv6" "${3}") ${DNS_TTL} PTR ${1}.
|
|
send
|
|
" ) || exit 5
|