diff --git a/src/ibrowse.erl b/src/ibrowse.erl index 42030af..7d592fa 100644 --- a/src/ibrowse.erl +++ b/src/ibrowse.erl @@ -442,7 +442,7 @@ do_send_req(Conn_Pid, Parsed_url, Headers, Method, Body, Options, Timeout) -> {'EXIT', {noproc, {gen_server, call, [Conn_Pid, _, _]}}} -> {error, sel_conn_closed}; {'EXIT', {normal, _}} -> - {error, req_timedout}; + {error, sel_conn_closed}; {'EXIT', {connection_closed, _}} -> {error, sel_conn_closed}; {error, connection_closed} -> diff --git a/src/ibrowse_http_client.erl b/src/ibrowse_http_client.erl index fd2c25d..2c9fc29 100644 --- a/src/ibrowse_http_client.erl +++ b/src/ibrowse_http_client.erl @@ -215,11 +215,11 @@ handle_info({stream_close, _Req_id}, State) -> handle_info({tcp_closed, _Sock}, State) -> do_trace("TCP connection closed by peer!~n", []), handle_sock_closed(State), - {stop, connection_closed, State}; + {stop, normal, State}; handle_info({ssl_closed, _Sock}, State) -> do_trace("SSL connection closed by peer!~n", []), handle_sock_closed(State), - {stop, connection_closed, State}; + {stop, normal, State}; handle_info({tcp_error, _Sock, Reason}, State) -> do_trace("Error on connection to ~1000.p:~1000.p -> ~1000.p~n", @@ -239,6 +239,7 @@ handle_info({req_timedout, From}, State) -> {value, #request{stream_to = StreamTo, req_id = ReqId}} -> catch StreamTo ! {ibrowse_async_response_timeout, ReqId}, shutting_down(State), + do_error_reply(State, req_timedout), {stop, normal, State} end;