From 7f78b081003e043e732a18ee486c600ec684aff6 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sun, 14 Aug 2022 17:34:11 +0100 Subject: [PATCH] mobile: add host mode in NetCfg (#933) --- .../src/main/java/chat/simplex/app/model/SimpleXAPI.kt | 9 +++++++++ apps/ios/SimpleXChat/APITypes.swift | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index e2c469e47a..7cf7053630 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -1293,6 +1293,8 @@ class ArchiveConfig(val archivePath: String, val disableCompression: Boolean? = @Serializable data class NetCfg( val socksProxy: String? = null, + val hostMode: HostMode = HostMode.OnionViaSocks, + val requiredHostMode: Boolean = false, val tcpConnectTimeout: Long, // microseconds val tcpTimeout: Long, // microseconds val tcpKeepAlive: KeepAliveOpts?, @@ -1322,6 +1324,13 @@ data class NetCfg( } } +@Serializable +enum class HostMode { + @SerialName("onionViaSocks") OnionViaSocks, + @SerialName("onion") Onion, + @SerialName("public") Public; +} + @Serializable data class KeepAliveOpts( val keepIdle: Int, // seconds diff --git a/apps/ios/SimpleXChat/APITypes.swift b/apps/ios/SimpleXChat/APITypes.swift index 1fc620c0a3..746e0366d8 100644 --- a/apps/ios/SimpleXChat/APITypes.swift +++ b/apps/ios/SimpleXChat/APITypes.swift @@ -516,6 +516,8 @@ public struct ArchiveConfig: Encodable { public struct NetCfg: Codable, Equatable { public var socksProxy: String? = nil + public var hostMode: HostMode = .publicHost + public var requiredHostMode = false public var tcpConnectTimeout: Int // microseconds public var tcpTimeout: Int // microseconds public var tcpKeepAlive: KeepAliveOpts? @@ -540,6 +542,12 @@ public struct NetCfg: Codable, Equatable { public var enableKeepAlive: Bool { tcpKeepAlive != nil } } +public enum HostMode: String, Codable { + case onionViaSocks + case onionHost = "onion" + case publicHost = "public" +} + public struct KeepAliveOpts: Codable, Equatable { public var keepIdle: Int // seconds public var keepIntvl: Int // seconds