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