|
@ -1,34 +1,19 @@ |
|
|
#!/usr/bin/env sh |
|
|
#!/usr/bin/env sh |
|
|
#Author StefanAbl |
|
|
#Author StefanAbl |
|
|
#Usage specify a private keyfile to use with dynv6 'export KEY="path/to/keyfile"' |
|
|
#Usage specify a private keyfile to use with dynv6 'export KEY="path/to/keyfile"' |
|
|
|
|
|
#or use the HTTP REST API by by specifying a token 'export DYNV6_TOKEN="value" |
|
|
#if no keyfile is specified, you will be asked if you want to create one in /home/$USER/.ssh/dynv6 and /home/$USER/.ssh/dynv6.pub |
|
|
#if no keyfile is specified, you will be asked if you want to create one in /home/$USER/.ssh/dynv6 and /home/$USER/.ssh/dynv6.pub |
|
|
|
|
|
|
|
|
|
|
|
dynv6_api="https://dynv6.com/api/v2" |
|
|
######## Public functions ##################### |
|
|
######## Public functions ##################### |
|
|
# Please Read this guide first: https://github.com/Neilpang/acme.sh/wiki/DNS-API-Dev-Guide |
|
|
# Please Read this guide first: https://github.com/Neilpang/acme.sh/wiki/DNS-API-Dev-Guide |
|
|
#Usage: dns_myapi_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
|
|
|
|
|
|
|
|
#Usage: dns_dynv6_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
|
|
dns_dynv6_add() { |
|
|
dns_dynv6_add() { |
|
|
fulldomain=$1 |
|
|
fulldomain=$1 |
|
|
txtvalue=$2 |
|
|
txtvalue=$2 |
|
|
_info "Using dynv6 api" |
|
|
_info "Using dynv6 api" |
|
|
_debug fulldomain "$fulldomain" |
|
|
_debug fulldomain "$fulldomain" |
|
|
_debug txtvalue "$txtvalue" |
|
|
_debug txtvalue "$txtvalue" |
|
|
<<<<<<< HEAD |
|
|
|
|
|
_get_keyfile |
|
|
|
|
|
_info "using keyfile $dynv6_keyfile" |
|
|
|
|
|
_your_hosts="$(ssh -i "$dynv6_keyfile" api@dynv6.com hosts)" |
|
|
|
|
|
if ! _get_domain "$fulldomain" "$_your_hosts"; then |
|
|
|
|
|
_err "Host not found on your account" |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
_debug "found host on your account" |
|
|
|
|
|
returnval="$(ssh -i "$dynv6_keyfile" api@dynv6.com hosts \""$_host"\" records set \""$_record"\" txt data \""$txtvalue"\")" |
|
|
|
|
|
_debug "Dynv6 returend this after record was added: $returnval" |
|
|
|
|
|
if _contains "$returnval" "created"; then |
|
|
|
|
|
return 0 |
|
|
|
|
|
elif _contains "$returnval" "updated"; then |
|
|
|
|
|
return 0 |
|
|
|
|
|
else |
|
|
|
|
|
_err "Something went wrong! it does not seem like the record was added succesfully" |
|
|
|
|
|
======= |
|
|
|
|
|
_get_authentication |
|
|
_get_authentication |
|
|
if [ "$dynv6_token" ]; then |
|
|
if [ "$dynv6_token" ]; then |
|
|
_dns_dynv6_add_http |
|
|
_dns_dynv6_add_http |
|
@ -51,7 +36,6 @@ dns_dynv6_add() { |
|
|
_err "Something went wrong! it does not seem like the record was added successfully" |
|
|
_err "Something went wrong! it does not seem like the record was added successfully" |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
>>>>>>> formatting |
|
|
|
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
return 1 |
|
|
return 1 |
|
@ -61,17 +45,9 @@ dns_dynv6_add() { |
|
|
dns_dynv6_rm() { |
|
|
dns_dynv6_rm() { |
|
|
fulldomain=$1 |
|
|
fulldomain=$1 |
|
|
txtvalue=$2 |
|
|
txtvalue=$2 |
|
|
_info "Using dynv6 api" |
|
|
|
|
|
|
|
|
_info "Using dynv6 API" |
|
|
_debug fulldomain "$fulldomain" |
|
|
_debug fulldomain "$fulldomain" |
|
|
_debug txtvalue "$txtvalue" |
|
|
_debug txtvalue "$txtvalue" |
|
|
<<<<<<< HEAD |
|
|
|
|
|
_get_keyfile |
|
|
|
|
|
_info "using keyfile $dynv6_keyfile" |
|
|
|
|
|
_your_hosts="$(ssh -i "$dynv6_keyfile" api@dynv6.com hosts)" |
|
|
|
|
|
if ! _get_domain "$fulldomain" "$_your_hosts"; then |
|
|
|
|
|
_err "Host not found on your account" |
|
|
|
|
|
return 1 |
|
|
|
|
|
======= |
|
|
|
|
|
_get_authentication |
|
|
_get_authentication |
|
|
if [ "$dynv6_token" ]; then |
|
|
if [ "$dynv6_token" ]; then |
|
|
_dns_dynv6_rm_http |
|
|
_dns_dynv6_rm_http |
|
@ -86,16 +62,12 @@ dns_dynv6_rm() { |
|
|
_debug "found host on your account" |
|
|
_debug "found host on your account" |
|
|
_info "$(ssh -i "$dynv6_keyfile" api@dynv6.com hosts "\"$_host\"" records del "\"$_record\"" txt)" |
|
|
_info "$(ssh -i "$dynv6_keyfile" api@dynv6.com hosts "\"$_host\"" records del "\"$_record\"" txt)" |
|
|
return 0 |
|
|
return 0 |
|
|
>>>>>>> formatting |
|
|
|
|
|
fi |
|
|
fi |
|
|
_debug "found host on your account" |
|
|
|
|
|
_info "$(ssh -i "$dynv6_keyfile" api@dynv6.com hosts "\"$_host\"" records del "\"$_record\"" txt)" |
|
|
|
|
|
return 0 |
|
|
|
|
|
} |
|
|
} |
|
|
#################### Private functions below ################################## |
|
|
#################### Private functions below ################################## |
|
|
#Usage: No Input required |
|
|
#Usage: No Input required |
|
|
#returns |
|
|
#returns |
|
|
#dynv6_keyfile the path to the new keyfile that has been generated |
|
|
|
|
|
|
|
|
#dynv6_keyfile the path to the new key file that has been generated |
|
|
_generate_new_key() { |
|
|
_generate_new_key() { |
|
|
dynv6_keyfile="$(eval echo ~"$USER")/.ssh/dynv6" |
|
|
dynv6_keyfile="$(eval echo ~"$USER")/.ssh/dynv6" |
|
|
_info "Path to key file used: $dynv6_keyfile" |
|
|
_info "Path to key file used: $dynv6_keyfile" |
|
@ -136,25 +108,6 @@ _get_domain() { |
|
|
# Usage: No input required |
|
|
# Usage: No input required |
|
|
#returns |
|
|
#returns |
|
|
#dynv6_keyfile path to the key that will be used |
|
|
#dynv6_keyfile path to the key that will be used |
|
|
<<<<<<< HEAD |
|
|
|
|
|
_get_keyfile() { |
|
|
|
|
|
_debug "get keyfile method called" |
|
|
|
|
|
dynv6_keyfile="${dynv6_keyfile:-$(_readaccountconf_mutable dynv6_keyfile)}" |
|
|
|
|
|
_debug "Your key is $dynv6_keyfile" |
|
|
|
|
|
if [ -z "$dynv6_keyfile" ]; then |
|
|
|
|
|
if [ -z "$KEY" ]; then |
|
|
|
|
|
_err "You did not specify a key to use with dynv6" |
|
|
|
|
|
_info "Creating new dynv6 api key to add to dynv6.com" |
|
|
|
|
|
_generate_new_key |
|
|
|
|
|
_info "Please add this key to dynv6.com $(cat "$dynv6_keyfile.pub")" |
|
|
|
|
|
_info "Hit Enter to contiue" |
|
|
|
|
|
read -r _ |
|
|
|
|
|
#save the credentials to the account conf file. |
|
|
|
|
|
else |
|
|
|
|
|
dynv6_keyfile="$KEY" |
|
|
|
|
|
fi |
|
|
|
|
|
_saveaccountconf_mutable dynv6_keyfile "$dynv6_keyfile" |
|
|
|
|
|
======= |
|
|
|
|
|
_get_authentication() { |
|
|
_get_authentication() { |
|
|
dynv6_token="${DYNV6_TOKEN:-$(_readaccountconf_mutable dynv6_token)}" |
|
|
dynv6_token="${DYNV6_TOKEN:-$(_readaccountconf_mutable dynv6_token)}" |
|
|
if [ "$dynv6_token" ]; then |
|
|
if [ "$dynv6_token" ]; then |
|
@ -321,6 +274,12 @@ _dynv6_rest() { |
|
|
response="$(_post "$data" "$dynv6_api/$ep" "" "$m")" |
|
|
response="$(_post "$data" "$dynv6_api/$ep" "" "$m")" |
|
|
else |
|
|
else |
|
|
response="$(_get "$dynv6_api/$ep")" |
|
|
response="$(_get "$dynv6_api/$ep")" |
|
|
>>>>>>> formatting |
|
|
|
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if [ "$?" != "0" ]; then |
|
|
|
|
|
_err "error $ep" |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
_debug2 response "$response" |
|
|
|
|
|
return 0 |
|
|
} |
|
|
} |