2022-02-27 21:44:10 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
parse cookies in request
diff --git a/src/http.lua b/src/http.lua index 6d77e9c..42f4dd6 100644 --- a/src/http.lua +++ b/src/http.lua @@ -17,6 +17,17 @@ local function parse_uri(uri) return path, query, fragment end +local function parse_cookies(cookie_values) + local cookies = {} + if cookie_values ~= nil then + for pair in (cookie_values..";"):gmatch("([^;]*);") do + local key, val = pair:match("%s*([^=]*)=(.*)") + cookies[key] = val + end + end + return cookies +end + local function parse_request(data) local req = {payload="", headers={}} local stage = "status" @@ -43,6 +54,7 @@ local function parse_request(data) query_str = query_str:sub(1, #query_str-1) req["form"] = parse_query(query_str) end + req.cookies = parse_cookies(req.headers["cookie"]) return req end