zerossl returns retry-after header within "200 OK" code.
so we don't check the "503" code anymore.
This commit is contained in:
neil 2023-07-08 11:17:19 +08:00
parent 53ede7b0d8
commit 299a157409

58
acme.sh
View File

@ -2222,40 +2222,40 @@ _send_signed_request() {
_CACHED_NONCE="$(echo "$responseHeaders" | grep -i "Replay-Nonce:" | _head_n 1 | tr -d "\r\n " | cut -d ':' -f 2 | cut -d , -f 1)" _CACHED_NONCE="$(echo "$responseHeaders" | grep -i "Replay-Nonce:" | _head_n 1 | tr -d "\r\n " | cut -d ':' -f 2 | cut -d , -f 1)"
if ! _startswith "$code" "2"; then _body="$response"
_body="$response" if [ "$needbase64" ]; then
if [ "$needbase64" ]; then _body="$(echo "$_body" | _dbase64 multiline)"
_body="$(echo "$_body" | _dbase64 multiline)" _debug3 _body "$_body"
_debug3 _body "$_body" fi
fi _retryafter=$(echo "$responseHeaders" | grep -i "^Retry-After *: *[0-9]\+ *" | cut -d : -f 2 | tr -d ' ' | tr -d '\r')
_retryafter=$(echo "$responseHeaders" | grep -i "^Retry-After *: *[0-9]\+ *" | cut -d : -f 2 | tr -d ' ' | tr -d '\r') if [ "$code" = '503' ] || [ "$_retryafter" ]; then
if [ "$code" = '503' ]; then _sleep_overload_retry_sec=$_retryafter
_sleep_overload_retry_sec=$_retryafter if [ -z "$_sleep_overload_retry_sec" ]; then
if [ -z "$_sleep_overload_retry_sec" ]; then _sleep_overload_retry_sec=5
_sleep_overload_retry_sec=5
fi
if [ $_sleep_overload_retry_sec -le 600 ]; then
_info "It seems the CA server is currently overloaded, let's wait and retry. Sleeping $_sleep_overload_retry_sec seconds."
_sleep $_sleep_overload_retry_sec
continue
else
_info "The retryafter=$_retryafter is too large > 600, not retry anymore."
fi
fi fi
if _contains "$_body" "JWS has invalid anti-replay nonce" || _contains "$_body" "JWS has an invalid anti-replay nonce"; then if [ $_sleep_overload_retry_sec -le 600 ]; then
_info "It seems the CA server is busy now, let's wait and retry. Sleeping $_sleep_retry_sec seconds." _info "It seems the CA server is currently overloaded, let's wait and retry. Sleeping $_sleep_overload_retry_sec seconds."
_CACHED_NONCE="" _sleep $_sleep_overload_retry_sec
_sleep $_sleep_retry_sec
continue
fi
if _contains "$_body" "The Replay Nonce is not recognized"; then
_info "The replay Nonce is not valid, let's get a new one, Sleeping $_sleep_retry_sec seconds."
_CACHED_NONCE=""
_sleep $_sleep_retry_sec
continue continue
else
_info "The retryafter=$_retryafter is too large > 600, not retry anymore."
return 1
fi fi
fi fi
if _contains "$_body" "JWS has invalid anti-replay nonce" || _contains "$_body" "JWS has an invalid anti-replay nonce"; then
_info "It seems the CA server is busy now, let's wait and retry. Sleeping $_sleep_retry_sec seconds."
_CACHED_NONCE=""
_sleep $_sleep_retry_sec
continue
fi
if _contains "$_body" "The Replay Nonce is not recognized"; then
_info "The replay Nonce is not valid, let's get a new one, Sleeping $_sleep_retry_sec seconds."
_CACHED_NONCE=""
_sleep $_sleep_retry_sec
continue
fi
return 0 return 0
done done
_info "Giving up sending to CA server after $MAX_REQUEST_RETRY_TIMES retries." _info "Giving up sending to CA server after $MAX_REQUEST_RETRY_TIMES retries."