From c4af37beedeaf14ea561fb138c9b131dc1e743db Mon Sep 17 00:00:00 2001 From: kappernet <33451837+kappernet@users.noreply.github.com> Date: Thu, 9 Nov 2017 20:18:08 +0100 Subject: [PATCH] Update dns_kappernet.sh added missing functions --- dnsapi/dns_kappernet.sh | 56 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/dnsapi/dns_kappernet.sh b/dnsapi/dns_kappernet.sh index 6d14f5b6..5b99232a 100644 --- a/dnsapi/dns_kappernet.sh +++ b/dnsapi/dns_kappernet.sh @@ -6,7 +6,6 @@ # # 20171107 - v1: initial version uploaded to GitHub Project Neilpang/acme.sh - #KAPPERNETDNS_Key="yourKAPPERNETapikey" #KAPPERNETDNS_Secret="yourKAPPERNETapisecret" KAPPERNETDNS_Api="https://dnspanel.kapper.net/API/1.1?APIKey=$KAPPERNETDNS_Key&APISecret=$KAPPERNETDNS_Secret" @@ -92,3 +91,58 @@ dns_kappernet_rm() fi _err "Problem creating the TXT record/Fehler beim Anlegen eines TXT records" } +#################### Private functions below ################################## +# called with hostname +# e.g._acme-challenge.www.domain.com returns +# _sub_domain=_acme-challenge.www +# _domain=domain.com +_get_root() +{ + domain=$1 + i=2 + p=1 + while true; do + h=$(printf "%s" "$domain" | cut -d . -f $i-100) + if [ -z "$h" ]; then + #not valid + return 1 + fi + if ! _kappernet_api GET "action=list&subject=$h"; then + return 1 + fi + if _contains "$response" '"OK":false'; then + _debug "$h not found" + else + _sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p) + _domain="$h" + return 0 + fi + p="$i" + i=$(_math "$i" + 1) + done + return 1 +} +################################################################################ +# calls the kapper.net DNS Panel API +# with +# method +# param +_kappernet_api() +{ + method=$1 + param="$2" + + _debug param "PARAMETER=$param" + url="$KAPPERNETDNS_Api&$param" + _debug url "URL=$url" + + if [ "$method" = "GET" ]; then + response="$(_get "$url")" + else + _err "Unsupported method" + return 1 + fi + + _debug2 response "$response" + return 0 +}