mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-11-04 04:17:40 +00:00 
			
		
		
		
	fix gd
This commit is contained in:
		
							parent
							
								
									a6b6e31cda
								
							
						
					
					
						commit
						c6f5c7f1a3
					
				@ -15,6 +15,8 @@ dns_gd_add() {
 | 
			
		||||
  fulldomain=$1
 | 
			
		||||
  txtvalue=$2
 | 
			
		||||
 | 
			
		||||
  GD_Key="${GD_Key:-$(_readaccountconf_mutable GD_Key)}"
 | 
			
		||||
  GD_Secret="${GD_Secret:-$(_readaccountconf_mutable GD_Secret)}"
 | 
			
		||||
  if [ -z "$GD_Key" ] || [ -z "$GD_Secret" ]; then
 | 
			
		||||
    GD_Key=""
 | 
			
		||||
    GD_Secret=""
 | 
			
		||||
@ -24,8 +26,8 @@ dns_gd_add() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  #save the api key and email to the account conf file.
 | 
			
		||||
  _saveaccountconf GD_Key "$GD_Key"
 | 
			
		||||
  _saveaccountconf GD_Secret "$GD_Secret"
 | 
			
		||||
  _saveaccountconf_mutable GD_Key "$GD_Key"
 | 
			
		||||
  _saveaccountconf_mutable GD_Secret "$GD_Secret"
 | 
			
		||||
 | 
			
		||||
  _debug "First detect the root zone"
 | 
			
		||||
  if ! _get_root "$fulldomain"; then
 | 
			
		||||
@ -36,8 +38,27 @@ dns_gd_add() {
 | 
			
		||||
  _debug _sub_domain "$_sub_domain"
 | 
			
		||||
  _debug _domain "$_domain"
 | 
			
		||||
 | 
			
		||||
  _debug "Getting existing records"
 | 
			
		||||
  if ! _gd_rest GET "domains/$_domain/records/TXT/$_sub_domain"; then
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if _contains "$response" "$txtvalue"; then
 | 
			
		||||
    _info "The record is existing, skip"
 | 
			
		||||
    return 0;
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  _add_data="{\"data\":\"$txtvalue\"}"
 | 
			
		||||
  for t in $(echo "$response" | tr '{' "\n"  | grep "\"name\":\"$_sub_domain\"" | tr ',' "\n" | grep '"data"' | cut -d : -f 2); do
 | 
			
		||||
    _debug2 t "$t"
 | 
			
		||||
    if [ "$t" ]; then
 | 
			
		||||
      _add_data="$_add_data,{\"data\":$t}"
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
  _debug2 _add_data "$_add_data"
 | 
			
		||||
 | 
			
		||||
  _info "Adding record"
 | 
			
		||||
  if _gd_rest PUT "domains/$_domain/records/TXT/$_sub_domain" "[{\"data\":\"$txtvalue\"}]"; then
 | 
			
		||||
  if _gd_rest PUT "domains/$_domain/records/TXT/$_sub_domain" "[$_add_data]"; then
 | 
			
		||||
    if [ "$response" = "{}" ]; then
 | 
			
		||||
      _info "Added, sleeping 10 seconds"
 | 
			
		||||
      _sleep 10
 | 
			
		||||
@ -56,7 +77,47 @@ dns_gd_add() {
 | 
			
		||||
#fulldomain
 | 
			
		||||
dns_gd_rm() {
 | 
			
		||||
  fulldomain=$1
 | 
			
		||||
  txtvalue=$2
 | 
			
		||||
 | 
			
		||||
  GD_Key="${GD_Key:-$(_readaccountconf_mutable GD_Key)}"
 | 
			
		||||
  GD_Secret="${GD_Secret:-$(_readaccountconf_mutable GD_Secret)}"
 | 
			
		||||
 | 
			
		||||
  _debug "First detect the root zone"
 | 
			
		||||
  if ! _get_root "$fulldomain"; then
 | 
			
		||||
    _err "invalid domain"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  _debug _sub_domain "$_sub_domain"
 | 
			
		||||
  _debug _domain "$_domain"
 | 
			
		||||
 | 
			
		||||
  _debug "Getting existing records"
 | 
			
		||||
  if ! _gd_rest GET "domains/$_domain/records/TXT/$_sub_domain"; then
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if ! _contains "$response" "$txtvalue"; then
 | 
			
		||||
    _info "The record is not existing, skip"
 | 
			
		||||
    return 0;
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  _add_data=""
 | 
			
		||||
  for t in $(echo "$response" | tr '{' "\n"  | grep "\"name\":\"$_sub_domain\"" | tr ',' "\n" | grep '"data"' | cut -d : -f 2); do
 | 
			
		||||
    _debug2 t "$t"
 | 
			
		||||
    if [ "$t" ] && [ "$t" != "\"$txtvalue\"" ]; then
 | 
			
		||||
      if [ "$_add_data" ]; then
 | 
			
		||||
        _add_data="$_add_data,{\"data\":$t}"
 | 
			
		||||
      else
 | 
			
		||||
        _add_data="{\"data\":$t}"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
  if [ -z "$_add_data" ]; then
 | 
			
		||||
    _add_data="{\"data\":\"\"}"
 | 
			
		||||
  fi
 | 
			
		||||
  _debug2 _add_data "$_add_data"
 | 
			
		||||
 | 
			
		||||
  _gd_rest PUT "domains/$_domain/records/TXT/$_sub_domain" "[$_add_data]";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
####################  Private functions below ##################################
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user