Merge 2f8fb360aa into fe4113d623
This commit is contained in:
commit
d0dd699e79
@ -131,34 +131,41 @@ _Linode_API() {
|
|||||||
# _domain=domain.com
|
# _domain=domain.com
|
||||||
# _domain_id=12345
|
# _domain_id=12345
|
||||||
_get_root() {
|
_get_root() {
|
||||||
domain=$1
|
full_host_str="$1"
|
||||||
|
|
||||||
i=2
|
i=2
|
||||||
p=1
|
p=1
|
||||||
|
|
||||||
if _rest GET; then
|
|
||||||
response="$(echo "$response" | tr -d "\n" | tr '{' "|" | sed 's/|/&{/g' | tr "|" "\n")"
|
|
||||||
while true; do
|
while true; do
|
||||||
h=$(printf "%s" "$domain" | cut -d . -f $i-100)
|
# loop through the received string (e.g. _acme-challenge.sub3.sub2.sub1.domain.tld),
|
||||||
|
# starting from the lowest subdomain, and check if it's a hosted domain
|
||||||
|
h=$(printf "%s" "$full_host_str" | cut -d . -f $i-100)
|
||||||
_debug h "$h"
|
_debug h "$h"
|
||||||
if [ -z "$h" ]; then
|
if [ -z "$h" ]; then
|
||||||
#not valid
|
#not valid
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
_debug "Querying Linode APIv4 for hosted zone: $h"
|
||||||
|
if _H4="X-Filter: {\"domain\":\"$h\"}" _rest GET; then
|
||||||
|
_debug "Got response from API: $response"
|
||||||
|
response="$(echo "$response" | tr -d "\n" | tr '{' "|" | sed 's/|/&{/g' | tr "|" "\n")"
|
||||||
hostedzone="$(echo "$response" | _egrep_o "\{.*\"domain\": *\"$h\".*}")"
|
hostedzone="$(echo "$response" | _egrep_o "\{.*\"domain\": *\"$h\".*}")"
|
||||||
if [ "$hostedzone" ]; then
|
if [ "$hostedzone" ]; then
|
||||||
_domain_id=$(printf "%s\n" "$hostedzone" | _egrep_o "\"id\": *[0-9]+" | _head_n 1 | cut -d : -f 2 | tr -d \ )
|
_domain_id=$(printf "%s\n" "$hostedzone" | _egrep_o "\"id\": *[0-9]+" | _head_n 1 | cut -d : -f 2 | tr -d \ )
|
||||||
|
_debug "Found domain hosted on Linode DNS. Zone: $h, id: $_domain_id"
|
||||||
if [ "$_domain_id" ]; then
|
if [ "$_domain_id" ]; then
|
||||||
_sub_domain=$(printf "%s" "$domain" | cut -d . -f 1-$p)
|
_sub_domain=$(printf "%s" "$full_host_str" | cut -d . -f 1-$p)
|
||||||
_domain=$h
|
_domain=$h
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
p=$i
|
p=$i
|
||||||
i=$(_math "$i" + 1)
|
i=$(_math "$i" + 1)
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,6 +181,7 @@ _rest() {
|
|||||||
export _H1="Accept: application/json"
|
export _H1="Accept: application/json"
|
||||||
export _H2="Content-Type: application/json"
|
export _H2="Content-Type: application/json"
|
||||||
export _H3="Authorization: Bearer $LINODE_V4_API_KEY"
|
export _H3="Authorization: Bearer $LINODE_V4_API_KEY"
|
||||||
|
export _H4 # used to query for the root domain on _get_root()
|
||||||
|
|
||||||
if [ "$mtd" != "GET" ]; then
|
if [ "$mtd" != "GET" ]; then
|
||||||
# both POST and DELETE.
|
# both POST and DELETE.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user