diff --git a/dnsapi/dns_namesilo.sh b/dnsapi/dns_namesilo.sh deleted file mode 100755 index dc1a4fda..00000000 --- a/dnsapi/dns_namesilo.sh +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env sh - -#Author: meowthink -#Created 01/14/2017 -#Utilize namesilo.com API to finish dns-01 verifications. - -Namesilo_API="https://www.namesilo.com/api" - -######## Public functions ##################### - -#Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" -dns_namesilo_add() { - fulldomain=$1 - txtvalue=$2 - - if [ -z "$Namesilo_Key" ]; then - Namesilo_Key="" - _err "API token for namesilo.com is missing." - _err "Please specify that in your environment variable." - return 1 - fi - - #save the api key and email to the account conf file. - _saveaccountconf Namesilo_Key "$Namesilo_Key" - - if ! _get_root "$fulldomain"; then - _err "Unable to find domain specified." - return 1 - fi - - _debug _sub_domain "$_sub_domain" - _debug _domain "$_domain" - - _debug txtvalue "$txtvalue" - if _namesilo_rest GET "dnsAddRecord?version=1&type=xml&key=$Namesilo_Key&domain=$_domain&rrtype=TXT&rrhost=$_sub_domain&rrvalue=$txtvalue"; then - retcode=$(printf "%s\n" "$response" | _egrep_o "300") - if [ "$retcode" ]; then - _info "Successfully added TXT record, ready for validation." - return 0 - else - _err "Unable to add the DNS record." - return 1 - fi - fi -} - -#Usage: fulldomain txtvalue -#Remove the txt record after validation. -dns_namesilo_rm() { - fulldomain=$1 - txtvalue=$2 - - if ! _get_root "$fulldomain"; then - _err "Unable to find domain specified." - return 1 - fi - - # Get the record id. - if _namesilo_rest GET "dnsListRecords?version=1&type=xml&key=$Namesilo_Key&domain=$_domain"; then - retcode=$(printf "%s\n" "$response" | _egrep_o "300") - if [ "$retcode" ]; then - _record_id=$(printf "%s\n" "$response" | _egrep_o "([^<]*)TXT$fulldomain" | _egrep_o "([^<]*)" | sed -r "s/([^<]*)<\/record_id>/\1/" | tail -n 1) - _debug record_id "$_record_id" - _info "Successfully retrieved the record id for ACME challenge." - else - _err "Unable to retrieve the record id." - return 1 - fi - fi - - # Remove the DNS record using record id. - if _namesilo_rest GET "dnsDeleteRecord?version=1&type=xml&key=$Namesilo_Key&domain=$_domain&rrid=$_record_id"; then - retcode=$(printf "%s\n" "$response" | _egrep_o "300") - if [ "$retcode" ]; then - _info "Successfully removed the TXT record." - return 0 - else - _err "Unable to remove the DNS record." - return 1 - fi - fi -} - -#################### Private functions below ################################## - -# _acme-challenge.www.domain.com -# returns -# _sub_domain=_acme-challenge.www -# _domain=domain.com -_get_root() { - domain=$1 - i=2 - p=1 - - if ! _namesilo_rest GET "listDomains?version=1&type=xml&key=$Namesilo_Key"; then - return 1 - fi - - # Need to exclude the last field (tld) - numfields=$(echo "$domain" | _egrep_o "\." | wc -l) - while [ $i -le "$numfields" ]; do - host=$(printf "%s" "$domain" | cut -d . -f $i-100) - _debug host "$host" - if [ -z "$host" ]; then - return 1 - fi - - if _contains "$response" "$host"; then - _sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p) - _domain="$host" - return 0 - fi - p=$i - i=$(_math "$i" + 1) - done - return 1 -} - -_namesilo_rest() { - method=$1 - param=$2 - data=$3 - - if [ "$method" != "GET" ]; then - response="$(_post "$data" "$Namesilo_API/$param" "" "$method")" - else - response="$(_get "$Namesilo_API/$param")" - fi - - if [ "$?" != "0" ]; then - _err "error $param" - return 1 - fi - - _debug2 response "$response" - return 0 -}