fix: close http clients on server replacement

This commit is contained in:
edde746
2026-04-09 23:34:01 +02:00
parent 4322ffc6e5
commit 497259ca16
2 changed files with 11 additions and 1 deletions
+7 -1
View File
@@ -209,6 +209,7 @@ class MultiServerManager {
final client = await _createClientForServer(server: server, clientIdentifier: effectiveClientId).timeout(timeout);
// Store the client and server info
_clients[serverId]?.close();
_clients[serverId] = client;
_servers[serverId] = server;
_serverStatus[serverId] = true;
@@ -265,6 +266,7 @@ class MultiServerManager {
final client = await _createClientForServer(server: server, clientIdentifier: effectiveClientId);
// Store
_clients[serverId]?.close();
_clients[serverId] = client;
_servers[serverId] = server;
_serverStatus[serverId] = true;
@@ -287,7 +289,7 @@ class MultiServerManager {
/// Remove a server connection
void removeServer(String serverId) {
_clients.remove(serverId);
_clients.remove(serverId)?.close();
_servers.remove(serverId);
_serverStatus.remove(serverId);
_statusController.add(Map.from(_serverStatus));
@@ -461,6 +463,7 @@ class MultiServerManager {
appLogger.d('Attempting reconnection for ${server.name}');
final client = await _createClientForServer(server: server, clientIdentifier: clientId);
_clients[serverId]?.close();
_clients[serverId] = client;
updateServerStatus(serverId, true);
appLogger.i('Successfully reconnected to ${server.name}');
@@ -547,6 +550,9 @@ class MultiServerManager {
_reconnectDebounce.clear();
_activeHealthCheck = null;
_activeReconnect = null;
for (final client in _clients.values) {
client.close();
}
_clients.clear();
_servers.clear();
_serverStatus.clear();
+4
View File
@@ -175,6 +175,10 @@ class PlexClient {
);
}
void close() {
_http.close();
}
bool _failoverSwitching = false;
/// Execute a GET request with endpoint failover retry. On timeout/connection