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
ae3dda0f
Commit
ae3dda0f
authored
Jul 15, 2021
by
neil
Browse files
add retry for get() and post()
parent
e229ba59
Changes
1
Hide whitespace changes
Inline
Side-by-side
acme.sh
View file @
ae3dda0f
...
...
@@ -1768,7 +1768,7 @@ _inithttp() {
if
[
-z
"
$ACME_HTTP_NO_REDIRECTS
"
]
;
then
_ACME_CURL
=
"
$_ACME_CURL
-L "
fi
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
"2"
]
;
then
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
2
]
;
then
_CURL_DUMP
=
"
$(
_mktemp
)
"
_ACME_CURL
=
"
$_ACME_CURL
--trace-ascii
$_CURL_DUMP
"
fi
...
...
@@ -1808,6 +1808,8 @@ _inithttp() {
}
_HTTP_MAX_RETRY
=
8
# body url [needbase64] [POST|PUT|DELETE] [ContentType]
_post
()
{
body
=
"
$1
"
...
...
@@ -1815,6 +1817,33 @@ _post() {
needbase64
=
"
$3
"
httpmethod
=
"
$4
"
_postContentType
=
"
$5
"
_sleep_retry_sec
=
1
_http_retry_times
=
0
_hcode
=
0
while
[
"
${
_http_retry_times
}
"
-le
"
$_HTTP_MAX_RETRY
"
]
;
do
[
"
$_http_retry_times
"
=
"
$_HTTP_MAX_RETRY
"
]
_lastHCode
=
"
$?
"
_debug
"Retrying post"
_post_impl
"
$body
"
"
$_post_url
"
"
$needbase64
"
"
$httpmethod
"
"
$_postContentType
"
"
$_lastHCode
"
;
_hcode
=
"
$?
"
_debug _hcode
"
$_hcode
"
if
[
"
$_hcode
"
=
"0"
]
;
then
break
;
fi
_http_retry_times
=
$(
_math
$_http_retry_times
+ 1
)
_sleep
$_sleep_retry_sec
done
return
$_hcode
}
# body url [needbase64] [POST|PUT|DELETE] [ContentType] [displayError]
_post_impl
()
{
body
=
"
$1
"
_post_url
=
"
$2
"
needbase64
=
"
$3
"
httpmethod
=
"
$4
"
_postContentType
=
"
$5
"
displayError
=
"
$6
"
if
[
-z
"
$httpmethod
"
]
;
then
httpmethod
=
"POST"
...
...
@@ -1866,7 +1895,9 @@ _post() {
fi
_ret
=
"
$?
"
if
[
"
$_ret
"
!=
"0"
]
;
then
_err
"Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code:
$_ret
"
if
[
-z
"
$displayError
"
]
||
[
"
$displayError
"
=
"0"
]
;
then
_err
"Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code:
$_ret
"
fi
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
"2"
]
;
then
_err
"Here is the curl dump log:"
_err
"
$(
cat
"
$_CURL_DUMP
"
)
"
...
...
@@ -1922,7 +1953,9 @@ _post() {
_debug
"wget returns 8, the server returns a 'Bad request' response, lets process the response later."
fi
if
[
"
$_ret
"
!=
"0"
]
;
then
_err
"Please refer to https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html for error code:
$_ret
"
if
[
-z
"
$displayError
"
]
||
[
"
$displayError
"
=
"0"
]
;
then
_err
"Please refer to https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html for error code:
$_ret
"
fi
fi
_sed_i
"s/^ *//g"
"
$HTTP_HEADER
"
else
...
...
@@ -1936,13 +1969,38 @@ _post() {
# url getheader timeout
_get
()
{
url
=
"
$1
"
onlyheader
=
"
$2
"
t
=
"
$3
"
_sleep_retry_sec
=
1
_http_retry_times
=
0
_hcode
=
0
while
[
"
${
_http_retry_times
}
"
-le
"
$_HTTP_MAX_RETRY
"
]
;
do
[
"
$_http_retry_times
"
=
"
$_HTTP_MAX_RETRY
"
]
_lastHCode
=
"
$?
"
_debug
"Retrying GET"
_get_impl
"
$url
"
"
$onlyheader
"
"
$t
"
"
$_lastHCode
"
;
_hcode
=
"
$?
"
_debug _hcode
"
$_hcode
"
if
[
"
$_hcode
"
=
"0"
]
;
then
break
;
fi
_http_retry_times
=
$(
_math
$_http_retry_times
+ 1
)
_sleep
$_sleep_retry_sec
done
return
$_hcode
}
# url getheader timeout displayError
_get_impl
()
{
_debug GET
url
=
"
$1
"
onlyheader
=
"
$2
"
t
=
"
$3
"
displayError
=
"
$4
"
_debug url
"
$url
"
_debug
"timeout=
$t
"
_debug
"displayError"
"
$displayError
"
_inithttp
if
[
"
$_ACME_CURL
"
]
&&
[
"
${
ACME_USE_WGET
:-
0
}
"
=
"0"
]
;
then
...
...
@@ -1961,7 +2019,9 @@ _get() {
fi
ret
=
$?
if
[
"
$ret
"
!=
"0"
]
;
then
_err
"Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code:
$ret
"
if
[
-z
"
$displayError
"
]
||
[
"
$displayError
"
=
"0"
]
;
then
_err
"Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code:
$ret
"
fi
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
"2"
]
;
then
_err
"Here is the curl dump log:"
_err
"
$(
cat
"
$_CURL_DUMP
"
)
"
...
...
@@ -1987,7 +2047,9 @@ _get() {
_debug
"wget returns 8, the server returns a 'Bad request' response, lets process the response later."
fi
if
[
"
$ret
"
!=
"0"
]
;
then
_err
"Please refer to https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html for error code:
$ret
"
if
[
-z
"
$displayError
"
]
||
[
"
$displayError
"
=
"0"
]
;
then
_err
"Please refer to https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html for error code:
$ret
"
fi
fi
else
ret
=
$?
...
...
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