Skip to content

Commit

Permalink
Split Platform into a new plugin module
Browse files Browse the repository at this point in the history
  • Loading branch information
Goooler committed Jan 13, 2024
1 parent 044d2b6 commit 54df7e7
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 20 deletions.
Expand Up @@ -15,7 +15,6 @@ import io.ktor.network.tls.*
import io.ktor.util.date.*
import io.ktor.utils.io.*
import io.ktor.utils.io.core.*
import io.ktor.utils.io.errors.UnknownServiceException
import kotlinx.atomicfu.*
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.*
Expand Down Expand Up @@ -199,12 +198,6 @@ internal class Endpoint(
connections.incrementAndGet()

try {
if (!Platform.isCleartextTrafficPermitted(host)) {
throw UnknownServiceException(
"CLEARTEXT communication to $host not permitted by network security policy"
)
}

repeat(connectAttempts) {
val address = InetSocketAddress(host, port)

Expand Down

This file was deleted.

@@ -0,0 +1,4 @@
public final class io/ktor/client/plugins/platform/PlatformingKt {
public static final fun getPlatforming ()Lio/ktor/client/plugins/api/ClientPlugin;
}

@@ -0,0 +1,7 @@
/*
* Copyright 2014-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

description = "Ktor client platform support"

useJdkVersionForJvmTests(11)
@@ -1,8 +1,8 @@
/*
* Copyright 2014-2023 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
* Copyright 2014-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package io.ktor.client.engine.cio
package io.ktor.client.plugins.platform

internal expect object Platform {

Expand Down
@@ -0,0 +1,21 @@
/*
* Copyright 2014-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package io.ktor.client.plugins.platform

import io.ktor.client.plugins.api.ClientPlugin
import io.ktor.client.plugins.api.createClientPlugin
import io.ktor.client.request.host
import io.ktor.utils.io.errors.UnknownServiceException

public val Platforming: ClientPlugin<Any> = createClientPlugin("Platforming", ::Any) {
onRequest { request, _ ->
val host = request.host
if (!Platform.isCleartextTrafficPermitted(host)) {
throw UnknownServiceException(
"CLEARTEXT communication to $host not permitted by network security policy"
)
}
}
}
@@ -1,8 +1,8 @@
/*
* Copyright 2014-2023 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
* Copyright 2014-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package io.ktor.client.engine.cio
package io.ktor.client.plugins.platform

import java.lang.reflect.InvocationTargetException

Expand Down
@@ -0,0 +1,10 @@
/*
* Copyright 2014-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package io.ktor.client.plugins.platform

internal actual object Platform {

fun isCleartextTrafficPermitted(hostname: String): Boolean = false
}
1 change: 1 addition & 0 deletions settings.gradle.kts
Expand Up @@ -92,6 +92,7 @@ include(":ktor-client:ktor-client-plugins:ktor-client-json:ktor-client-serializa
include(":ktor-client:ktor-client-plugins:ktor-client-auth")
include(":ktor-client:ktor-client-plugins:ktor-client-call-id")
include(":ktor-client:ktor-client-plugins:ktor-client-logging")
include(":ktor-client:ktor-client-plugins:ktor-client-platform")
include(":ktor-client:ktor-client-plugins:ktor-client-encoding")
include(":ktor-client:ktor-client-plugins:ktor-client-websockets")
include(":ktor-client:ktor-client-plugins:ktor-client-content-negotiation")
Expand Down

0 comments on commit 54df7e7

Please sign in to comment.