From 3cede06283a2b7b33ec822526341a9261574a2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sun, 1 Feb 2015 19:36:13 +0100 Subject: Use cowlib master --- Makefile | 2 ++ src/cowboy_protocol.erl | 16 +++++++--------- src/cowboy_req.erl | 2 ++ src/cowboy_spdy.erl | 2 +- test/handlers/input_crash_h.erl | 2 +- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 2863118..12bedf8 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,8 @@ PLT_APPS = crypto public_key ssl # Dependencies. DEPS = cowlib ranch +dep_cowlib = git https://github.com/ninenines/cowlib master + TEST_DEPS = ct_helper gun dep_ct_helper = git https://github.com/extend/ct_helper.git master diff --git a/src/cowboy_protocol.erl b/src/cowboy_protocol.erl index 558dcc3..b1cdc3a 100644 --- a/src/cowboy_protocol.erl +++ b/src/cowboy_protocol.erl @@ -55,6 +55,7 @@ }). -include_lib("cowlib/include/cow_inline.hrl"). +-include_lib("cowlib/include/cow_parse.hrl"). %% API. @@ -264,13 +265,12 @@ match_colon(<< _, Rest/bits >>, N) -> match_colon(_, _) -> nomatch. +parse_hd_name(<< $:, Rest/bits >>, S, M, P, Q, V, H, SoFar) -> + parse_hd_before_value(Rest, S, M, P, Q, V, H, SoFar); +parse_hd_name(<< C, Rest/bits >>, S, M, P, Q, V, H, SoFar) when ?IS_WS(C) -> + parse_hd_name_ws(Rest, S, M, P, Q, V, H, SoFar); parse_hd_name(<< C, Rest/bits >>, S, M, P, Q, V, H, SoFar) -> - case C of - $: -> parse_hd_before_value(Rest, S, M, P, Q, V, H, SoFar); - $\s -> parse_hd_name_ws(Rest, S, M, P, Q, V, H, SoFar); - $\t -> parse_hd_name_ws(Rest, S, M, P, Q, V, H, SoFar); - ?INLINE_LOWERCASE(parse_hd_name, Rest, S, M, P, Q, V, H, SoFar) - end. + ?LOWER(parse_hd_name, Rest, S, M, P, Q, V, H, SoFar). parse_hd_name_ws(<< C, Rest/bits >>, S, M, P, Q, V, H, Name) -> case C of @@ -429,9 +429,7 @@ parse_host(<< $:, Rest/bits >>, false, Acc) -> parse_host(<< $], Rest/bits >>, true, Acc) -> parse_host(Rest, false, << Acc/binary, $] >>); parse_host(<< C, Rest/bits >>, E, Acc) -> - case C of - ?INLINE_LOWERCASE(parse_host, Rest, E, Acc) - end. + ?LOWER(parse_host, Rest, E, Acc). %% End of request parsing. %% diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index a197110..880c567 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -906,6 +906,8 @@ maybe_reply(Stacktrace, Req) -> ok end. +do_maybe_reply([{erlang, binary_to_integer, _, _}, {cow_http_hd, parse_content_length, _, _}|_], Req) -> + cowboy_req:reply(400, Req); do_maybe_reply([{cow_http_hd, _, _, _}|_], Req) -> cowboy_req:reply(400, Req); do_maybe_reply(_, Req) -> diff --git a/src/cowboy_spdy.erl b/src/cowboy_spdy.erl index 91c4f4a..cd43399 100644 --- a/src/cowboy_spdy.erl +++ b/src/cowboy_spdy.erl @@ -387,7 +387,7 @@ delete_child(Pid, State=#state{children=Children}) -> -> ok. request_init(FakeSocket, Peer, OnResponse, Env, Middlewares, Method, Host, Path, Version, Headers) -> - {Host2, Port} = cow_http:parse_fullhost(Host), + {Host2, Port} = cow_http_hd:parse_host(Host), {Path2, Qs} = cow_http:parse_fullpath(Path), Version2 = cow_http:parse_version(Version), Req = cowboy_req:new(FakeSocket, ?MODULE, Peer, diff --git a/test/handlers/input_crash_h.erl b/test/handlers/input_crash_h.erl index e941cca..c67bb0c 100644 --- a/test/handlers/input_crash_h.erl +++ b/test/handlers/input_crash_h.erl @@ -6,5 +6,5 @@ -export([init/2]). init(Req, content_length) -> - cowboy_error_h:ignore(cow_http_hd, number, 2), + cowboy_error_h:ignore(erlang, binary_to_integer, 1), cowboy_req:parse_header(<<"content-length">>, Req). -- cgit v1.2.3