Skip to content

Commit 393dc22

Browse files
committed
fix(android-native): eliminate default ktor tls fallbacks
1 parent 9ebdb0b commit 393dc22

18 files changed

Lines changed: 139 additions & 27 deletions

File tree

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4-
import io.ktor.client.engine.cio.CIO
4+
import io.ktor.client.HttpClientConfig
5+
import org.ntqqrev.androidhttps.createAndroidNativePlatformHttpClient
56

6-
internal actual fun createPlatformHttpClient(): HttpClient = HttpClient(CIO)
7+
internal actual fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit): HttpClient =
8+
createAndroidNativePlatformHttpClient(block)
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45
import io.ktor.client.engine.darwin.Darwin
56

6-
internal actual fun createPlatformHttpClient(): HttpClient = HttpClient(Darwin)
7+
internal actual fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit): HttpClient = HttpClient(Darwin, block)

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/AbstractBot.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.ntqqrev.acidify.event.AcidifyEvent
2121
import org.ntqqrev.acidify.event.internal.KickSignal
2222
import org.ntqqrev.acidify.event.internal.MsgPushSignal
2323
import org.ntqqrev.acidify.internal.AbstractClient
24+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
2425
import org.ntqqrev.acidify.logging.LogHandler
2526
import org.ntqqrev.acidify.logging.LogLevel
2627
import org.ntqqrev.acidify.logging.Logger
@@ -78,7 +79,7 @@ sealed class AbstractBot(
7879
}
7980

8081

81-
internal val httpClient = HttpClient {
82+
internal val httpClient = createPlatformHttpClient {
8283
install(ContentNegotiation) {
8384
json(Json { ignoreUnknownKeys = true })
8485
}
@@ -159,4 +160,4 @@ sealed class AbstractBot(
159160
ssoSecureInfo = client.getSsoSecureInfo(cmd, sequence, payload)
160161
)
161162
}
162-
}
163+
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/LagrangeUrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import kotlinx.serialization.SerialName
1212
import kotlinx.serialization.Serializable
1313
import kotlinx.serialization.json.Json
1414
import org.ntqqrev.acidify.exception.UrlSignException
15+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1516
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
1617

1718
/**
@@ -46,7 +47,7 @@ class LagrangeUrlSignProvider(
4647
private var jwtToken: String? = jwtToken?.takeUnless { it.isBlank() }
4748
private var refreshJob: Job? = null
4849

49-
private val client = HttpClient {
50+
private val client = createPlatformHttpClient {
5051
install(ContentNegotiation) {
5152
json(jsonModule)
5253
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/UrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import io.ktor.serialization.kotlinx.json.json
1010
import kotlinx.serialization.Serializable
1111
import kotlinx.serialization.json.Json
1212
import org.ntqqrev.acidify.exception.UrlSignException
13+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1314
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
1415

1516
/**
@@ -23,7 +24,7 @@ class UrlSignProvider(val url: String, val httpProxy: String? = null) : SignProv
2324
ignoreUnknownKeys = true
2425
}
2526

26-
private val client = HttpClient {
27+
private val client = createPlatformHttpClient {
2728
install(ContentNegotiation) {
2829
json(jsonModule)
2930
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/android/AndroidLegacyUrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import kotlinx.serialization.json.Json
1717
import kotlinx.serialization.json.JsonElement
1818
import org.ntqqrev.acidify.common.SignResult
1919
import org.ntqqrev.acidify.exception.UrlSignException
20+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
2021
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
2122

2223
class AndroidLegacyUrlSignProvider(
@@ -30,7 +31,7 @@ class AndroidLegacyUrlSignProvider(
3031
private val base = Url(url)
3132
private val jsonModule = Json { ignoreUnknownKeys = true }
3233

33-
private val client = HttpClient {
34+
private val client = createPlatformHttpClient {
3435
if (!(base.user.isNullOrEmpty() || base.password.isNullOrEmpty())) {
3536
install(Auth) {
3637
basic {

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/android/AndroidUrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import kotlinx.serialization.encodeToString
1515
import kotlinx.serialization.json.Json
1616
import org.ntqqrev.acidify.common.SignResult
1717
import org.ntqqrev.acidify.exception.UrlSignException
18+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1819
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
1920

2021
/**
@@ -26,7 +27,7 @@ class AndroidUrlSignProvider(val url: String, val httpProxy: String? = null) : A
2627
val base = Url(url)
2728
private val jsonModule = Json { ignoreUnknownKeys = true }
2829

29-
private val client = HttpClient {
30+
private val client = createPlatformHttpClient {
3031
install(ContentNegotiation) {
3132
json(jsonModule)
3233
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/internal/context/TicketContext.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.ntqqrev.acidify.internal.LagrangeClient
1212
import org.ntqqrev.acidify.internal.service.system.AndroidFetchClientKey
1313
import org.ntqqrev.acidify.internal.service.system.FetchClientKey
1414
import org.ntqqrev.acidify.internal.service.system.FetchPSKey
15+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1516
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
1617
import kotlin.time.Clock
1718

@@ -38,7 +39,7 @@ internal class TicketContext(client: AbstractClient) : AbstractContext(client) {
3839
private val currentSKey = KeyWithLifetime.dummy()
3940
private val psKeyCache = mutableMapOf<String, KeyWithLifetime>()
4041
private val psKeyQueryMutex = Mutex()
41-
private val httpClient = HttpClient {
42+
private val httpClient = createPlatformHttpClient {
4243
install(HttpCookies)
4344
followRedirects = false
4445
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45

5-
internal expect fun createPlatformHttpClient(): HttpClient
6+
internal expect fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit = {}): HttpClient
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45

5-
internal actual fun createPlatformHttpClient(): HttpClient = HttpClient()
6+
internal actual fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit): HttpClient = HttpClient(block)

0 commit comments

Comments
 (0)