summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe David Borba Manana <fdmanana@apache.org>2011-01-07 17:17:46 +0000
committerFilipe David Borba Manana <fdmanana@apache.org>2011-01-07 17:17:46 +0000
commitf77911161907bbc6eb08beb5c8301e8eb7a907f6 (patch)
tree23a3daf020ed168b5a67f22568a793f20fc182f0
parentc73a8da174f846e5fa401a25c47cb452f9a8bca6 (diff)
Merged revision 1056395 from trunk
Applied 2 more ibrowse fixes already submitted upstream https://github.com/cmullaparthi/ibrowse/pull/24 https://github.com/cmullaparthi/ibrowse/pull/25 git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1056400 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/ibrowse/ibrowse_http_client.erl13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/ibrowse/ibrowse_http_client.erl b/src/ibrowse/ibrowse_http_client.erl
index ea759488..5dce321c 100644
--- a/src/ibrowse/ibrowse_http_client.erl
+++ b/src/ibrowse/ibrowse_http_client.erl
@@ -287,10 +287,14 @@ handle_sock_data(Data, #state{status = get_header}=State) ->
{error, _Reason} ->
shutting_down(State),
{stop, normal, State};
- State_1 ->
- active_once(State_1),
- State_2 = set_inac_timer(State_1),
- {noreply, State_2}
+ #state{socket = Socket, status = Status, cur_req = CurReq} = State_1 ->
+ case {Status, CurReq} of
+ {get_header, #request{caller_controls_socket = true}} ->
+ do_setopts(Socket, [{active, once}], State_1);
+ _ ->
+ active_once(State_1)
+ end,
+ {noreply, set_inac_timer(State_1)}
end;
handle_sock_data(Data, #state{status = get_body,
@@ -683,6 +687,7 @@ send_req_1(From,
Headers, Method, Body, Options, Timeout,
#state{status = Status,
socket = Socket} = State) ->
+ cancel_timer(State#state.inactivity_timer_ref, {eat_message, timeout}),
ReqId = make_req_id(),
Resp_format = get_value(response_format, Options, list),
Caller_socket_options = get_value(socket_options, Options, []),