From adc363919c7b21ceb43625af37c933b002e1c7e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sun, 22 Jul 2012 05:15:15 +0200 Subject: Look for parsed headers in the cache before trying to parse --- src/cowboy_http_req.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cowboy_http_req.erl b/src/cowboy_http_req.erl index 70d627d..6f5fdfa 100644 --- a/src/cowboy_http_req.erl +++ b/src/cowboy_http_req.erl @@ -307,8 +307,15 @@ parse_header(Name, Req, Default) -> {Value, Req2} = header(Name, Req, Default), {undefined, Value, Req2}. -%% @todo This doesn't look in the cache. parse_header(Name, Req=#http_req{p_headers=PHeaders}, Default, Fun) -> + case lists:keyfind(Name, 1, PHeaders) of + {Name, P} -> + {P, Req}; + false -> + parse_header_no_cache(Name, Req, Default, Fun) + end. + +parse_header_no_cache(Name, Req=#http_req{p_headers=PHeaders}, Default, Fun) -> case header(Name, Req) of {undefined, Req2} -> {Default, Req2#http_req{p_headers=[{Name, Default}|PHeaders]}}; -- cgit v1.2.3