From be71ae4650df8e0e3e5fc2f77624d88381495cf5 Mon Sep 17 00:00:00 2001 From: lc Date: Wed, 23 Nov 2016 12:10:06 +0800 Subject: [PATCH] fix bug --- dnsapi/dns_ali.sh | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/dnsapi/dns_ali.sh b/dnsapi/dns_ali.sh index 3b4c94d2..c7758e20 100644 --- a/dnsapi/dns_ali.sh +++ b/dnsapi/dns_ali.sh @@ -26,9 +26,7 @@ dns_ali_add() { return 1 fi - _add_record_query "$_domain" "$_sub_domain" "$txtvalue" - - _ali_rest + _add_record_query "$_domain" "$_sub_domain" "$txtvalue" && _ali_rest "Add record" } dns_ali_rm() { @@ -50,7 +48,7 @@ _get_root() { fi _describe_records_query "$h" - if ! _ali_rest "ignore"; then + if ! _ali_rest "Get root" "ignore"; then return 1 fi @@ -73,11 +71,11 @@ _ali_rest() { url="$Ali_API?$query&Signature=$signature" if ! response="$(_get "$url")"; then - _err "error!" + _err "Error <$1>" return 1 fi - if [ -z "$1" ]; then + if [ -z "$2" ]; then message="$(printf "%s" "$response" | _egrep_o "\"Message\":\"[^\"]*\"" | cut -d : -f 2 | tr -d \")" if [ -n "$message" ]; then _err "$message" @@ -90,17 +88,24 @@ _ali_rest() { } _ali_urlencode() { - printf "%s" "$1" \ - | sed -e 's/\(.\)/\1\n/g' \ - | while read -r char; do - case $char in [a-zA-Z0-9.~_-]) - printf "%s" "$char" + _str="$1" + _str_len=${#_str} + _h_i=1 + while [ "$_h_i" -le "$_str_len" ]; do + _str_c="$(printf "%s" "$_str" | cut -c "$_h_i")" + case $_str_c in [a-zA-Z0-9.~_-]) + printf "%s" "$_str_c" ;; *) - printf "%%%02X" "'$char" + printf "%%%02X" "'$_str_c" ;; - esac - done + esac + _h_i="$(_math "$_h_i" + 1)" + done +} + +_ali_nonce() { + tr