|
@@ -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=$?
|