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
2a65955e
Unverified
Commit
2a65955e
authored
Oct 18, 2021
by
Lorenz Stechauner
Committed by
GitHub
Oct 18, 2021
Browse files
Merge branch 'acmesh-official:master' into master
parents
aa7bf916
5b0d6a13
Changes
8
Hide whitespace changes
Inline
Side-by-side
.github/workflows/FreeBSD.yml
View file @
2a65955e
...
@@ -24,20 +24,23 @@ jobs:
...
@@ -24,20 +24,23 @@ jobs:
CA_ECDSA
:
"
"
CA_ECDSA
:
"
"
CA
:
"
"
CA
:
"
"
CA_EMAIL
:
"
"
CA_EMAIL
:
"
"
TEST_PREFERRED_CHAIN
:
(STAGING) Pretend Pear X1
-
TEST_ACME_Server
:
"
ZeroSSL.com"
-
TEST_ACME_Server
:
"
ZeroSSL.com"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA_EMAIL
:
"
githubtest@acme.sh"
CA_EMAIL
:
"
githubtest@acme.sh"
runs-on
:
macos-latest
TEST_PREFERRED_CHAIN
:
"
"
runs-on
:
macos-10.15
env
:
env
:
TEST_LOCAL
:
1
TEST_LOCAL
:
1
TEST_ACME_Server
:
${{ matrix.TEST_ACME_Server }}
TEST_ACME_Server
:
${{ matrix.TEST_ACME_Server }}
CA_ECDSA
:
${{ matrix.CA_ECDSA }}
CA_ECDSA
:
${{ matrix.CA_ECDSA }}
CA
:
${{ matrix.CA }}
CA
:
${{ matrix.CA }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
TEST_PREFERRED_CHAIN
:
${{ matrix.TEST_PREFERRED_CHAIN }}
steps
:
steps
:
-
uses
:
actions/checkout@v2
-
uses
:
actions/checkout@v2
-
uses
:
vmactions/cf-tunnel@v0.0.
2
-
uses
:
vmactions/cf-tunnel@v0.0.
3
id
:
tunnel
id
:
tunnel
with
:
with
:
protocol
:
http
protocol
:
http
...
@@ -46,9 +49,9 @@ jobs:
...
@@ -46,9 +49,9 @@ jobs:
run
:
echo "TestingDomain=${{steps.tunnel.outputs.server}}" >> $GITHUB_ENV
run
:
echo "TestingDomain=${{steps.tunnel.outputs.server}}" >> $GITHUB_ENV
-
name
:
Clone acmetest
-
name
:
Clone acmetest
run
:
cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
run
:
cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
-
uses
:
vmactions/freebsd-vm@v0.1.
4
-
uses
:
vmactions/freebsd-vm@v0.1.
5
with
:
with
:
envs
:
'
TEST_LOCAL
TestingDomain
TEST_ACME_Server
CA_ECDSA
CA
CA_EMAIL'
envs
:
'
TEST_LOCAL
TestingDomain
TEST_ACME_Server
CA_ECDSA
CA
CA_EMAIL
TEST_PREFERRED_CHAIN
'
nat
:
|
nat
:
|
"8080": "80"
"8080": "80"
prepare
:
pkg install -y socat curl
prepare
:
pkg install -y socat curl
...
...
.github/workflows/Linux.yml
View file @
2a65955e
...
@@ -24,6 +24,7 @@ jobs:
...
@@ -24,6 +24,7 @@ jobs:
runs-on
:
ubuntu-latest
runs-on
:
ubuntu-latest
env
:
env
:
TEST_LOCAL
:
1
TEST_LOCAL
:
1
TEST_PREFERRED_CHAIN
:
(STAGING) Pretend Pear X1
steps
:
steps
:
-
uses
:
actions/checkout@v2
-
uses
:
actions/checkout@v2
-
name
:
Clone acmetest
-
name
:
Clone acmetest
...
...
.github/workflows/MacOS.yml
View file @
2a65955e
...
@@ -24,10 +24,12 @@ jobs:
...
@@ -24,10 +24,12 @@ jobs:
CA_ECDSA
:
"
"
CA_ECDSA
:
"
"
CA
:
"
"
CA
:
"
"
CA_EMAIL
:
"
"
CA_EMAIL
:
"
"
TEST_PREFERRED_CHAIN
:
(STAGING) Pretend Pear X1
-
TEST_ACME_Server
:
"
ZeroSSL.com"
-
TEST_ACME_Server
:
"
ZeroSSL.com"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA_EMAIL
:
"
githubtest@acme.sh"
CA_EMAIL
:
"
githubtest@acme.sh"
TEST_PREFERRED_CHAIN
:
"
"
runs-on
:
macos-latest
runs-on
:
macos-latest
env
:
env
:
TEST_LOCAL
:
1
TEST_LOCAL
:
1
...
@@ -35,6 +37,7 @@ jobs:
...
@@ -35,6 +37,7 @@ jobs:
CA_ECDSA
:
${{ matrix.CA_ECDSA }}
CA_ECDSA
:
${{ matrix.CA_ECDSA }}
CA
:
${{ matrix.CA }}
CA
:
${{ matrix.CA }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
TEST_PREFERRED_CHAIN
:
${{ matrix.TEST_PREFERRED_CHAIN }}
steps
:
steps
:
-
uses
:
actions/checkout@v2
-
uses
:
actions/checkout@v2
-
name
:
Install tools
-
name
:
Install tools
...
...
.github/workflows/Solaris.yml
View file @
2a65955e
...
@@ -24,20 +24,23 @@ jobs:
...
@@ -24,20 +24,23 @@ jobs:
CA_ECDSA
:
"
"
CA_ECDSA
:
"
"
CA
:
"
"
CA
:
"
"
CA_EMAIL
:
"
"
CA_EMAIL
:
"
"
TEST_PREFERRED_CHAIN
:
(STAGING) Pretend Pear X1
-
TEST_ACME_Server
:
"
ZeroSSL.com"
-
TEST_ACME_Server
:
"
ZeroSSL.com"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA_EMAIL
:
"
githubtest@acme.sh"
CA_EMAIL
:
"
githubtest@acme.sh"
runs-on
:
macos-latest
TEST_PREFERRED_CHAIN
:
"
"
runs-on
:
macos-10.15
env
:
env
:
TEST_LOCAL
:
1
TEST_LOCAL
:
1
TEST_ACME_Server
:
${{ matrix.TEST_ACME_Server }}
TEST_ACME_Server
:
${{ matrix.TEST_ACME_Server }}
CA_ECDSA
:
${{ matrix.CA_ECDSA }}
CA_ECDSA
:
${{ matrix.CA_ECDSA }}
CA
:
${{ matrix.CA }}
CA
:
${{ matrix.CA }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
TEST_PREFERRED_CHAIN
:
${{ matrix.TEST_PREFERRED_CHAIN }}
steps
:
steps
:
-
uses
:
actions/checkout@v2
-
uses
:
actions/checkout@v2
-
uses
:
vmactions/cf-tunnel@v0.0.
2
-
uses
:
vmactions/cf-tunnel@v0.0.
3
id
:
tunnel
id
:
tunnel
with
:
with
:
protocol
:
http
protocol
:
http
...
@@ -48,7 +51,7 @@ jobs:
...
@@ -48,7 +51,7 @@ jobs:
run
:
cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
run
:
cd .. && git clone https://github.com/acmesh-official/acmetest.git && cp -r acme.sh acmetest/
-
uses
:
vmactions/solaris-vm@v0.0.3
-
uses
:
vmactions/solaris-vm@v0.0.3
with
:
with
:
envs
:
'
TEST_LOCAL
TestingDomain
TEST_ACME_Server
CA_ECDSA
CA
CA_EMAIL'
envs
:
'
TEST_LOCAL
TestingDomain
TEST_ACME_Server
CA_ECDSA
CA
CA_EMAIL
TEST_PREFERRED_CHAIN
'
nat
:
|
nat
:
|
"8080": "80"
"8080": "80"
prepare
:
pkgutil -y -i socat curl
prepare
:
pkgutil -y -i socat curl
...
...
.github/workflows/Ubuntu.yml
View file @
2a65955e
...
@@ -24,10 +24,12 @@ jobs:
...
@@ -24,10 +24,12 @@ jobs:
CA_ECDSA
:
"
"
CA_ECDSA
:
"
"
CA
:
"
"
CA
:
"
"
CA_EMAIL
:
"
"
CA_EMAIL
:
"
"
TEST_PREFERRED_CHAIN
:
(STAGING) Pretend Pear X1
-
TEST_ACME_Server
:
"
ZeroSSL.com"
-
TEST_ACME_Server
:
"
ZeroSSL.com"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA_EMAIL
:
"
githubtest@acme.sh"
CA_EMAIL
:
"
githubtest@acme.sh"
TEST_PREFERRED_CHAIN
:
"
"
runs-on
:
ubuntu-latest
runs-on
:
ubuntu-latest
env
:
env
:
...
@@ -37,6 +39,7 @@ jobs:
...
@@ -37,6 +39,7 @@ jobs:
CA
:
${{ matrix.CA }}
CA
:
${{ matrix.CA }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
CA_EMAIL
:
${{ matrix.CA_EMAIL }}
NO_ECC_384
:
${{ matrix.NO_ECC_384 }}
NO_ECC_384
:
${{ matrix.NO_ECC_384 }}
TEST_PREFERRED_CHAIN
:
${{ matrix.TEST_PREFERRED_CHAIN }}
steps
:
steps
:
-
uses
:
actions/checkout@v2
-
uses
:
actions/checkout@v2
-
name
:
Install tools
-
name
:
Install tools
...
...
.github/workflows/Windows.yml
View file @
2a65955e
...
@@ -24,10 +24,12 @@ jobs:
...
@@ -24,10 +24,12 @@ jobs:
CA_ECDSA
:
"
"
CA_ECDSA
:
"
"
CA
:
"
"
CA
:
"
"
CA_EMAIL
:
"
"
CA_EMAIL
:
"
"
TEST_PREFERRED_CHAIN
:
(STAGING) Pretend Pear X1
-
TEST_ACME_Server
:
"
ZeroSSL.com"
-
TEST_ACME_Server
:
"
ZeroSSL.com"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA_ECDSA
:
"
ZeroSSL
ECC
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA
:
"
ZeroSSL
RSA
Domain
Secure
Site
CA"
CA_EMAIL
:
"
githubtest@acme.sh"
CA_EMAIL
:
"
githubtest@acme.sh"
TEST_PREFERRED_CHAIN
:
"
"
runs-on
:
windows-latest
runs-on
:
windows-latest
env
:
env
:
TEST_ACME_Server
:
${{ matrix.TEST_ACME_Server }}
TEST_ACME_Server
:
${{ matrix.TEST_ACME_Server }}
...
@@ -37,6 +39,7 @@ jobs:
...
@@ -37,6 +39,7 @@ jobs:
TEST_LOCAL
:
1
TEST_LOCAL
:
1
#The 80 port is used by Windows server, we have to use a custom port, tunnel will also use this port.
#The 80 port is used by Windows server, we have to use a custom port, tunnel will also use this port.
Le_HTTPPort
:
8888
Le_HTTPPort
:
8888
TEST_PREFERRED_CHAIN
:
${{ matrix.TEST_PREFERRED_CHAIN }}
steps
:
steps
:
-
name
:
Set git to use LF
-
name
:
Set git to use LF
run
:
|
run
:
|
...
@@ -49,7 +52,7 @@ jobs:
...
@@ -49,7 +52,7 @@ jobs:
shell
:
cmd
shell
:
cmd
-
name
:
Install cygwin additional packages
-
name
:
Install cygwin additional packages
run
:
|
run
:
|
C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -s http://mirrors.kernel.org/sourceware/cygwin/ -P socat,curl,cron,unzip,git
C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -s http://mirrors.kernel.org/sourceware/cygwin/ -P socat,curl,cron,unzip,git
,xxd
shell
:
cmd
shell
:
cmd
-
name
:
Set ENV
-
name
:
Set ENV
shell
:
cmd
shell
:
cmd
...
...
acme.sh
View file @
2a65955e
...
@@ -3168,7 +3168,7 @@ _checkConf() {
...
@@ -3168,7 +3168,7 @@ _checkConf() {
for
included
in
$(
cat
"
$2
"
|
tr
"
\t
"
" "
|
grep
"^ *include *.*;"
|
sed
"s/include //"
|
tr
-d
" ;"
)
;
do
for
included
in
$(
cat
"
$2
"
|
tr
"
\t
"
" "
|
grep
"^ *include *.*;"
|
sed
"s/include //"
|
tr
-d
" ;"
)
;
do
_debug
"check included
$included
"
_debug
"check included
$included
"
if
!
_startswith
"
$included
"
"/"
&&
_exists
dirname
;
then
if
!
_startswith
"
$included
"
"/"
&&
_exists
dirname
;
then
_relpath
=
"
$(
dirname
"
$
_c_file
"
)
"
_relpath
=
"
$(
dirname
"
$
2
"
)
"
_debug
"_relpath"
"
$_relpath
"
_debug
"_relpath"
"
$_relpath
"
included
=
"
$_relpath
/
$included
"
included
=
"
$_relpath
/
$included
"
fi
fi
...
@@ -4222,12 +4222,6 @@ issue() {
...
@@ -4222,12 +4222,6 @@ issue() {
return
1
return
1
fi
fi
_debug
"Using ACME_DIRECTORY:
$ACME_DIRECTORY
"
if
!
_initAPI
;
then
return
1
fi
if
[
-f
"
$DOMAIN_CONF
"
]
;
then
if
[
-f
"
$DOMAIN_CONF
"
]
;
then
Le_NextRenewTime
=
$(
_readdomainconf Le_NextRenewTime
)
Le_NextRenewTime
=
$(
_readdomainconf Le_NextRenewTime
)
_debug Le_NextRenewTime
"
$Le_NextRenewTime
"
_debug Le_NextRenewTime
"
$Le_NextRenewTime
"
...
@@ -4247,6 +4241,11 @@ issue() {
...
@@ -4247,6 +4241,11 @@ issue() {
fi
fi
fi
fi
_debug
"Using ACME_DIRECTORY:
$ACME_DIRECTORY
"
if
!
_initAPI
;
then
return
1
fi
_savedomainconf
"Le_Domain"
"
$_main_domain
"
_savedomainconf
"Le_Domain"
"
$_main_domain
"
_savedomainconf
"Le_Alt"
"
$_alt_domains
"
_savedomainconf
"Le_Alt"
"
$_alt_domains
"
_savedomainconf
"Le_Webroot"
"
$_web_roots
"
_savedomainconf
"Le_Webroot"
"
$_web_roots
"
...
@@ -5131,7 +5130,6 @@ renew() {
...
@@ -5131,7 +5130,6 @@ renew() {
CA_CONF
=
""
CA_CONF
=
""
_debug3
"initpath again."
_debug3
"initpath again."
_initpath
"
$Le_Domain
"
"
$_isEcc
"
_initpath
"
$Le_Domain
"
"
$_isEcc
"
_initAPI
fi
fi
if
[
-z
"
$FORCE
"
]
&&
[
"
$Le_NextRenewTime
"
]
&&
[
"
$(
_time
)
"
-lt
"
$Le_NextRenewTime
"
]
;
then
if
[
-z
"
$FORCE
"
]
&&
[
"
$Le_NextRenewTime
"
]
&&
[
"
$(
_time
)
"
-lt
"
$Le_NextRenewTime
"
]
;
then
...
...
dnsapi/dns_cpanel.sh
0 → 100755
View file @
2a65955e
#!/usr/bin/env sh
#
#Author: Bjarne Saltbaek
#Report Bugs here: https://github.com/acmesh-official/acme.sh/issues/3732
#
#
######## Public functions #####################
#
# Export CPANEL username,api token and hostname in the following variables
#
# cPanel_Username=username
# cPanel_Apitoken=apitoken
# cPanel_Hostname=hostname
#
# Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
# Used to add txt record
dns_cpanel_add
()
{
fulldomain
=
$1
txtvalue
=
$2
_info
"Adding TXT record to cPanel based system"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$txtvalue
"
_debug cPanel_Username
"
$cPanel_Username
"
_debug cPanel_Apitoken
"
$cPanel_Apitoken
"
_debug cPanel_Hostname
"
$cPanel_Hostname
"
if
!
_cpanel_login
;
then
_err
"cPanel Login failed for user
$cPanel_Username
. Check
$HTTP_HEADER
file"
return
1
fi
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"No matching root domain for
$fulldomain
found"
return
1
fi
# adding entry
_info
"Adding the entry"
stripped_fulldomain
=
$(
echo
"
$fulldomain
"
|
sed
"s/.
$_domain
//"
)
_debug
"Adding
$stripped_fulldomain
to
$_domain
zone"
_myget
"json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=add_zone_record&domain=
$_domain
&name=
$stripped_fulldomain
&type=TXT&txtdata=
$txtvalue
&ttl=1"
if
_successful_update
;
then return
0
;
fi
_err
"Couldn't create entry!"
return
1
}
# Usage: fulldomain txtvalue
# Used to remove the txt record after validation
dns_cpanel_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
_info
"Using cPanel based system"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$txtvalue
"
if
!
_cpanel_login
;
then
_err
"cPanel Login failed for user
$cPanel_Username
. Check
$HTTP_HEADER
file"
return
1
fi
if
!
_get_root
;
then
_err
"No matching root domain for
$fulldomain
found"
return
1
fi
_findentry
"
$fulldomain
"
"
$txtvalue
"
if
[
-z
"
$_id
"
]
;
then
_info
"Entry doesn't exist, nothing to delete"
return
0
fi
_debug
"Deleting record..."
_myget
"json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=remove_zone_record&domain=
$_domain
&line=
$_id
"
# removing entry
_debug
"_result is:
$_result
"
if
_successful_update
;
then return
0
;
fi
_err
"Couldn't delete entry!"
return
1
}
#################### Private functions below ##################################
_checkcredentials
()
{
cPanel_Username
=
"
${
cPanel_Username
:-
$(
_readaccountconf_mutable cPanel_Username
)
}
"
cPanel_Apitoken
=
"
${
cPanel_Apitoken
:-
$(
_readaccountconf_mutable cPanel_Apitoken
)
}
"
cPanel_Hostname
=
"
${
cPanel_Hostname
:-
$(
_readaccountconf_mutable cPanel_Hostname
)
}
"
if
[
-z
"
$cPanel_Username
"
]
||
[
-z
"
$cPanel_Apitoken
"
]
||
[
-z
"
$cPanel_Hostname
"
]
;
then
cPanel_Username
=
""
cPanel_Apitoken
=
""
cPanel_Hostname
=
""
_err
"You haven't specified cPanel username, apitoken and hostname yet."
_err
"Please add credentials and try again."
return
1
fi
#save the credentials to the account conf file.
_saveaccountconf_mutable cPanel_Username
"
$cPanel_Username
"
_saveaccountconf_mutable cPanel_Apitoken
"
$cPanel_Apitoken
"
_saveaccountconf_mutable cPanel_Hostname
"
$cPanel_Hostname
"
return
0
}
_cpanel_login
()
{
if
!
_checkcredentials
;
then return
1
;
fi
if
!
_myget
"json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=CustInfo&cpanel_jsonapi_func=displaycontactinfo"
;
then
_err
"cPanel login failed for user
$cPanel_Username
."
return
1
fi
return
0
}
_myget
()
{
#Adds auth header to request
export
_H1
=
"Authorization: cpanel
$cPanel_Username
:
$cPanel_Apitoken
"
_result
=
$(
_get
"
$cPanel_Hostname
/
$1
"
)
}
_get_root
()
{
_myget
'json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzones'
_domains
=
$(
echo
"
$_result
"
|
sed
's/.*\(zones.*\[\).*/\1/'
|
cut
-d
':'
-f2
|
sed
's/"//g'
|
sed
's/{//g'
)
_debug
"_result is:
$_result
"
_debug
"_domains is:
$_domains
"
if
[
-z
"
$_domains
"
]
;
then
_err
"Primary domain list not found!"
return
1
fi
for
_domain
in
$_domains
;
do
_debug
"Checking if
$fulldomain
ends with
$_domain
"
if
(
_endswith
"
$fulldomain
"
"
$_domain
"
)
;
then
_debug
"Root domain:
$_domain
"
return
0
fi
done
return
1
}
_successful_update
()
{
if
(
echo
"
$_result
"
|
grep
-q
'newserial'
)
;
then return
0
;
fi
return
1
}
_findentry
()
{
_debug
"In _findentry"
#returns id of dns entry, if it exists
_myget
"json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&domain=
$_domain
"
_id
=
$(
echo
"
$_result
"
|
sed
"s/.*
\(
line.*
$fulldomain
.*
$txtvalue
\)
.*/
\1
/"
|
cut
-d
':'
-f
2 |
cut
-d
','
-f
1
)
_debug
"_result is:
$_result
"
_debug
"fulldomain. is
$fulldomain
."
_debug
"txtvalue is
$txtvalue
"
_debug
"_id is:
$_id
"
if
[
-n
"
$_id
"
]
;
then
_debug
"Entry found with _id=
$_id
"
return
0
fi
return
1
}
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