瀏覽代碼

Merge branch 'master' of github.com:cmullaparthi/ibrowse

pull/47/head
Chandrashekhar Mullaparthi 14 年之前
父節點
當前提交
6c31dcea9e
共有 2 個文件被更改,包括 11 次插入5 次删除
  1. +1
    -1
      src/ibrowse.erl
  2. +10
    -4
      src/ibrowse_http_client.erl

+ 1
- 1
src/ibrowse.erl 查看文件

@ -286,7 +286,7 @@ send_req(Url, Headers, Method, Body) ->
%% Sock_opts = [Sock_opt] %% Sock_opts = [Sock_opt]
%% Sock_opt = term() %% Sock_opt = term()
%% ChunkSize = integer() %% ChunkSize = integer()
%% srtf() = boolean() | filename()
%% srtf() = boolean() | filename() | {append, filename()}
%% filename() = string() %% filename() = string()
%% response_format() = list | binary %% response_format() = list | binary
send_req(Url, Headers, Method, Body, Options) -> send_req(Url, Headers, Method, Body, Options) ->

+ 10
- 4
src/ibrowse_http_client.erl 查看文件

@ -357,7 +357,8 @@ accumulate_response(Data,
tmp_file_fd = undefined} = CurReq, tmp_file_fd = undefined} = CurReq,
http_status_code=[$2 | _]}=State) when Srtf /= false -> http_status_code=[$2 | _]}=State) when Srtf /= false ->
TmpFilename = make_tmp_filename(Srtf), TmpFilename = make_tmp_filename(Srtf),
case file:open(TmpFilename, [write, delayed_write, raw]) of
Mode = file_mode(Srtf),
case file:open(TmpFilename, [Mode, delayed_write, raw]) of
{ok, Fd} -> {ok, Fd} ->
accumulate_response(Data, State#state{ accumulate_response(Data, State#state{
cur_req = CurReq#request{ cur_req = CurReq#request{
@ -434,8 +435,13 @@ make_tmp_filename(true) ->
integer_to_list(B) ++ integer_to_list(B) ++
integer_to_list(C)]); integer_to_list(C)]);
make_tmp_filename(File) when is_list(File) -> make_tmp_filename(File) when is_list(File) ->
File;
make_tmp_filename({append, File}) when is_list(File) ->
File. File.
file_mode({append, _File}) -> append;
file_mode(_Srtf) -> write.
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Handles the case when the server closes the socket %% Handles the case when the server closes the socket
@ -1361,10 +1367,10 @@ reset_state(State) ->
}. }.
set_cur_request(#state{reqs = Reqs, socket = Socket} = State) -> set_cur_request(#state{reqs = Reqs, socket = Socket} = State) ->
case queue:to_list(Reqs) of
[] ->
case queue:peek(Reqs) of
empty ->
State#state{cur_req = undefined}; State#state{cur_req = undefined};
[#request{caller_controls_socket = Ccs} = NextReq | _] ->
{value, #request{caller_controls_socket = Ccs} = NextReq} ->
case Ccs of case Ccs of
true -> true ->
do_setopts(Socket, [{active, once}], State); do_setopts(Socket, [{active, once}], State);

Loading…
取消
儲存