|
|
@ -6,10 +6,8 @@ |
|
|
|
# |
|
|
|
#DP_Key="sADDsdasdgdsf" |
|
|
|
|
|
|
|
|
|
|
|
DP_Api="https://dnsapi.cn" |
|
|
|
|
|
|
|
|
|
|
|
#REST_API |
|
|
|
######## Public functions ##################### |
|
|
|
|
|
|
@ -30,14 +28,13 @@ dns_dp_add() { |
|
|
|
_saveaccountconf DP_Id "$DP_Id" |
|
|
|
_saveaccountconf DP_Key "$DP_Key" |
|
|
|
|
|
|
|
|
|
|
|
_debug "First detect the root zone" |
|
|
|
if ! _get_root $fulldomain ; then |
|
|
|
if ! _get_root $fulldomain; then |
|
|
|
_err "invalid domain" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
existing_records $_domain $_sub_domain |
|
|
|
existing_records $_domain $_sub_domain |
|
|
|
_debug count "$count" |
|
|
|
if [ "$?" != "0" ]; then |
|
|
|
_err "Error get existing records." |
|
|
@ -51,15 +48,12 @@ dns_dp_add() { |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#fulldomain |
|
|
|
dns_dp_rm() { |
|
|
|
fulldomain=$1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#usage: root sub |
|
|
|
#return if the sub record already exists. |
|
|
|
#echos the existing records count. |
|
|
@ -70,15 +64,15 @@ existing_records() { |
|
|
|
sub=$2 |
|
|
|
|
|
|
|
if ! _rest POST "Record.List" "login_token=$DP_Id,$DP_Key&domain_id=$_domain_id&sub_domain=$_sub_domain"; then |
|
|
|
return 1 |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if printf "$response" | grep 'No records' ; then |
|
|
|
count=0; |
|
|
|
return 0 |
|
|
|
if printf "$response" | grep 'No records'; then |
|
|
|
count=0 |
|
|
|
return 0 |
|
|
|
fi |
|
|
|
|
|
|
|
if printf "$response" | grep "Action completed successful" >/dev/null ; then |
|
|
|
if printf "$response" | grep "Action completed successful" >/dev/null; then |
|
|
|
count=$(printf "$response" | grep '<type>TXT</type>' | wc -l) |
|
|
|
record_id=$(printf "$response" | grep '^<id>' | tail -1 | cut -d '>' -f 2 | cut -d '<' -f 1) |
|
|
|
return 0 |
|
|
@ -87,7 +81,6 @@ existing_records() { |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
count=0 |
|
|
|
} |
|
|
|
|
|
|
@ -105,12 +98,11 @@ add_record() { |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if printf "$response" | grep "Action completed successful" ; then |
|
|
|
if printf "$response" | grep "Action completed successful"; then |
|
|
|
|
|
|
|
return 0 |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
return 1 #error |
|
|
|
} |
|
|
|
|
|
|
@ -128,7 +120,7 @@ update_record() { |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if printf "$response" | grep "Action completed successful" ; then |
|
|
|
if printf "$response" | grep "Action completed successful"; then |
|
|
|
|
|
|
|
return 0 |
|
|
|
fi |
|
|
@ -136,9 +128,6 @@ update_record() { |
|
|
|
return 1 #error |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#################### Private functions bellow ################################## |
|
|
|
#_acme-challenge.www.domain.com |
|
|
|
#returns |
|
|
@ -153,14 +142,14 @@ _get_root() { |
|
|
|
h=$(printf $domain | cut -d . -f $i-100) |
|
|
|
if [ -z "$h" ]; then |
|
|
|
#not valid |
|
|
|
return 1; |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if ! _rest POST "Domain.Info" "login_token=$DP_Id,$DP_Key&format=json&domain=$h"; then |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if printf "$response" | grep "Action completed successful" >/dev/null ; then |
|
|
|
if printf "$response" | grep "Action completed successful" >/dev/null; then |
|
|
|
_domain_id=$(printf "%s\n" "$response" | _egrep_o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") |
|
|
|
_debug _domain_id "$_domain_id" |
|
|
|
if [ "$_domain_id" ]; then |
|
|
@ -178,7 +167,6 @@ _get_root() { |
|
|
|
return 1 |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#Usage: method URI data |
|
|
|
_rest() { |
|
|
|
m=$1 |
|
|
@ -203,5 +191,3 @@ _rest() { |
|
|
|
_debug2 response "$response" |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
|