fdroid-client/download/src/commonMain/kotlin/org/fdroid/download/Proxy.kt

21 lines
741 B
Kotlin

package org.fdroid.download
import io.ktor.client.engine.ProxyConfig
import io.ktor.client.engine.ProxyType.HTTP
import io.ktor.client.engine.ProxyType.SOCKS
import io.ktor.client.engine.resolveAddress
import io.ktor.client.engine.type
import io.ktor.http.hostIsIp
import io.ktor.util.network.port
private const val DEFAULT_PROXY_HOST = "127.0.0.1"
private const val DEFAULT_PROXY_HTTP_PORT = 8118
private const val DEFAULT_PROXY_SOCKS_PORT = 9050
internal fun ProxyConfig?.isTor(): Boolean {
if (this == null || !hostIsIp(DEFAULT_PROXY_HOST)) return false
val address = resolveAddress()
return (type == HTTP && address.port == DEFAULT_PROXY_HTTP_PORT) ||
(type == SOCKS && address.port == DEFAULT_PROXY_SOCKS_PORT)
}