aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_http.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/cowboy_http.erl')
-rw-r--r--src/cowboy_http.erl51
1 files changed, 0 insertions, 51 deletions
diff --git a/src/cowboy_http.erl b/src/cowboy_http.erl
index a936e2c..c3bef2f 100644
--- a/src/cowboy_http.erl
+++ b/src/cowboy_http.erl
@@ -17,7 +17,6 @@
-module(cowboy_http).
%% Parsing.
--export([request_line/1]).
-export([list/2]).
-export([nonempty_list/2]).
-export([content_type/1]).
@@ -51,15 +50,10 @@
-export([urlencode/2]).
-export([x_www_form_urlencoded/2]).
--type uri() :: '*' | {absoluteURI, http | https, Host::binary(),
- Port::integer() | undefined, Path::binary()}
- | {scheme, Scheme::binary(), binary()}
- | {abs_path, binary()} | binary().
-type version() :: {Major::non_neg_integer(), Minor::non_neg_integer()}.
-type headers() :: [{binary(), iodata()}].
-type status() :: non_neg_integer() | binary().
--export_type([uri/0]).
-export_type([version/0]).
-export_type([headers/0]).
-export_type([status/0]).
@@ -70,51 +64,6 @@
%% Parsing.
-%% @doc Parse a request-line.
--spec request_line(binary())
- -> {binary(), binary(), version()} | {error, badarg}.
-request_line(Data) ->
- token(Data,
- fun (Rest, Method) ->
- whitespace(Rest,
- fun (Rest2) ->
- uri_to_abspath(Rest2,
- fun (Rest3, AbsPath) ->
- whitespace(Rest3,
- fun (<< "HTTP/", Maj, ".", Min, _/binary >>)
- when Maj >= $0, Maj =< $9,
- Min >= $0, Min =< $9 ->
- {Method, AbsPath, {Maj - $0, Min - $0}};
- (_) ->
- {error, badarg}
- end)
- end)
- end)
- end).
-
-%% We just want to extract the path/qs and skip everything else.
-%% We do not really parse the URI, nor do we need to.
-uri_to_abspath(Data, Fun) ->
- case binary:match(Data, <<" ">>) of
- nomatch -> %% We require the HTTP version.
- {error, badarg};
- {Pos1, _} ->
- << URI:Pos1/binary, _:8, Rest/bits >> = Data,
- case binary:match(URI, <<"://">>) of
- nomatch -> %% Already is a path or "*".
- Fun(Rest, URI);
- {Pos2, _} ->
- << _:Pos2/binary, _:24, NoScheme/bits >> = Rest,
- case binary:match(NoScheme, <<"/">>) of
- nomatch ->
- Fun(Rest, <<"/">>);
- {Pos3, _} ->
- << _:Pos3/binary, _:8, NoHost/bits >> = NoScheme,
- Fun(Rest, << "/", NoHost/binary >>)
- end
- end
- end.
-
%% @doc Parse a non-empty list of the given type.
-spec nonempty_list(binary(), fun()) -> [any(), ...] | {error, badarg}.
nonempty_list(Data, Fun) ->