mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Change type #http_req{} to cowboy_req:req()
This removes cowboy_static's dependency on http.hrl.
This commit is contained in:
parent
4040a9f72d
commit
d9e76d59a1
4 changed files with 57 additions and 55 deletions
|
@ -170,7 +170,6 @@
|
|||
-module(cowboy_static).
|
||||
|
||||
%% include files
|
||||
-include("http.hrl").
|
||||
-include_lib("kernel/include/file.hrl").
|
||||
|
||||
%% cowboy_protocol callbacks
|
||||
|
@ -212,7 +211,7 @@ init({_Transport, http}, _Req, _Opts) ->
|
|||
|
||||
|
||||
%% @private Set up initial state of REST handler.
|
||||
-spec rest_init(#http_req{}, list()) -> {ok, #http_req{}, #state{}}.
|
||||
-spec rest_init(Req, list()) -> {ok, Req, #state{}} when Req::cowboy_req:req().
|
||||
rest_init(Req, Opts) ->
|
||||
Directory = proplists:get_value(directory, Opts),
|
||||
Directory1 = directory_path(Directory),
|
||||
|
@ -247,14 +246,14 @@ rest_init(Req, Opts) ->
|
|||
|
||||
|
||||
%% @private Only allow GET and HEAD requests on files.
|
||||
-spec allowed_methods(#http_req{}, #state{}) ->
|
||||
{[atom()], #http_req{}, #state{}}.
|
||||
-spec allowed_methods(Req, #state{})
|
||||
-> {[atom()], Req, #state{}} when Req::cowboy_req:req().
|
||||
allowed_methods(Req, State) ->
|
||||
{['GET', 'HEAD'], Req, State}.
|
||||
|
||||
%% @private
|
||||
-spec malformed_request(#http_req{}, #state{}) ->
|
||||
{boolean(), #http_req{}, #state{}}.
|
||||
-spec malformed_request(Req, #state{})
|
||||
-> {boolean(), Req, #state{}} when Req::cowboy_req:req().
|
||||
malformed_request(Req, #state{filepath=error}=State) ->
|
||||
{true, Req, State};
|
||||
malformed_request(Req, State) ->
|
||||
|
@ -262,8 +261,8 @@ malformed_request(Req, State) ->
|
|||
|
||||
|
||||
%% @private Check if the resource exists under the document root.
|
||||
-spec resource_exists(#http_req{}, #state{}) ->
|
||||
{boolean(), #http_req{}, #state{}}.
|
||||
-spec resource_exists(Req, #state{})
|
||||
-> {boolean(), Req, #state{}} when Req::cowboy_req:req().
|
||||
resource_exists(Req, #state{fileinfo={error, _}}=State) ->
|
||||
{false, Req, State};
|
||||
resource_exists(Req, #state{fileinfo={ok, Fileinfo}}=State) ->
|
||||
|
@ -273,7 +272,8 @@ resource_exists(Req, #state{fileinfo={ok, Fileinfo}}=State) ->
|
|||
%% @private
|
||||
%% Access to a file resource is forbidden if it exists and the local node does
|
||||
%% not have permission to read it. Directory listings are always forbidden.
|
||||
-spec forbidden(#http_req{}, #state{}) -> {boolean(), #http_req{}, #state{}}.
|
||||
-spec forbidden(Req, #state{})
|
||||
-> {boolean(), Req, #state{}} when Req::cowboy_req:req().
|
||||
forbidden(Req, #state{fileinfo={_, #file_info{type=directory}}}=State) ->
|
||||
{true, Req, State};
|
||||
forbidden(Req, #state{fileinfo={error, eacces}}=State) ->
|
||||
|
@ -285,8 +285,8 @@ forbidden(Req, #state{fileinfo={ok, #file_info{access=Access}}}=State) ->
|
|||
|
||||
|
||||
%% @private Read the time a file system system object was last modified.
|
||||
-spec last_modified(#http_req{}, #state{}) ->
|
||||
{calendar:datetime(), #http_req{}, #state{}}.
|
||||
-spec last_modified(Req, #state{})
|
||||
-> {calendar:datetime(), Req, #state{}} when Req::cowboy_req:req().
|
||||
last_modified(Req, #state{fileinfo={ok, #file_info{mtime=Modified}}}=State) ->
|
||||
{Modified, Req, State}.
|
||||
|
||||
|
@ -294,8 +294,8 @@ last_modified(Req, #state{fileinfo={ok, #file_info{mtime=Modified}}}=State) ->
|
|||
%% @private Generate the ETag header value for this file.
|
||||
%% The ETag header value is only generated if the resource is a file that
|
||||
%% exists in document root.
|
||||
-spec generate_etag(#http_req{}, #state{}) ->
|
||||
{undefined | binary(), #http_req{}, #state{}}.
|
||||
-spec generate_etag(Req, #state{})
|
||||
-> {undefined | binary(), Req, #state{}} when Req::cowboy_req:req().
|
||||
generate_etag(Req, #state{fileinfo={_, #file_info{type=regular, inode=INode,
|
||||
mtime=Modified, size=Filesize}}, filepath=Filepath,
|
||||
etag_fun={ETagFun, ETagData}}=State) ->
|
||||
|
@ -308,7 +308,7 @@ generate_etag(Req, State) ->
|
|||
|
||||
|
||||
%% @private Return the content type of a file.
|
||||
-spec content_types_provided(#http_req{}, #state{}) -> tuple().
|
||||
-spec content_types_provided(cowboy_req:req(), #state{}) -> tuple().
|
||||
content_types_provided(Req, #state{filepath=Filepath,
|
||||
mimetypes={MimetypesFun, MimetypesData}}=State) ->
|
||||
Mimetypes = [{T, file_contents}
|
||||
|
@ -317,7 +317,7 @@ content_types_provided(Req, #state{filepath=Filepath,
|
|||
|
||||
|
||||
%% @private Return a function that writes a file directly to the socket.
|
||||
-spec file_contents(#http_req{}, #state{}) -> tuple().
|
||||
-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),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue