THRIFT-2113 Erlang SSL Socket Support
Client: Erlang
Patch: David Robakowski
diff --git a/lib/erl/src/thrift_client_util.erl b/lib/erl/src/thrift_client_util.erl
index 7a11f3a..b51a0b4 100644
--- a/lib/erl/src/thrift_client_util.erl
+++ b/lib/erl/src/thrift_client_util.erl
@@ -41,7 +41,9 @@
when OptKey =:= framed;
OptKey =:= connect_timeout;
OptKey =:= recv_timeout;
- OptKey =:= sockopts ->
+ OptKey =:= sockopts;
+ OptKey =:= ssltransport;
+ OptKey =:= ssloptions->
split_options(Rest, ProtoIn, [Opt | TransIn]).
@@ -49,10 +51,15 @@
%% with the binary protocol
new(Host, Port, Service, Options)
when is_integer(Port), is_atom(Service), is_list(Options) ->
- {ProtoOpts, TransOpts} = split_options(Options),
+ {ProtoOpts, TransOpts0} = split_options(Options),
+
+ {TransportModule, TransOpts2} = case lists:keytake(ssltransport, 1, TransOpts0) of
+ {value, {_, true}, TransOpts1} -> {thrift_sslsocket_transport, TransOpts1};
+ false -> {thrift_socket_transport, TransOpts0}
+ end,
{ok, TransportFactory} =
- thrift_socket_transport:new_transport_factory(Host, Port, TransOpts),
+ TransportModule:new_transport_factory(Host, Port, TransOpts2),
{ok, ProtocolFactory} = thrift_binary_protocol:new_protocol_factory(
TransportFactory, ProtoOpts),