From 56505879f63b17b4b132250d1be22e5d46e341f7 Mon Sep 17 00:00:00 2001 From: N7ghtm4r3 Date: Fri, 10 Jan 2025 10:35:36 +0100 Subject: [PATCH] Moved Ktor engine from Darwin to CIO --- equinox-compose/build.gradle.kts | 2 +- equinox-core/build.gradle.kts | 2 +- .../network/EngineConfigurator.ios.kt | 19 ++++++------------- gradle/libs.versions.toml | 2 +- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/equinox-compose/build.gradle.kts b/equinox-compose/build.gradle.kts index 00ecbce..cd6c11d 100644 --- a/equinox-compose/build.gradle.kts +++ b/equinox-compose/build.gradle.kts @@ -115,7 +115,7 @@ kotlin { dependencies { implementation(libs.connectivity.device) implementation(libs.connectivity.compose.device) - implementation(libs.ktor.client.darwin) + implementation(libs.ktor.client.cio) } } diff --git a/equinox-core/build.gradle.kts b/equinox-core/build.gradle.kts index 3f00f2c..7a88501 100644 --- a/equinox-core/build.gradle.kts +++ b/equinox-core/build.gradle.kts @@ -89,7 +89,7 @@ kotlin { iosArm64Main.dependsOn(this) iosSimulatorArm64Main.dependsOn(this) dependencies { - implementation(libs.ktor.client.darwin) + implementation(libs.ktor.client.cio) } } diff --git a/equinox-core/src/iosMain/kotlin/com/tecknobit/equinoxcore/network/EngineConfigurator.ios.kt b/equinox-core/src/iosMain/kotlin/com/tecknobit/equinoxcore/network/EngineConfigurator.ios.kt index f4ce21c..8255b76 100644 --- a/equinox-core/src/iosMain/kotlin/com/tecknobit/equinoxcore/network/EngineConfigurator.ios.kt +++ b/equinox-core/src/iosMain/kotlin/com/tecknobit/equinoxcore/network/EngineConfigurator.ios.kt @@ -1,9 +1,7 @@ package com.tecknobit.equinoxcore.network import io.ktor.client.* -import io.ktor.client.engine.darwin.* -import platform.Foundation.NSURLCredential -import platform.Foundation.NSURLSessionAuthChallengeUseCredential +import io.ktor.client.engine.cio.* /** * Method to obtain a platform-based HTTP engine to execute HTTP requests. @@ -18,17 +16,12 @@ internal actual fun obtainHttpEngine( connectionTimeout: Long, byPassSSLValidation: Boolean, ): HttpClient { - return HttpClient(Darwin) { + return HttpClient(CIO) { engine { - configureRequest { - setTimeoutInterval(connectionTimeout / 1000.0) - } - if (!byPassSSLValidation) { - handleChallenge { _, _, _, completionHandler -> - completionHandler( - NSURLSessionAuthChallengeUseCredential.toInt(), - NSURLCredential() - ) + requestTimeout = connectionTimeout + if (byPassSSLValidation) { + https { + serverName = null } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1d0f30b..3685d49 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,8 +22,8 @@ dokka-base = { module = "org.jetbrains.dokka:dokka-base", version.ref = "dokka" kmprefs = { module = "io.github.n7ghtm4r3:KMPrefs", version.ref = "kmprefs" } kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } +ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } -ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" } ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" } ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } #equinox-compose