|
@ -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" |
|
|
|
|
|
if [ "$needbase64" ]; then |
|
|
|
|
|
_body="$(echo "$_body" | _dbase64 multiline)" |
|
|
|
|
|
_debug3 _body "$_body" |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
_retryafter=$(echo "$responseHeaders" | grep -i "^Retry-After *: *[0-9]\+ *" | cut -d : -f 2 | tr -d ' ' | tr -d '\r') |
|
|
|
|
|
if [ "$code" = '503' ]; then |
|
|
|
|
|
_sleep_overload_retry_sec=$_retryafter |
|
|
|
|
|
if [ -z "$_sleep_overload_retry_sec" ]; then |
|
|
|
|
|
_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 |
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
_body="$response" |
|
|
|
|
|
if [ "$needbase64" ]; then |
|
|
|
|
|
_body="$(echo "$_body" | _dbase64 multiline)" |
|
|
|
|
|
_debug3 _body "$_body" |
|
|
|
|
|
fi |
|
|
|
|
|
_retryafter=$(echo "$responseHeaders" | grep -i "^Retry-After *: *[0-9]\+ *" | cut -d : -f 2 | tr -d ' ' | tr -d '\r') |
|
|
|
|
|
|
|
|
|
|
|
if [ "$code" = '503' ] || [ "$_retryafter" ]; then |
|
|
|
|
|
_sleep_overload_retry_sec=$_retryafter |
|
|
|
|
|
if [ -z "$_sleep_overload_retry_sec" ]; then |
|
|
|
|
|
_sleep_overload_retry_sec=5 |
|
|
fi |
|
|
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 |
|
|
|
|
|
|
|
|
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 |
|
|
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." |
|
|