You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/usr/bin/env sh
# #ZM_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" # #https://zonomi.com dns api
ZM_Api="https://zonomi.com/app/dns/dyndns.jsp"
######## Public functions #####################
#Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" dns_zonomi_add() { fulldomain=$1 txtvalue=$2
ZM_Key="${ZM_Key:-$(_readaccountconf_mutable ZM_Key)}"
if [ -z "$ZM_Key" ]; then ZM_Key="" _err "You don't specify zonomi api key yet." _err "Please create your key and try again." return 1 fi
#save the api key to the account conf file. _saveaccountconf_mutable ZM_Key "$ZM_Key"
_info "Get existing txt records for $fulldomain" if ! _zm_request "action=QUERY&name=$fulldomain"; then _err "error" return 1 fi if _contains "$response" "<record"; then _debug "get and update records" _qstr="action[1]=SET&type[1]=TXT&name[1]=$fulldomain&value[1]=$txtvalue" _qindex=2; for t in $(echo "$response" | tr -d "\r\n" | _egrep_o '<action.*</action>' | tr "<" "\n" | grep record | grep 'type="TXT"' | cut -d '"' -f 6); do _debug2 t "$t" _qstr="$_qstr&action[$_qindex]=SET&type[$_qindex]=TXT&name[$_qindex]=$fulldomain&value[$_qindex]=$t" _qindex="$(_math "$_qindex" + 1)" done _zm_request "$_qstr" else _debug "Just add record" _zm_request "action=SET&type=TXT&name=$fulldomain&value=$txtvalue" fi
}
#fulldomain txtvalue dns_zonomi_rm() { fulldomain=$1 txtvalue=$2
ZM_Key="${ZM_Key:-$(_readaccountconf_mutable ZM_Key)}" if [ -z "$ZM_Key" ]; then ZM_Key="" _err "You don't specify zonomi api key yet." _err "Please create your key and try again." return 1 fi
_zm_request "action=DELETE&type=TXT&name=$fulldomain"
}
#################### Private functions below ################################## #qstr _zm_request() { qstr="$1"
_debug2 "action" "$action" _debug2 "qstr" "$qstr"
_zm_url="$ZM_Api?api_key=$ZM_Key&$qstr" _debug2 "_zm_url" "$_zm_url" response="$(_get "$_zm_url")"
if [ "$?" != "0" ]; then _err "error $ep" return 1 fi _debug2 response "$response" _contains "$response" "<is_ok>OK:" }
|