0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00

Merge branch 'binary-expires' of git://github.com/NineFX/cowboy

This commit is contained in:
Loïc Hoguin 2014-06-10 08:38:54 +02:00
commit fc7e038fba
4 changed files with 32 additions and 2 deletions

View file

@ -275,7 +275,7 @@ REST callbacks description
### expires
> * Methods: GET, HEAD
> * Value type: calendar:datetime() | undefined
> * Value type: calendar:datetime() | binary() | undefined
> * Default value: undefined
>
> Return the date of expiration of the resource.

View file

@ -52,7 +52,7 @@
%% Cached resource calls.
etag :: undefined | no_call | {strong | weak, binary()},
last_modified :: undefined | no_call | calendar:datetime(),
expires :: undefined | no_call | calendar:datetime()
expires :: undefined | no_call | calendar:datetime() | binary()
}).
-spec upgrade(Req, Env, module(), any())
@ -896,6 +896,10 @@ set_resp_expires(Req, State) ->
case Expires of
Expires when is_atom(Expires) ->
{Req2, State2};
Expires when is_binary(Expires) ->
Req3 = cowboy_req:set_resp_header(
<<"expires">>, Expires, Req2),
{Req3, State2};
Expires ->
ExpiresBin = cowboy_clock:rfc1123(Expires),
Req3 = cowboy_req:set_resp_header(

View file

@ -207,6 +207,7 @@ init_dispatch(Config) ->
{"/patch", rest_patch_resource, []},
{"/resetags", rest_resource_etags, []},
{"/rest_expires", rest_expires, []},
{"/rest_expires_binary", rest_expires_binary, []},
{"/rest_empty_resource", rest_empty_resource, []},
{"/loop_stream_recv", http_loop_stream_recv, []},
{"/", http_handler, []}
@ -687,6 +688,13 @@ rest_expires(Config) ->
Expires = LastModified = <<"Fri, 21 Sep 2012 22:36:14 GMT">>,
ok.
rest_expires_binary(Config) ->
ConnPid = gun_open(Config),
Ref = gun:get(ConnPid, "/rest_expires_binary"),
{response, nofin, 200, Headers} = gun:await(ConnPid, Ref),
{_, <<"0">>} = lists:keyfind(<<"expires">>, 1, Headers),
ok.
rest_keepalive(Config) ->
ConnPid = gun_open(Config),
Refs = [gun:get(ConnPid, "/simple") || _ <- lists:seq(1, 10)],

View file

@ -0,0 +1,18 @@
-module(rest_expires_binary).
-export([init/3]).
-export([content_types_provided/2]).
-export([get_text_plain/2]).
-export([expires/2]).
init(_Transport, _Req, _Opts) ->
{upgrade, protocol, cowboy_rest}.
content_types_provided(Req, State) ->
{[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
get_text_plain(Req, State) ->
{<<"This is REST!">>, Req, State}.
expires(Req, State) ->
{<<"0">>, Req, State}.