@@ -3,39 +3,50 @@ import NIO
3
3
import NIOOpenSSL
4
4
5
5
extension PostgreSQLConnection {
6
- /// Connects to a PostgreSQL server using a TCP socket.
6
+ @ available ( * , deprecated , message : " Use `.connect(to:...)` instead. " )
7
7
public static func connect(
8
- to serverAddress: PostgreSQLDatabaseConfig . ServerAddress = . default,
8
+ hostname: String = " localhost " ,
9
+ port: Int = 5432 ,
9
10
transport: PostgreSQLTransportConfig = . cleartext,
10
11
on worker: Worker ,
11
12
onError: @escaping ( Error ) -> ( )
12
- ) throws -> Future < PostgreSQLConnection > {
13
- let handler = QueueHandler < PostgreSQLMessage , PostgreSQLMessage > ( on: worker, onError: onError)
14
- let bootstrap = ClientBootstrap ( group: worker. eventLoop)
15
- // Enable SO_REUSEADDR.
16
- . channelOption ( ChannelOptions . socket ( SocketOptionLevel ( SOL_SOCKET) , SO_REUSEADDR) , value: 1 )
17
- . channelInitializer { channel in
18
- return channel. pipeline. addPostgreSQLClientHandlers ( ) . then {
19
- channel. pipeline. add ( handler: handler)
20
- }
21
- }
22
-
23
- let connectedBootstrap : Future < Channel >
24
- switch serverAddress {
25
- case let . tcp( hostname, port) :
26
- connectedBootstrap = bootstrap. connect ( host: hostname, port: port)
27
- case let . unixSocket( socketPath) :
28
- connectedBootstrap = bootstrap. connect ( unixDomainSocketPath: socketPath)
29
- }
30
-
31
- return connectedBootstrap. flatMap { channel in
32
- let connection = PostgreSQLConnection ( queue: handler, channel: channel)
33
- if case . tls( let tlsConfiguration) = transport. method {
34
- return connection. addSSLClientHandler ( using: tlsConfiguration) . transform ( to: connection)
35
- } else {
36
- return worker. eventLoop. newSucceededFuture ( result: connection)
37
- }
38
- }
13
+ ) throws -> Future < PostgreSQLConnection > {
14
+ return connect ( to: . tcp( hostname: hostname, port: port) , transport: transport, on: worker, onError: onError)
15
+ }
16
+
17
+ /// Connects to a PostgreSQL server using a TCP socket.
18
+ public static func connect(
19
+ to serverAddress: PostgreSQLDatabaseConfig . ServerAddress = . default,
20
+ transport: PostgreSQLTransportConfig = . cleartext,
21
+ on worker: Worker ,
22
+ onError: @escaping ( Error ) -> ( )
23
+ ) throws -> Future < PostgreSQLConnection > {
24
+ let handler = QueueHandler < PostgreSQLMessage , PostgreSQLMessage > ( on: worker, onError: onError)
25
+ let bootstrap = ClientBootstrap ( group: worker. eventLoop)
26
+ // Enable SO_REUSEADDR.
27
+ . channelOption ( ChannelOptions . socket ( SocketOptionLevel ( SOL_SOCKET) , SO_REUSEADDR) , value: 1 )
28
+ . channelInitializer { channel in
29
+ return channel. pipeline. addPostgreSQLClientHandlers ( ) . then {
30
+ channel. pipeline. add ( handler: handler)
31
+ }
32
+ }
33
+
34
+ let connectedBootstrap : Future < Channel >
35
+ switch serverAddress {
36
+ case let . tcp( hostname, port) :
37
+ connectedBootstrap = bootstrap. connect ( host: hostname, port: port)
38
+ case let . unixSocket( socketPath) :
39
+ connectedBootstrap = bootstrap. connect ( unixDomainSocketPath: socketPath)
40
+ }
41
+
42
+ return connectedBootstrap. flatMap { channel in
43
+ let connection = PostgreSQLConnection ( queue: handler, channel: channel)
44
+ if case . tls( let tlsConfiguration) = transport. method {
45
+ return connection. addSSLClientHandler ( using: tlsConfiguration) . transform ( to: connection)
46
+ } else {
47
+ return worker. eventLoop. newSucceededFuture ( result: connection)
48
+ }
49
+ }
39
50
}
40
51
}
41
52
0 commit comments