From 58e89e218991a8d04108616620de9bb99dbeb7c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sat, 5 Jan 2013 20:19:43 +0100 Subject: Change the response body streaming fun interface Before we were required to get the socket and transport ourselves, now they're passed to the function. --- src/cowboy_req.erl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/cowboy_req.erl') 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; _ -> -- cgit v1.2.3