summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAsbjørn Sloth Tønnesen <ast@2e8.dk>2017-04-25 16:05:48 +0000
committerEmil Renner Berthing <esmil@mailme.dk>2017-04-26 12:51:34 +0200
commit20c1456915699ea457930e6241736112f3df20b5 (patch)
tree02d9085609675b4ff3ec2dd67e2b15638e5889a9
parentc28be2738921bc412103b42b6ad5d7956b2487ce (diff)
downloadlem-20c1456915699ea457930e6241736112f3df20b5.tar.gz
lem-20c1456915699ea457930e6241736112f3df20b5.tar.xz
lem-20c1456915699ea457930e6241736112f3df20b5.zip
http: server: body: add maxsize argument
Signed-off-by: Asbjørn Sloth Tønnesen <ast@2e8.dk>
-rw-r--r--lem/http/server.lua6
1 files changed, 5 insertions, 1 deletions
diff --git a/lem/http/server.lua b/lem/http/server.lua
index b222c09..72b8998 100644
--- a/lem/http/server.lua
+++ b/lem/http/server.lua
@@ -39,13 +39,17 @@ local Request = {}
Request.__index = Request
M.Request = Request
-function Request:body()
+function Request:body(maxsize)
local len, body = self.headers['content-length'], ''
if not len then return body end
len = tonumber(len)
if len <= 0 then return body end
+ if maxsize and len > maxsize then
+ return nil, 'oversized'
+ end
+
if self.headers['expect'] == '100-continue' then
local ok, err = self.client:write('HTTP/1.1 100 Continue\r\n\r\n')
if not ok then return nil, err end