From 04bcbc444d507f6936bfee18347ec292efe0ae67 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Fri, 4 Nov 2011 11:42:36 +0100 Subject: Support 'Content-Length' in parse_header/2 --- src/cowboy_http_req.erl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/cowboy_http_req.erl') diff --git a/src/cowboy_http_req.erl b/src/cowboy_http_req.erl index 3a3dd2f..7a09bcb 100644 --- a/src/cowboy_http_req.erl +++ b/src/cowboy_http_req.erl @@ -231,6 +231,11 @@ parse_header(Name, Req, Default) when Name =:= 'Connection' -> fun (Value) -> cowboy_http:nonempty_list(Value, fun cowboy_http:token_ci/2) end); +parse_header(Name, Req, Default) when Name =:= 'Content-Length' -> + parse_header(Name, Req, Default, + fun (Value) -> + cowboy_http:digits(Value) + end); parse_header(Name, Req, Default) -> {Value, Req2} = header(Name, Req, Default), {undefined, Value, Req2}. @@ -292,12 +297,12 @@ cookies(Req=#http_req{cookies=Cookies}) -> %% @todo We probably want to allow a max length. -spec body(#http_req{}) -> {ok, binary(), #http_req{}} | {error, atom()}. body(Req) -> - {Length, Req2} = cowboy_http_req:header('Content-Length', Req), + {Length, Req2} = cowboy_http_req:parse_header('Content-Length', Req), case Length of undefined -> {error, badarg}; + {error, badarg} -> {error, badarg}; _Any -> - Length2 = list_to_integer(binary_to_list(Length)), - body(Length2, Req2) + body(Length, Req2) end. %% @doc Return Length bytes of the request body. -- cgit v1.2.3