@@ -8,7 +8,7 @@ import com.twitter.finagle.postgres.ResultSet
8
8
import com .twitter .finagle .postgres .connection .{AuthenticationRequired , Connection , RequestingSsl , WrongStateForEvent }
9
9
import com .twitter .finagle .postgres .messages ._
10
10
import com .twitter .finagle .postgres .values .Md5Encryptor
11
- import com .twitter .finagle .ssl .client .{ HostnameVerifier , SslClientConfiguration , SslClientEngineFactory , SslClientSessionVerifier }
11
+ import com .twitter .finagle .ssl .client .{ SslClientConfiguration , SslClientEngineFactory , SslClientSessionVerifier }
12
12
import com .twitter .logging .Logger
13
13
import com .twitter .util .{ Future , Try }
14
14
import javax .net .ssl .{SSLContext , SSLEngine , SSLSession , TrustManagerFactory }
@@ -21,7 +21,6 @@ import org.jboss.netty.handler.ssl.{SslContext, SslHandler}
21
21
import scala .collection .mutable
22
22
23
23
import com .sun .corba .se .impl .protocol .RequestCanceledException
24
- import com .twitter .finagle .ssl .Ssl
25
24
import com .twitter .finagle .transport .Transport
26
25
27
26
/*
@@ -193,7 +192,7 @@ class PgClientChannelHandler(
193
192
if (useSsl) {
194
193
new Connection (startState = RequestingSsl )
195
194
} else {
196
- new Connection (startState = AuthenticationRequired )
195
+ new Connection (startState = AuthenticationRequired )
197
196
}
198
197
}
199
198
@@ -212,33 +211,35 @@ class PgClientChannelHandler(
212
211
213
212
val pipeline = ctx.getPipeline
214
213
215
- val (engine, verifier) = ctx.getChannel.getRemoteAddress match {
214
+ ctx.getChannel.getRemoteAddress match {
216
215
case i : InetSocketAddress =>
217
216
val address = Address (i)
218
217
val config = sslConfig.getOrElse(SslClientConfiguration (hostname = Some (i.getHostString)))
219
- (sslEngineFactory(address, config).self, (s : SSLSession ) => sessionVerifier(address, config, s))
220
- case _ =>
221
- (Ssl .client().self, (_ : SSLSession ) => true )
222
- }
223
-
224
- engine.setUseClientMode(true )
225
-
226
- val sslHandler = new SslHandler (engine)
227
- pipeline.addFirst(" ssl" , sslHandler)
228
-
229
- sslHandler.handshake().addListener(new ChannelFutureListener {
230
- override def operationComplete (f : ChannelFuture ) = {
231
- if (! Try (verifier(engine.getSession)).onFailure { err =>
232
- logger.error(err, " Exception thrown during SSL session verification" )
233
- }.getOrElse(false )) {
234
- logger.error(" SSL session verification failed" )
235
- Channels .close(ctx.getChannel)
218
+ val verifier = (s : SSLSession ) => sessionVerifier(address, config, s)
219
+
220
+ val engine = sslEngineFactory(address, config).self
221
+ engine.setUseClientMode(true )
222
+
223
+ val sslHandler = new SslHandler (engine)
224
+ pipeline.addFirst(" ssl" , sslHandler)
225
+
226
+ sslHandler.handshake().addListener(new ChannelFutureListener {
227
+ def operationComplete (f : ChannelFuture ) = {
228
+ if (! Try (verifier(engine.getSession)).onFailure { err =>
229
+ logger.error(err, " Exception thrown during SSL session verification" )
230
+ }.getOrElse(false )) {
231
+ logger.error(" SSL session verification failed" )
232
+ Channels .close(ctx.getChannel)
233
+ }
234
+ }
235
+ })
236
+
237
+ connection.receive(SwitchToSsl ).foreach {
238
+ Channels .fireMessageReceived(ctx, _)
236
239
}
237
- }
238
- })
239
240
240
- connection.receive( SwitchToSsl ).foreach {
241
- Channels .fireMessageReceived (ctx, _ )
241
+ case _ =>
242
+ Channels .fireExceptionCaught (ctx, new Exception ( " Unsupported socket address for SSL " ) )
242
243
}
243
244
case msg : BackendMessage =>
244
245
try {
0 commit comments