From db715a3eb1d5442adf524e85541392a9b4eafe43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sat, 19 Mar 2011 14:16:17 +0100 Subject: Comparisons of host names MUST be case-insensitive. --- src/cowboy_http_protocol.erl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cowboy_http_protocol.erl b/src/cowboy_http_protocol.erl index 6aff959..0e1eb13 100644 --- a/src/cowboy_http_protocol.erl +++ b/src/cowboy_http_protocol.erl @@ -84,13 +84,14 @@ wait_header(Req, State=#state{socket=Socket, Value::string()} | http_eoh, Req::#http_req{}, State::#state{}) -> ok. header({http_header, _I, 'Host', _R, Value}, Req=#http_req{path=Path}, State=#state{dispatch=Dispatch}) -> - Host = cowboy_dispatcher:split_host(Value), + Value2 = string:to_lower(Value), + Host = cowboy_dispatcher:split_host(Value2), %% @todo We probably want to filter the Host and Path here to allow %% things like url rewriting. case cowboy_dispatcher:match(Host, Path, Dispatch) of {ok, Handler, Opts, Binds} -> wait_header(Req#http_req{host=Host, bindings=Binds, - headers=[{'Host', Value}|Req#http_req.headers]}, + headers=[{'Host', Value2}|Req#http_req.headers]}, State#state{handler={Handler, Opts}}); {error, notfound} -> error_terminate(404, State) -- cgit v1.2.3