diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cowboy_req.erl | 6 | ||||
-rw-r--r-- | src/cowboy_static.erl | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index 93993f8..adfb13a 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -123,7 +123,7 @@ -type cookie_opts() :: [cookie_option()]. -export_type([cookie_opts/0]). --type resp_body_fun() :: fun(() -> {sent, non_neg_integer()}). +-type resp_body_fun() :: fun((inet:socket(), module()) -> ok). -record(http_req, { %% Transport. @@ -876,6 +876,7 @@ reply(Status, Headers, Req=#http_req{resp_body=Body}) -> iodata() | {non_neg_integer() | resp_body_fun()}, Req) -> {ok, Req} when Req::req(). reply(Status, Headers, Body, Req=#http_req{ + socket=Socket, transport=Transport, version=Version, connection=Connection, method=Method, resp_state=waiting, resp_headers=RespHeaders}) -> RespConn = response_connection(Headers, Connection), @@ -890,7 +891,8 @@ reply(Status, Headers, Body, Req=#http_req{ {<<"date">>, cowboy_clock:rfc1123()}, {<<"server">>, <<"Cowboy">>} |HTTP11Headers], <<>>, Req), - if RespType =/= hook, Method =/= <<"HEAD">> -> BodyFun(); + if RespType =/= hook, Method =/= <<"HEAD">> -> + BodyFun(Socket, Transport); true -> ok end; _ -> diff --git a/src/cowboy_static.erl b/src/cowboy_static.erl index 55d01c7..530c0f9 100644 --- a/src/cowboy_static.erl +++ b/src/cowboy_static.erl @@ -321,8 +321,10 @@ content_types_provided(Req, #state{filepath=Filepath, -spec file_contents(cowboy_req:req(), #state{}) -> tuple(). file_contents(Req, #state{filepath=Filepath, fileinfo={ok, #file_info{size=Filesize}}}=State) -> - {ok, Transport, Socket} = cowboy_req:transport(Req), - Writefile = fun() -> Transport:sendfile(Socket, Filepath) end, + Writefile = fun(Socket, Transport) -> + {ok, _} = Transport:sendfile(Socket, Filepath), + ok + end, {{stream, Filesize, Writefile}, Req, State}. |