From 6383e7b62303b56996052b64a618a25e588cdefa Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 15 Aug 2022 15:41:37 +0100 Subject: [PATCH] Prepare for TLS --- Package.swift | 3 +++ Sources/ReportingFeature/Resources/report_cert.crt | 1 + Sources/ReportingFeature/SendReport.swift | 13 +++++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 Sources/ReportingFeature/Resources/report_cert.crt diff --git a/Package.swift b/Package.swift index 539ef5e1..d204c98f 100644 --- a/Package.swift +++ b/Package.swift @@ -750,6 +750,9 @@ let package = Package( name: "ReportingFeature", dependencies: [ .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"), + ], + resources: [ + .process("Resources"), ] ), ] diff --git a/Sources/ReportingFeature/Resources/report_cert.crt b/Sources/ReportingFeature/Resources/report_cert.crt new file mode 100644 index 00000000..d0ec74b9 --- /dev/null +++ b/Sources/ReportingFeature/Resources/report_cert.crt @@ -0,0 +1 @@ +[PLACE THE CERTIFICATE CONTENT HERE] \ No newline at end of file diff --git a/Sources/ReportingFeature/SendReport.swift b/Sources/ReportingFeature/SendReport.swift index 1ffcf99c..41c6f159 100644 --- a/Sources/ReportingFeature/SendReport.swift +++ b/Sources/ReportingFeature/SendReport.swift @@ -22,8 +22,13 @@ extension SendReport { completion(.failure(error)) return } - let session = URLSession(configuration: .default) - let task = session.dataTask(with: request) { data, response, error in + let session = URLSession( + configuration: .default, + delegate: SessionDelegate(), + delegateQueue: nil + ) + let task = session.dataTask(with: request) { _, _, error in + defer { session.invalidateAndCancel() } if let error = error { completion(.failure(error)) return @@ -39,3 +44,7 @@ extension SendReport { run: XCTUnimplemented("\(Self.self)") ) } + +private class SessionDelegate: NSObject, URLSessionDelegate { + // TODO: handle TLS +} -- GitLab