From 1530d45f8e4a356a1be165709a666965b82cde9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Thu, 8 Dec 2011 18:54:20 +0100 Subject: Add default values to known_methods and allowed_methods Only allowing HEAD and GET requests by default. --- src/cowboy_http_rest.erl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/cowboy_http_rest.erl') diff --git a/src/cowboy_http_rest.erl b/src/cowboy_http_rest.erl index 3ef730f..62e712e 100644 --- a/src/cowboy_http_rest.erl +++ b/src/cowboy_http_rest.erl @@ -81,8 +81,12 @@ service_available(Req, State) -> known_methods(Req=#http_req{method=Method}, State) -> case call(Req, State, known_methods) of - no_call -> + no_call when Method =:= 'HEAD'; Method =:= 'GET'; Method =:= 'POST'; + Method =:= 'PUT'; Method =:= 'DELETE'; Method =:= 'TRACE'; + Method =:= 'CONNECT'; Method =:= 'OPTIONS' -> next(Req, State, fun uri_too_long/2); + no_call -> + next(Req, State, 501); {List, Req2, HandlerState2} -> State2 = State#state{handler_state=HandlerState2}, case lists:member(Method, List) of @@ -96,8 +100,10 @@ uri_too_long(Req, State) -> allowed_methods(Req=#http_req{method=Method}, State) -> case call(Req, State, allowed_methods) of - no_call -> + no_call when Method =:= 'HEAD'; Method =:= 'GET' -> next(Req, State, fun malformed_request/2); + no_call -> + method_not_allowed(Req, State, ['GET', 'HEAD']); {List, Req2, HandlerState2} -> State2 = State#state{handler_state=HandlerState2}, case lists:member(Method, List) of -- cgit v1.2.3