in src/main/scala/com/twitter/iago/server/ThriftTransport.scala [24:64]
def thriftmux(config: ParrotServerFlags) =
apply(config, true)
def apply(config: ParrotServerFlags) =
apply(config, false)
def apply(config: ParrotServerFlags, useThriftMux: Boolean) = {
val thriftClientId =
config.thriftClientIdF() match {
case "" => None
case id => Some(ClientId(id))
}
val thriftProtocolFactory = config.thriftProtocolFactory
val builder = if (useThriftMux) {
val client = ThriftMux.client
.withProtocolFactory(thriftProtocolFactory)
.configured(Thrift.param.ClientId(thriftClientId))
config.parrotClientBuilder.stack(client)
} else {
val client = Thrift.client
.withProtocolFactory(thriftProtocolFactory)
.configured(Thrift.param.ClientId(thriftClientId))
config.parrotClientBuilder.stack(client)
}
val builder2 = {
if (config.transportScheme == TransportScheme.THRIFTS) builder.tlsWithoutValidation()
else builder
}
val builder3 = {
config.victim match {
case HostPortListVictim(victims) => builder2.hosts(victims)
case ServerSetVictim(cluster) => builder2.dest(cluster)
case FinagleDestVictim(dest) => builder2.dest(dest)
}
}
new ThriftTransport(new RefcountedService(builder3.build()))
}