Skip to content

Commit

Permalink
Merge pull request #64 from flyingwalrusllc/upgrade-finagle
Browse files Browse the repository at this point in the history
upgrade finagle
  • Loading branch information
jeremyrsmith authored Jan 25, 2018
2 parents aa17b5b + b98052f commit 06eaa5d
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 26 deletions.
6 changes: 4 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
language: scala

scala:
- 2.11.11
- 2.12.2
- 2.11.12
- 2.12.4

jdk:
- oraclejdk8

services:
- postgresql

sbt_args: -J-Xmx4096M

env:
- PG_HOST_PORT=127.0.0.1:5432 PG_USER=postgres PG_DBNAME=finagle_postgres_test

Expand Down
12 changes: 7 additions & 5 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@

lazy val buildSettings = Seq(
organization := "io.github.finagle",
version := "0.4.3",
scalaVersion := "2.12.2",
crossScalaVersions := Seq("2.11.11","2.12.2")
version := "0.5.0",
scalaVersion := "2.12.4",
crossScalaVersions := Seq("2.11.12","2.12.4"),
fork in Test := true
)

val baseSettings = Seq(
resolvers += Resolver.bintrayRepo("jeremyrsmith", "maven"),
libraryDependencies ++= Seq(
"com.twitter" %% "finagle-core" % "6.44.0",
"org.scalatest" %% "scalatest" % "3.0.2" % "test,it",
"com.twitter" %% "finagle-core" % "17.11.0",
"com.twitter" %% "finagle-netty3" % "17.11.0",
"org.scalatest" %% "scalatest" % "3.0.4" % "test,it",
"org.scalacheck" %% "scalacheck" % "1.13.5" % "test,it",
"org.scalamock" %% "scalamock-scalatest-support" % "3.4.2" % "test,it"
)
Expand Down
11 changes: 6 additions & 5 deletions src/main/scala/com/twitter/finagle/Postgres.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.twitter.finagle
import com.twitter.finagle.Stack.{Param, Params, Role}
import com.twitter.finagle.client.{StackClient, StdStackClient, Transporter}
import com.twitter.finagle.dispatch.SerialClientDispatcher
import com.twitter.finagle.factory.BindingFactory.Dest
import com.twitter.finagle.naming.BindingFactory.Dest
import com.twitter.finagle.netty3.Netty3Transporter
import com.twitter.finagle.param._
import com.twitter.finagle.postgres.codec._
Expand All @@ -13,7 +13,7 @@ import com.twitter.finagle.service.FailFastFactory.FailFast
import com.twitter.finagle.service._
import com.twitter.finagle.ssl.client.SslClientEngineFactory
import com.twitter.finagle.stats.StatsReceiver
import com.twitter.finagle.transport.Transport
import com.twitter.finagle.transport.{Transport, TransportContext}
import com.twitter.util.{Monitor => _, _}
import com.twitter.logging.Logger
import java.net.SocketAddress
Expand Down Expand Up @@ -103,6 +103,7 @@ object Postgres {
with WithSessionPool[Client] with WithDefaultLoadBalancer[Client] {
type In = PgRequest
type Out = PgResponse
type Context = TransportContext

def newRichClient(): postgres.PostgresClientImpl = {

Expand Down Expand Up @@ -154,9 +155,9 @@ object Postgres {

def conditionally(bool: Boolean, conf: Client => Client) = if(bool) conf(this) else this

protected def newTransporter(addr: SocketAddress): Transporter[In, Out] = mkTransport(params, addr)
protected def newTransporter(addr: SocketAddress): Transporter[In, Out, Context] = mkTransport(params, addr)

protected def newDispatcher(transport: Transport[In, Out]): Service[PgRequest, PgResponse] = {
protected def newDispatcher(transport: Transport[In, Out] { type Context <: Client.this.Context }): Service[PgRequest, PgResponse] = {
new Dispatcher(
transport,
params[Stats].statsReceiver
Expand Down Expand Up @@ -239,4 +240,4 @@ object Postgres {
RetryPolicy.TimeoutAndWriteExceptionsOnly orElse RetryPolicy.ChannelClosedExceptionsOnly
}

}
}
21 changes: 8 additions & 13 deletions src/main/scala/com/twitter/finagle/postgres/codec/PgCodec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@ import com.twitter.finagle.postgres.ResultSet
import com.twitter.finagle.postgres.connection.{AuthenticationRequired, Connection, RequestingSsl, WrongStateForEvent}
import com.twitter.finagle.postgres.messages._
import com.twitter.finagle.postgres.values.Md5Encryptor
import com.twitter.finagle.ssl.SessionVerifier
import com.twitter.finagle.ssl.client.{ SslClientConfiguration, SslClientEngineFactory }
import com.twitter.finagle.ssl.client.{ HostnameVerifier, SslClientConfiguration, SslClientEngineFactory, SslClientSessionVerifier }
import com.twitter.logging.Logger
import com.twitter.util.Future
import javax.net.ssl.{SSLContext, SSLEngine, TrustManagerFactory}
import javax.net.ssl.{SSLContext, SSLEngine, SSLSession, TrustManagerFactory}

import org.jboss.netty.buffer.{ChannelBuffer, ChannelBuffers}
import org.jboss.netty.channel._
Expand Down Expand Up @@ -229,16 +228,12 @@ class PgClientChannelHandler(
val sslHandler = new SslHandler(engine)
pipeline.addFirst("ssl", sslHandler)

val verifier = inetAddr.fold(SessionVerifier.AlwaysValid)(inet => SessionVerifier.hostname(inet.getHostString))

sslHandler.handshake().addListener(new ChannelFutureListener {
override def operationComplete(f: ChannelFuture) = {
verifier(engine.getSession).foreach { err =>
logger.error(err, "SSL host verification failed")
Channels.close(ctx.getChannel)
}
}
})
val verifier: SSLSession => Boolean = inetAddr match {
case Some(inet) =>
session => HostnameVerifier(Address(inet), SslClientConfiguration(hostname = Some(inet.getHostName)),session)
case None =>
_ => true
}

connection.receive(SwitchToSsl).foreach {
Channels.fireMessageReceived(ctx, _)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@ class IntegrationSpec extends Spec {
"client is bad" in {
val badClient: PostgresClient = getBadClient
badClient.isAvailable must equal(false)
badClient.status must equal(Status.Busy)
Set(Status.Busy, Status.Closed) must contain (badClient.status)
}
"client is closed" in {
val client: PostgresClient = getClient
Expand Down

0 comments on commit 06eaa5d

Please sign in to comment.