#!/usr/bin/env sh # shellcheck disable=SC2034 dns_technitium_info='Technitium DNS Server Site: Technitium.com/dns/ Docs: github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_technitium Options: Technitium_Server Server Address Technitium_Token API Token Technitium_Expiry_Ttl Number of seconds before DNS server auto-deletes the acme record Issues: github.com/acmesh-official/acme.sh/issues/6116 Author: Henning Reich ' dns_technitium_add() { _info "add txt Record using Technitium" _Technitium_account fulldomain=$1 txtvalue=$2 expiryTtl=${Technitium_Expirty_Ttl:-$(_readaccountconf_mutable Technitium_Expiry_Ttl)} expiryTtl=${expiryTtl:-0} response="$(_get "$Technitium_Server/api/zones/records/add?token=$Technitium_Token&domain=$fulldomain&type=TXT&text=${txtvalue}&expiryTtl=$expiryTtl")" if _contains "$response" '"status":"ok"'; then return 0 fi _err "Could not add txt record." return 1 } dns_technitium_rm() { _info "remove txt record using Technitium" _Technitium_account fulldomain=$1 txtvalue=$2 expiryTtl=${Technitium_Expirty_Ttl:-$(_readaccountconf_mutable Technitium_Expiry_Ttl)} expiryTtl=${expiryTtl:-0} if [ "$expiryTtl" -ne 0 ]; then _info "DNS record is configured to be auto-removed after $expiryTtl seconds. Remove operation is bypassed." return 0 fi response="$(_get "$Technitium_Server/api/zones/records/delete?token=$Technitium_Token&domain=$fulldomain&type=TXT&text=${txtvalue}")" if _contains "$response" '"status":"ok"'; then return 0 fi _err "Could not remove txt record" return 1 } #################### Private functions below ################################## _Technitium_account() { Technitium_Server="${Technitium_Server:-$(_readaccountconf_mutable Technitium_Server)}" Technitium_Token="${Technitium_Token:-$(_readaccountconf_mutable Technitium_Token)}" if [ -z "$Technitium_Server" ] || [ -z "$Technitium_Token" ]; then Technitium_Server="" Technitium_Token="" _err "You don't specify Technitium Server and Token yet." _err "Please create your Token and add server address and try again." return 1 fi #save the credentials to the account conf file. _saveaccountconf_mutable Technitium_Server "$Technitium_Server" _saveaccountconf_mutable Technitium_Token "$Technitium_Token" }