|
@ -76,6 +76,22 @@ dns_namecheap_rm() { |
|
|
# _sub_domain=_acme-challenge.www |
|
|
# _sub_domain=_acme-challenge.www |
|
|
# _domain=domain.com |
|
|
# _domain=domain.com |
|
|
_get_root() { |
|
|
_get_root() { |
|
|
|
|
|
fulldomain=$1 |
|
|
|
|
|
|
|
|
|
|
|
if ! _get_root_by_getList "$fulldomain"; then |
|
|
|
|
|
_debug "Failed domain lookup via domains.getList api call. Trying domain lookup via domains.dns.getHosts api." |
|
|
|
|
|
# The above "getList" api will only return hosts *owned* by the calling user. However, if the calling |
|
|
|
|
|
# user is not the owner, but still has administrative rights, we must query the getHosts api directly. |
|
|
|
|
|
# See this comment and the official namecheap response: http://disq.us/p/1q6v9x9 |
|
|
|
|
|
if ! _get_root_by_getHosts "$fulldomain"; then |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
return 0 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_get_root_by_getList() { |
|
|
domain=$1 |
|
|
domain=$1 |
|
|
|
|
|
|
|
|
if ! _namecheap_post "namecheap.domains.getList"; then |
|
|
if ! _namecheap_post "namecheap.domains.getList"; then |
|
@ -94,6 +110,10 @@ _get_root() { |
|
|
#not valid |
|
|
#not valid |
|
|
return 1 |
|
|
return 1 |
|
|
fi |
|
|
fi |
|
|
|
|
|
if ! _contains "$h" "\\."; then |
|
|
|
|
|
#not valid |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
if ! _contains "$response" "$h"; then |
|
|
if ! _contains "$response" "$h"; then |
|
|
_debug "$h not found" |
|
|
_debug "$h not found" |
|
@ -108,6 +128,31 @@ _get_root() { |
|
|
return 1 |
|
|
return 1 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_get_root_by_getHosts() { |
|
|
|
|
|
i=100 |
|
|
|
|
|
p=99 |
|
|
|
|
|
|
|
|
|
|
|
while [ $p -ne 0 ]; do |
|
|
|
|
|
|
|
|
|
|
|
h=$(printf "%s" "$1" | cut -d . -f $i-100) |
|
|
|
|
|
if [ -n "$h" ]; then |
|
|
|
|
|
if _contains "$h" "\\."; then |
|
|
|
|
|
_debug h "$h" |
|
|
|
|
|
if _namecheap_set_tld_sld "$h"; then |
|
|
|
|
|
_sub_domain=$(printf "%s" "$1" | cut -d . -f 1-$p) |
|
|
|
|
|
_domain="$h" |
|
|
|
|
|
return 0 |
|
|
|
|
|
else |
|
|
|
|
|
_debug "$h not found" |
|
|
|
|
|
fi |
|
|
|
|
|
fi |
|
|
|
|
|
fi |
|
|
|
|
|
i="$p" |
|
|
|
|
|
p=$(_math "$p" - 1) |
|
|
|
|
|
done |
|
|
|
|
|
return 1 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_namecheap_set_publicip() { |
|
|
_namecheap_set_publicip() { |
|
|
|
|
|
|
|
|
if [ -z "$NAMECHEAP_SOURCEIP" ]; then |
|
|
if [ -z "$NAMECHEAP_SOURCEIP" ]; then |
|
|