Repository: thrift
Updated Branches:
  refs/heads/master b26c0b8dc -> 0b09887bc


THRIFT-2842 Erlang thrift client has infinite timeout
Client: Erlang
Patch: Anthony Molinaro


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/0b09887b
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/0b09887b
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/0b09887b

Branch: refs/heads/master
Commit: 0b09887bc14427c374cd347ebb24a61d8ac0f713
Parents: b26c0b8
Author: Jens Geyer <[email protected]>
Authored: Wed May 20 21:43:33 2015 +0200
Committer: Jens Geyer <[email protected]>
Committed: Wed May 20 21:43:33 2015 +0200

----------------------------------------------------------------------
 lib/erl/src/thrift_client_util.erl      | 1 +
 lib/erl/src/thrift_socket_transport.erl | 8 +++++---
 2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/0b09887b/lib/erl/src/thrift_client_util.erl
----------------------------------------------------------------------
diff --git a/lib/erl/src/thrift_client_util.erl 
b/lib/erl/src/thrift_client_util.erl
index 02368bf..7a11f3a 100644
--- a/lib/erl/src/thrift_client_util.erl
+++ b/lib/erl/src/thrift_client_util.erl
@@ -40,6 +40,7 @@ split_options([Opt = {OptKey, _} | Rest], ProtoIn, TransIn)
 split_options([Opt = {OptKey, _} | Rest], ProtoIn, TransIn)
   when OptKey =:= framed;
        OptKey =:= connect_timeout;
+       OptKey =:= recv_timeout;
        OptKey =:= sockopts ->
     split_options(Rest, ProtoIn, [Opt | TransIn]).
 

http://git-wip-us.apache.org/repos/asf/thrift/blob/0b09887b/lib/erl/src/thrift_socket_transport.erl
----------------------------------------------------------------------
diff --git a/lib/erl/src/thrift_socket_transport.erl 
b/lib/erl/src/thrift_socket_transport.erl
index 5e1ef02..fec0241 100644
--- a/lib/erl/src/thrift_socket_transport.erl
+++ b/lib/erl/src/thrift_socket_transport.erl
@@ -54,7 +54,6 @@ read(This = #data{socket=Socket, recv_timeout=Timeout}, Len)
   when is_integer(Len), Len >= 0 ->
     case gen_tcp:recv(Socket, Len, Timeout) of
         Err = {error, timeout} ->
-            error_logger:info_msg("read timeout: peer conn ~p", 
[inet:peername(Socket)]),
             gen_tcp:close(Socket),
             {This, Err};
         Data ->
@@ -87,7 +86,9 @@ parse_factory_options([{framed, Bool} | Rest], Opts) when 
is_boolean(Bool) ->
 parse_factory_options([{sockopts, OptList} | Rest], Opts) when 
is_list(OptList) ->
     parse_factory_options(Rest, Opts#factory_opts{sockopts=OptList});
 parse_factory_options([{connect_timeout, TO} | Rest], Opts) when TO =:= 
infinity; is_integer(TO) ->
-    parse_factory_options(Rest, Opts#factory_opts{connect_timeout=TO}).
+    parse_factory_options(Rest, Opts#factory_opts{connect_timeout=TO});
+parse_factory_options([{recv_timeout, TO} | Rest], Opts) when TO =:= infinity; 
is_integer(TO) ->
+    parse_factory_options(Rest, Opts).
 
 
 %%
@@ -108,7 +109,8 @@ new_transport_factory(Host, Port, Options) ->
                 case catch gen_tcp:connect(Host, Port, SockOpts,
                                            
ParsedOpts#factory_opts.connect_timeout) of
                     {ok, Sock} ->
-                        {ok, Transport} = thrift_socket_transport:new(Sock),
+                        {ok, Transport} =
+                          thrift_socket_transport:new(Sock, Options),
                         {ok, BufTransport} =
                             case ParsedOpts#factory_opts.framed of
                                 true  -> 
thrift_framed_transport:new(Transport);

Reply via email to