Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
7917aa2a
Commit
7917aa2a
authored
Dec 02, 2018
by
neilpang
Browse files
fix
https://github.com/Neilpang/acme.sh/issues/1941
cache dns zones response
parent
8ec1ea7b
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_cf.sh
View file @
7917aa2a
...
@@ -34,6 +34,9 @@ dns_cf_add() {
...
@@ -34,6 +34,9 @@ dns_cf_add() {
_saveaccountconf_mutable CF_Key
"
$CF_Key
"
_saveaccountconf_mutable CF_Key
"
$CF_Key
"
_saveaccountconf_mutable CF_Email
"
$CF_Email
"
_saveaccountconf_mutable CF_Email
"
$CF_Email
"
_DOMAIN_CF_ZONES_CACHE_NAME_
=
"
$(
echo
"
${
CF_Email
}
_CF_ZONES_"
|
tr
'@.'
'__'
)
"
_cleardomainconf
"
$_DOMAIN_CF_ZONES_CACHE_NAME_
"
_debug
"First detect the root zone"
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
_err
"invalid domain"
...
@@ -58,9 +61,12 @@ dns_cf_add() {
...
@@ -58,9 +61,12 @@ dns_cf_add() {
# if [ "$count" = "0" ]; then
# if [ "$count" = "0" ]; then
_info
"Adding record"
_info
"Adding record"
if
_cf_rest POST
"zones/
$_domain_id
/dns_records"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$fulldomain
\"
,
\"
content
\"
:
\"
$txtvalue
\"
,
\"
ttl
\"
:120}"
;
then
if
_cf_rest POST
"zones/
$_domain_id
/dns_records"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$fulldomain
\"
,
\"
content
\"
:
\"
$txtvalue
\"
,
\"
ttl
\"
:120}"
;
then
if
printf
--
"%s"
"
$response
"
|
grep
"
$fulldomain
"
>
/dev/null
;
then
if
_contains
"
$response
"
"
$fulldomain
"
;
then
_info
"Added, OK"
_info
"Added, OK"
return
0
return
0
elif
_contains
"
$response
"
"The record already exists"
;
then
_info
"Already exists, OK"
return
0
else
else
_err
"Add txt record error."
_err
"Add txt record error."
return
1
return
1
...
@@ -99,11 +105,16 @@ dns_cf_rm() {
...
@@ -99,11 +105,16 @@ dns_cf_rm() {
return
1
return
1
fi
fi
_DOMAIN_CF_ZONES_CACHE_NAME_
=
"
$(
echo
"
${
CF_Email
}
_CF_ZONES_"
|
tr
'@.'
'__'
)
"
_debug
"First detect the root zone"
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
if
!
_get_root
"
$fulldomain
"
;
then
_cleardomainconf
"
$_DOMAIN_CF_ZONES_CACHE_NAME_
"
_err
"invalid domain"
_err
"invalid domain"
return
1
return
1
fi
fi
_cleardomainconf
"
$_DOMAIN_CF_ZONES_CACHE_NAME_
"
_debug _domain_id
"
$_domain_id
"
_debug _domain_id
"
$_domain_id
"
_debug _sub_domain
"
$_sub_domain
"
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
_debug _domain
"
$_domain
"
...
@@ -143,6 +154,21 @@ dns_cf_rm() {
...
@@ -143,6 +154,21 @@ dns_cf_rm() {
# _domain=domain.com
# _domain=domain.com
# _domain_id=sdjkglgdfewsdfg
# _domain_id=sdjkglgdfewsdfg
_get_root
()
{
_get_root
()
{
_cf_zones
=
"
$(
_readdomainconf
$_DOMAIN_CF_ZONES_CACHE_NAME_
)
"
_debug2
"_cf_zones"
"
$_cf_zones
"
if
[
-z
"
$_cf_zones
"
]
;
then
_debug
"
$_DOMAIN_CF_ZONES_CACHE_NAME_
is none, so get it."
if
!
_cf_rest GET
"zones"
;
then
return
1
fi
_cf_zones
=
"
$response
"
_savedomainconf
"
$_DOMAIN_CF_ZONES_CACHE_NAME_
"
"
$(
echo
"
$_cf_zones
"
| _base64
)
"
else
_debug
"
$_DOMAIN_CF_ZONES_CACHE_NAME_
found"
_cf_zones
=
"
$(
echo
"
$_cf_zones
"
| _dbase64
)
"
fi
domain
=
$1
domain
=
$1
i
=
2
i
=
2
p
=
1
p
=
1
...
@@ -154,12 +180,8 @@ _get_root() {
...
@@ -154,12 +180,8 @@ _get_root() {
return
1
return
1
fi
fi
if
!
_cf_rest GET
"zones?name=
$h
"
;
then
if
_contains
"
$_cf_zones
"
"
\"
name
\"
:
\"
$h
\"
"
>
/dev/null
;
then
return
1
_domain_id
=
$(
printf
"%s
\n
"
"
$_cf_zones
"
| _egrep_o
"
\[
.
\"
id
\"
:
\"
[^
\"
]*
\"
"
|
head
-n
1 |
cut
-d
:
-f
2 |
tr
-d
\"
)
fi
if
_contains
"
$response
"
"
\"
name
\"
:
\"
$h
\"
"
>
/dev/null
;
then
_domain_id
=
$(
printf
"%s
\n
"
"
$response
"
| _egrep_o
"
\[
.
\"
id
\"
:
\"
[^
\"
]*
\"
"
|
head
-n
1 |
cut
-d
:
-f
2 |
tr
-d
\"
)
if
[
"
$_domain_id
"
]
;
then
if
[
"
$_domain_id
"
]
;
then
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
$h
_domain
=
$h
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment