diff --git a/Sources/Services/Network/Server/DefaultNetworkService.swift b/Sources/Services/Network/Server/DefaultNetworkService.swift index 29f3fbe8..01f60456 100644 --- a/Sources/Services/Network/Server/DefaultNetworkService.swift +++ b/Sources/Services/Network/Server/DefaultNetworkService.swift @@ -95,13 +95,13 @@ public actor DefaultNetworkService: NetworkService { } macAddresses[index] = macAddress - if allocationsBySession[session] == nil { - allocationsBySession[session] = [] + let isNewSession = allocationsBySession[session] == nil + allocationsBySession[session, default: []].append((hostname: hostname, index: index)) + if isNewSession { await session.onDisconnect { [weak self] in await self?.releaseSession(session) } } - allocationsBySession[session]!.append((hostname: hostname, index: index)) return (attachment: attachment, additionalData: additionalData) }