|
|
@ -69,13 +69,16 @@ dns_cyon_rm() { |
|
|
|
|
|
|
|
_load_credentials() { |
|
|
|
# Convert loaded password to/from base64 as needed. |
|
|
|
if [ "${cyon_password_b64}" ] ; then |
|
|
|
if [ "${cyon_password_b64}" ]; then |
|
|
|
cyon_password="$(echo "${cyon_password_b64}" | _dbase64)" |
|
|
|
elif [ "${cyon_password}" ] ; then |
|
|
|
elif [ "${cyon_password}" ]; then |
|
|
|
cyon_password_b64="$(echo "${cyon_password}" | _base64)" |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -z "${cyon_username}" ] || [ -z "${cyon_password}" ] ; then |
|
|
|
if [ -z "${cyon_username}" ] || [ -z "${cyon_password}" ]; then |
|
|
|
cyon_username="" |
|
|
|
cyon_password="" |
|
|
|
cyon_otp_secret="" |
|
|
|
_err "" |
|
|
|
_err "You haven't set your cyon.ch login credentials yet." |
|
|
|
_err "Please set the required cyon environment variables." |
|
|
@ -87,7 +90,7 @@ _load_credentials() { |
|
|
|
_debug "Save credentials to account.conf" |
|
|
|
_saveaccountconf cyon_username "${cyon_username}" |
|
|
|
_saveaccountconf cyon_password_b64 "$cyon_password_b64" |
|
|
|
if [ ! -z "${cyon_otp_secret}" ] ; then |
|
|
|
if [ ! -z "${cyon_otp_secret}" ]; then |
|
|
|
_saveaccountconf cyon_otp_secret "$cyon_otp_secret" |
|
|
|
fi |
|
|
|
} |
|
|
@ -105,7 +108,7 @@ _load_parameters() { |
|
|
|
|
|
|
|
# Special case for IDNs, as cyon needs a domain environment change, |
|
|
|
# which uses the "pretty" instead of the punycode version. |
|
|
|
if _is_idn "$1" ; then |
|
|
|
if _is_idn "$1"; then |
|
|
|
if ! _exists idn; then |
|
|
|
_fail "Please install idn to process IDN names." |
|
|
|
fi |
|
|
@ -168,16 +171,13 @@ _login() { |
|
|
|
|
|
|
|
_info " success" |
|
|
|
|
|
|
|
|
|
|
|
# NECESSARY!! Load the main page after login, before the OTP check. |
|
|
|
curl "https://my.cyon.ch/" -s --compressed -b "${cookiejar}" >/dev/null |
|
|
|
|
|
|
|
|
|
|
|
# todo: instead of just checking if the env variable is defined, check if we actually need to do a 2FA auth request. |
|
|
|
|
|
|
|
|
|
|
|
# 2FA authentication with OTP? |
|
|
|
if [ ! -z "${cyon_otp_secret}" ] ; then |
|
|
|
if [ ! -z "${cyon_otp_secret}" ]; then |
|
|
|
_info " - Authorising with OTP code..." |
|
|
|
|
|
|
|
if ! _exists oathtool; then |
|
|
@ -298,9 +298,8 @@ _delete_txt() { |
|
|
|
|
|
|
|
_dns_entry_num=0 |
|
|
|
|
|
|
|
echo "${_dns_entries}" | while read -r _hash _identifier |
|
|
|
do |
|
|
|
((_dns_entry_num++)) |
|
|
|
echo "${_dns_entries}" | while read -r _hash _identifier; do |
|
|
|
_dns_entry_num=$((_dns_entry_num + 1)) |
|
|
|
|
|
|
|
delete_txt_response=$(curl \ |
|
|
|
"https://my.cyon.ch/domain/dnseditor/delete-record-async" \ |
|
|
@ -335,7 +334,7 @@ _delete_txt() { |
|
|
|
|
|
|
|
_check_2fa_miss() { |
|
|
|
# Did we miss the 2FA? |
|
|
|
if [[ "$1" =~ "multi_factor_form" ]] ; then |
|
|
|
if test "${1#*multi_factor_form}" != "$1"; then |
|
|
|
_fail " Missed OTP authentication!" |
|
|
|
fi |
|
|
|
} |
|
|
|