fix(qBittorrent): API Version state handling #826
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When Flood is started before a qBittorrent 5 client, starting and stopping torrents will fail due to the wrong method being called.
This is happening due to Flood getting the API Version in the clientRequestManager constructor (clientRequestManager.ts#L626) and nowhere else. If this request fails then the
apiVersion
will remain null until Flood is restarted.I made the
apiVersion
consistent with theauthCookie
so that it's kept in sync with the qBittorrent client and can be awaited to ensure the value is resolved. I also renamedupdateAuthCookie
toupdateConnection
so that it better represents what the method is now doing.As
getApiVersion
requires authentication I've chained the promises so that it runs only whenauthenticate
is successful.The changes to
clientGatewayService
are to make the calls toisApiVersionAtLeast
consistent withclientRequestManager
.Related Issue
#820
Screenshots
Types of changes