_debug "Add TXT record $fulldomain with value '$txtvalue'"
value="$(printf '%s' "$txtvalue" | _url_encode)"
- url="https://management.1984hosting.com/domains/entry/"
+ url="https://1984.hosting/domains/entry/"
postdata="entry=new"
postdata="$postdata&type=TXT"
- postdata="$postdata&ttl=3600"
+ postdata="$postdata&ttl=900"
postdata="$postdata&zone=$_domain"
postdata="$postdata&host=$_sub_domain"
postdata="$postdata&rdata=%22$value%22"
if _contains "$response" '"haserrors": true'; then
_err "1984Hosting failed to add TXT record for $_sub_domain bad RC from _post"
return 1
- elif _contains "$response" "<html>"; then
+ elif _contains "$response" "html>"; then
_err "1984Hosting failed to add TXT record for $_sub_domain. Check $HTTP_HEADER file"
return 1
elif _contains "$response" '"auth": false'; then
fi
_debug _sub_domain "$_sub_domain"
_debug _domain "$_domain"
-
_debug "Delete $fulldomain TXT record"
- url="https://management.1984hosting.com/domains"
- _htmlget "$url" "$_domain"
- _debug2 _response "$_response"
- zone_id="$(echo "$_response" | _egrep_o 'zone\/[0-9]+')"
- _debug2 zone_id "$zone_id"
- if [ -z "$zone_id" ]; then
- _err "Error getting zone_id for $1"
+ url="https://1984.hosting/domains"
+ if ! _get_zone_id "$url" "$_domain"; then
+ _err "invalid zone" "$_domain"
return 1
fi
- _htmlget "$url/$zone_id" "$_sub_domain"
+ _htmlget "$url/$_zone_id" "$txtvalue"
_debug2 _response "$_response"
entry_id="$(echo "$_response" | _egrep_o 'entry_[0-9]+' | sed 's/entry_//')"
_debug2 entry_id "$entry_id"
_1984hosting_login() {
if ! _check_credentials; then return 1; fi
- if _check_cookie; then
+ if _check_cookies; then
_debug "Already logged in"
return 0
fi
_debug "Login to 1984Hosting as user $One984HOSTING_Username"
username=$(printf '%s' "$One984HOSTING_Username" | _url_encode)
password=$(printf '%s' "$One984HOSTING_Password" | _url_encode)
- url="https://management.1984hosting.com/accounts/checkuserauth/"
+ url="https://1984.hosting/accounts/checkuserauth/"
- response="$(_post "username=$username&password=$password&otpkey=" "$url")"
+ response="$(_post "username=$username&password=$password&otpkey=" $url)"
response="$(echo "$response" | _normalizeJson)"
_debug2 response "$response"
if _contains "$response" '"loggedin": true'; then
- One984HOSTING_COOKIE="$(grep -i '^set-cookie:' "$HTTP_HEADER" | _tail_n 1 | _egrep_o 'sessionid=[^;]*;' | tr -d ';')"
- export One984HOSTING_COOKIE
- _saveaccountconf_mutable One984HOSTING_COOKIE "$One984HOSTING_COOKIE"
+ One984HOSTING_SESSIONID_COOKIE="$(grep -i '^set-cookie:' "$HTTP_HEADER" | _egrep_o 'sessionid=[^;]*;' | tr -d ';')"
+ One984HOSTING_CSRFTOKEN_COOKIE="$(grep -i '^set-cookie:' "$HTTP_HEADER" | _egrep_o 'csrftoken=[^;]*;' | tr -d ';')"
+ export One984HOSTING_SESSIONID_COOKIE
+ export One984HOSTING_CSRFTOKEN_COOKIE
+ _saveaccountconf_mutable One984HOSTING_SESSIONID_COOKIE "$One984HOSTING_SESSIONID_COOKIE"
+ _saveaccountconf_mutable One984HOSTING_CSRFTOKEN_COOKIE "$One984HOSTING_CSRFTOKEN_COOKIE"
return 0
fi
return 1
return 0
}
-_check_cookie() {
- One984HOSTING_COOKIE="${One984HOSTING_COOKIE:-$(_readaccountconf_mutable One984HOSTING_COOKIE)}"
- if [ -z "$One984HOSTING_COOKIE" ]; then
- _debug "No cached cookie found"
+_check_cookies() {
+ One984HOSTING_SESSIONID_COOKIE="${One984HOSTING_SESSIONID_COOKIE:-$(_readaccountconf_mutable One984HOSTING_SESSIONID_COOKIE)}"
+ One984HOSTING_CSRFTOKEN_COOKIE="${One984HOSTING_CSRFTOKEN_COOKIE:-$(_readaccountconf_mutable One984HOSTING_CSRFTOKEN_COOKIE)}"
+ if [ -z "$One984HOSTING_SESSIONID_COOKIE" ] || [ -z "$One984HOSTING_CSRFTOKEN_COOKIE" ]; then
+ _debug "No cached cookie(s) found"
return 1
fi
- _authget "https://management.1984hosting.com/accounts/loginstatus/"
- response="$(echo "$_response" | _normalizeJson)"
+ _authget "https://1984.hosting/accounts/loginstatus/"
if _contains "$response" '"ok": true'; then
- _debug "Cached cookie still valid"
+ _debug "Cached cookies still valid"
return 0
fi
- _debug "Cached cookie no longer valid"
- One984HOSTING_COOKIE=""
- _saveaccountconf_mutable One984HOSTING_COOKIE "$One984HOSTING_COOKIE"
+ _debug "Cached cookies no longer valid"
+ One984HOSTING_SESSIONID_COOKIE=""
+ One984HOSTING_CSRFTOKEN_COOKIE=""
+ _saveaccountconf_mutable One984HOSTING_SESSIONID_COOKIE "$One984HOSTING_SESSIONID_COOKIE"
+ _saveaccountconf_mutable One984HOSTING_CSRFTOKEN_COOKIE "$One984HOSTING_CSRFTOKEN_COOKIE"
return 1
}
# _domain=domain.com
_get_root() {
domain="$1"
- i=2
+ i=1
p=1
while true; do
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
return 1
fi
- _authget "https://management.1984hosting.com/domains/soacheck/?zone=$h&nameserver=ns0.1984.is."
+ _authget "https://1984.hosting/domains/soacheck/?zone=$h&nameserver=ns0.1984.is."
if _contains "$_response" "serial" && ! _contains "$_response" "null"; then
_sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p)
_domain="$h"
return 1
}
+#usage: _get_zone_id url domain.com
+#returns zone id for domain.com
+_get_zone_id() {
+ url=$1
+ domain=$2
+ _htmlget "$url" "$domain"
+ _debug2 _response "$_response"
+ _zone_id="$(echo "$_response" | _egrep_o 'zone\/[0-9]+' | _head_n 1)"
+ _debug2 _zone_id "$_zone_id"
+ if [ -z "$_zone_id" ]; then
+ _err "Error getting _zone_id for $2"
+ return 1
+ fi
+ return 0
+}
+
# add extra headers to request
_authget() {
- export _H1="Cookie: $One984HOSTING_COOKIE"
- _response=$(_get "$1")
+ export _H1="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE;$One984HOSTING_SESSIONID_COOKIE"
+ _response=$(_get "$1" | _normalizeJson)
+ _debug2 _response "$_response"
}
# truncate huge HTML response
# echo: Argument list too long
_htmlget() {
- export _H1="Cookie: $One984HOSTING_COOKIE"
- _response=$(_get "$1" | grep "$2" | _head_n 1)
+ export _H1="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE;$One984HOSTING_SESSIONID_COOKIE"
+ _response=$(_get "$1" | grep "$2")
+ if _contains "$_response" "@$2"; then
+ _response=$(echo "$_response" | grep -v "[@]" | _head_n 1)
+ fi
}
# add extra headers to request
_authpost() {
- export _H1="Cookie: $One984HOSTING_COOKIE"
+ url="https://1984.hosting/domains"
+ _get_zone_id "$url" "$_domain"
+ csrf_header="$(echo "$One984HOSTING_CSRFTOKEN_COOKIE" | _egrep_o "=[^=][0-9a-zA-Z]*" | tr -d "=")"
+ export _H1="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE;$One984HOSTING_SESSIONID_COOKIE"
+ export _H2="Referer: https://1984.hosting/domains/$_zone_id"
+ export _H3="X-CSRFToken: $csrf_header"
_response=$(_post "$1" "$2")
}