@@ -19,11 +19,13 @@ public class CRTClientEngine: HttpClientEngine {
1919 private var connectionPools : [ Endpoint : HTTPClientConnectionManager ] = [ : ]
2020 private var http2ConnectionPools : [ Endpoint : HTTP2StreamManager ] = [ : ]
2121 private let sharedDefaultIO = SDKDefaultIO . shared
22+ private let connectTimeoutMs : UInt32 ?
2223
2324 init ( config: CRTClientEngineConfig ) {
2425 self . windowSize = config. windowSize
2526 self . maxConnectionsPerEndpoint = config. maxConnectionsPerEndpoint
2627 self . logger = SwiftLogger ( label: " SerialExecutor " )
28+ self . connectTimeoutMs = config. connectTimeoutMs
2729 }
2830
2931 func getOrCreateConnectionPool( endpoint: Endpoint ) throws -> HTTPClientConnectionManager {
@@ -54,7 +56,11 @@ public class CRTClientEngine: HttpClientEngine {
5456
5557 var socketOptions = SocketOptions ( socketType: . stream)
5658#if os(iOS) || os(watchOS)
57- socketOptions. connectTimeoutMs = 30_000
59+ socketOptions. connectTimeoutMs = self . connectTimeoutMs ?? 30_000
60+ #else
61+ if let timeout = self . connectTimeoutMs {
62+ socketOptions. connectTimeoutMs = timeout
63+ }
5864#endif
5965 let options = HTTPClientConnectionOptions (
6066 clientBootstrap: sharedDefaultIO. clientBootstrap,
@@ -78,7 +84,11 @@ public class CRTClientEngine: HttpClientEngine {
7884 private func createHTTP2ConnectionPool( endpoint: Endpoint ) throws -> HTTP2StreamManager {
7985 var socketOptions = SocketOptions ( socketType: . stream)
8086#if os(iOS) || os(watchOS)
81- socketOptions. connectTimeoutMs = 30_000
87+ socketOptions. connectTimeoutMs = self . connectTimeoutMs ?? 30_000
88+ #else
89+ if let timeout = self . connectTimeoutMs {
90+ socketOptions. connectTimeoutMs = timeout
91+ }
8292#endif
8393 let tlsConnectionOptions = TLSConnectionOptions (
8494 context: sharedDefaultIO. tlsContext,
0 commit comments