From c9929722f77880c0ee80f68cbfcbc11689dd0850 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Mon, 10 Mar 2025 17:27:47 +0100 Subject: [PATCH 1/2] fix Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKCommon.swift | 6 ++++++ Sources/NextcloudKit/NKSession.swift | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Sources/NextcloudKit/NKCommon.swift b/Sources/NextcloudKit/NKCommon.swift index 8d491659..3ae16ab2 100644 --- a/Sources/NextcloudKit/NKCommon.swift +++ b/Sources/NextcloudKit/NKCommon.swift @@ -51,8 +51,10 @@ public struct NKCommon: Sendable { public var delegate: NextcloudKitDelegate? public var groupIdentifier: String? + // Foreground public let identifierSessionDownload: String = "com.nextcloud.nextcloudkit.session.download" public let identifierSessionUpload: String = "com.nextcloud.nextcloudkit.session.upload" + // Background public let identifierSessionDownloadBackground: String = "com.nextcloud.session.downloadbackground" public let identifierSessionUploadBackground: String = "com.nextcloud.session.uploadbackground" public let identifierSessionUploadBackgroundWWan: String = "com.nextcloud.session.uploadbackgroundWWan" @@ -474,6 +476,10 @@ public struct NKCommon: Sendable { // MARK: - Common + public func getSessionConfigurationIdentifier(_ identifier: String, account: String) -> String { + return "\(identifier).\(account)" + } + public func getSession(account: String) -> NKSession? { var session: NKSession? nksessions.forEach { result in diff --git a/Sources/NextcloudKit/NKSession.swift b/Sources/NextcloudKit/NKSession.swift index 018ecbd1..6406bafa 100644 --- a/Sources/NextcloudKit/NKSession.swift +++ b/Sources/NextcloudKit/NKSession.swift @@ -74,7 +74,7 @@ public struct NKSession: Sendable { eventMonitors: [NKMonitor(nkCommonInstance: nkCommonInstance)]) /// Session Download Background - let configurationDownloadBackground = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionDownloadBackground) + let configurationDownloadBackground = URLSessionConfiguration.background(withIdentifier: NKCommon().getSessionConfigurationIdentifier(NKCommon().identifierSessionDownloadBackground, account: account)) configurationDownloadBackground.allowsCellularAccess = true if #available(macOS 11, *) { @@ -93,7 +93,7 @@ public struct NKSession: Sendable { sessionDownloadBackground = URLSession(configuration: configurationDownloadBackground, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) /// Session Upload Background - let configurationUploadBackground = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackground) + let configurationUploadBackground = URLSessionConfiguration.background(withIdentifier: NKCommon().getSessionConfigurationIdentifier(NKCommon().identifierSessionUploadBackground, account: account)) configurationUploadBackground.allowsCellularAccess = true if #available(macOS 11, *) { @@ -112,7 +112,7 @@ public struct NKSession: Sendable { sessionUploadBackground = URLSession(configuration: configurationUploadBackground, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) /// Session Upload Background WWan - let configurationUploadBackgroundWWan = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundWWan) + let configurationUploadBackgroundWWan = URLSessionConfiguration.background(withIdentifier: NKCommon().getSessionConfigurationIdentifier(NKCommon().identifierSessionUploadBackgroundWWan, account: account)) configurationUploadBackgroundWWan.allowsCellularAccess = false if #available(macOS 11, *) { @@ -126,7 +126,7 @@ public struct NKSession: Sendable { sessionUploadBackgroundWWan = URLSession(configuration: configurationUploadBackgroundWWan, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) /// Session Upload Background Extension - let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundExt + UUID().uuidString) + let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().getSessionConfigurationIdentifier(NKCommon().identifierSessionUploadBackgroundExt, account: account)) configurationUploadBackgroundExt.allowsCellularAccess = true if #available(macOS 11, *) { From c570d1f422b7564b06a1c456ac15618f6bdd9b24 Mon Sep 17 00:00:00 2001 From: Marino Faggiana Date: Mon, 10 Mar 2025 17:36:45 +0100 Subject: [PATCH 2/2] fix Signed-off-by: Marino Faggiana --- Sources/NextcloudKit/NKSession.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/NextcloudKit/NKSession.swift b/Sources/NextcloudKit/NKSession.swift index 6406bafa..1e66394a 100644 --- a/Sources/NextcloudKit/NKSession.swift +++ b/Sources/NextcloudKit/NKSession.swift @@ -126,7 +126,7 @@ public struct NKSession: Sendable { sessionUploadBackgroundWWan = URLSession(configuration: configurationUploadBackgroundWWan, delegate: backgroundSessionDelegate, delegateQueue: OperationQueue.main) /// Session Upload Background Extension - let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().getSessionConfigurationIdentifier(NKCommon().identifierSessionUploadBackgroundExt, account: account)) + let configurationUploadBackgroundExt = URLSessionConfiguration.background(withIdentifier: NKCommon().identifierSessionUploadBackgroundExt + UUID().uuidString) configurationUploadBackgroundExt.allowsCellularAccess = true if #available(macOS 11, *) {