1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 16:12:57 +08:00

Ensure all request failures are correctly handled during login

This commit is contained in:
Dean Herbert 2021-08-19 19:55:10 +09:00
parent b09105e5a7
commit a6b7ca1a4c
2 changed files with 9 additions and 9 deletions

View File

@ -309,7 +309,7 @@ namespace osu.Game.Online.API
if (IsLoggedIn) state.Value = APIState.Online;
failureCount = 0;
return true;
return req.CompletionState == APIRequestCompletionState.Completed;
}
catch (HttpRequestException re)
{
@ -381,7 +381,7 @@ namespace osu.Game.Online.API
}
}
public bool IsLoggedIn => localUser.Value.Id > 1;
public bool IsLoggedIn => localUser.Value.Id > 1; // TODO: should this also be true if attempting to connect?
public void Queue(APIRequest request)
{

View File

@ -84,7 +84,7 @@ namespace osu.Game.Online.API
/// The state of this request, from an outside perspective.
/// This is used to ensure correct notification events are fired.
/// </summary>
private APIRequestCompletionState completionState;
public APIRequestCompletionState CompletionState { get; private set; }
public void Perform(IAPIProvider api)
{
@ -127,10 +127,10 @@ namespace osu.Game.Online.API
{
lock (completionStateLock)
{
if (completionState != APIRequestCompletionState.Waiting)
if (CompletionState != APIRequestCompletionState.Waiting)
return;
completionState = APIRequestCompletionState.Completed;
CompletionState = APIRequestCompletionState.Completed;
}
if (API == null)
@ -143,10 +143,10 @@ namespace osu.Game.Online.API
{
lock (completionStateLock)
{
if (completionState != APIRequestCompletionState.Waiting)
if (CompletionState != APIRequestCompletionState.Waiting)
return;
completionState = APIRequestCompletionState.Failed;
CompletionState = APIRequestCompletionState.Failed;
}
if (API == null)
@ -161,7 +161,7 @@ namespace osu.Game.Online.API
{
lock (completionStateLock)
{
if (completionState != APIRequestCompletionState.Waiting)
if (CompletionState != APIRequestCompletionState.Waiting)
return;
WebRequest?.Abort();
@ -200,7 +200,7 @@ namespace osu.Game.Online.API
get
{
lock (completionStateLock)
return completionState == APIRequestCompletionState.Failed;
return CompletionState == APIRequestCompletionState.Failed;
}
}