diff options
| author | Dan Engelbrecht <[email protected]> | 2026-03-20 13:44:19 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-03-20 13:44:19 +0100 |
| commit | d9b614cc8b92667b94d4ec3eb6bb2942d0a0e33f (patch) | |
| tree | 149703893d865208e6ffdc9f8be7fb00690a546d /src | |
| parent | add hub instance info (#869) (diff) | |
| download | zen-d9b614cc8b92667b94d4ec3eb6bb2942d0a0e33f.tar.xz zen-d9b614cc8b92667b94d4ec3eb6bb2942d0a0e33f.zip | |
auth fail no cache (#871)v5.7.24-pre0v5.7.24
- Bugfix: Retry OIDC token refresh once on failure before propagating the error
- Bugfix: Handle HTTP 501 (Not Implemented) from Jupiter as a signal to fall back from multi-range to single-range requests
Diffstat (limited to 'src')
| -rw-r--r-- | src/zenhttp/httpclient.cpp | 5 | ||||
| -rw-r--r-- | src/zenremotestore/jupiter/jupitersession.cpp | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/zenhttp/httpclient.cpp b/src/zenhttp/httpclient.cpp index 3e81d4a8a..13c86e9ae 100644 --- a/src/zenhttp/httpclient.cpp +++ b/src/zenhttp/httpclient.cpp @@ -128,6 +128,11 @@ HttpClientBase::GetAccessToken() return m_CachedAccessToken.GetValue(); } HttpClientAccessToken NewAccessToken = m_ConnectionSettings.AccessTokenProvider.value()(); + if (!NewAccessToken.IsValid()) + { + ZEN_WARN("HttpClient failed to refresh access token, retrying once"); + NewAccessToken = m_ConnectionSettings.AccessTokenProvider.value()(); + } if (NewAccessToken.IsValid()) { m_CachedAccessToken = NewAccessToken; diff --git a/src/zenremotestore/jupiter/jupitersession.cpp b/src/zenremotestore/jupiter/jupitersession.cpp index b5531fa60..a9788cb4e 100644 --- a/src/zenremotestore/jupiter/jupitersession.cpp +++ b/src/zenremotestore/jupiter/jupitersession.cpp @@ -882,7 +882,8 @@ JupiterSession::GetBuildBlob(std::string_view Namespace, m_AllowRedirect ? "true"sv : "false"sv); HttpClient::Response Response = m_HttpClient.Download(Url, TempFolderPath, Headers); - if (Response.StatusCode == HttpResponseCode::RangeNotSatisfiable && Ranges.size() > 1) + if ((Response.StatusCode == HttpResponseCode::RangeNotSatisfiable || Response.StatusCode == HttpResponseCode::NotImplemented) && + Ranges.size() > 1) { // Requests to Jupiter that is not served via nginx (content not stored locally in the file system) can not serve multi-range // requests (asp.net limitation) This rejection is not implemented as of 2026-03-02, it is in the backlog (@joakim.lindqvist) |