From 180143f9b2ec8f82db11a89485140b1a89c4f0df Mon Sep 17 00:00:00 2001 From: Vladimir Dronnikov Date: Fri, 12 Apr 2013 09:51:47 +0400 Subject: rest: reject incorrect content-type header --- src/cowboy_rest.erl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/cowboy_rest.erl') diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl index 526f102..40baabb 100644 --- a/src/cowboy_rest.erl +++ b/src/cowboy_rest.erl @@ -776,9 +776,12 @@ accept_resource(Req, State, OnTrue) -> {CTA, Req2, HandlerState} -> CTA2 = [normalize_content_types(P) || P <- CTA], State2 = State#state{handler_state=HandlerState}, - {ok, ContentType, Req3} - = cowboy_req:parse_header(<<"content-type">>, Req2), - choose_content_type(Req3, State2, OnTrue, ContentType, CTA2) + case cowboy_req:parse_header(<<"content-type">>, Req2) of + {ok, ContentType, Req3} -> + choose_content_type(Req3, State2, OnTrue, ContentType, CTA2); + {error, badarg} -> + respond(Req2, State2, 415) + end end. %% The special content type '*' will always match. It can be used as a -- cgit v1.2.3