aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_http.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2017-09-25 13:52:58 +0200
committerLoïc Hoguin <[email protected]>2017-09-25 13:52:58 +0200
commitd47e22edaa1a876081c07bf49c79587c3c2d21d5 (patch)
tree7c4a23e031cb173583bde285ca88dd761303868f /src/cowboy_http.erl
parentea80e7a3097c985befa60278dde1c4cedc145fb6 (diff)
downloadcowboy-d47e22edaa1a876081c07bf49c79587c3c2d21d5.tar.gz
cowboy-d47e22edaa1a876081c07bf49c79587c3c2d21d5.tar.bz2
cowboy-d47e22edaa1a876081c07bf49c79587c3c2d21d5.zip
Cleanup various comments
Diffstat (limited to 'src/cowboy_http.erl')
-rw-r--r--src/cowboy_http.erl24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/cowboy_http.erl b/src/cowboy_http.erl
index f0f8ed7..a7c9b4d 100644
--- a/src/cowboy_http.erl
+++ b/src/cowboy_http.erl
@@ -52,18 +52,10 @@
name = undefined :: binary() | undefined
}).
-%% @todo We need a state where we wait for the stream process to ask for the body.
-%% OR DO WE
-
-%% In HTTP/2 we start receiving data before the body asks for it, even if optionally
-%% (and by default), so we need to be able to do the same for HTTP/1.1 too. This means
-%% that when we receive data (up to a certain limit, we read from the socket and decode.
-%% When we reach a limit, we stop reading from the socket momentarily until the stream
-%% process asks for more or the stream ends.
-
-%% This means that we need to keep a buffer in the stream handler (until the stream
-%% process asks for it). And that we need the body state to indicate how much we have
-%% left to read (and stop/start reading from the socket depending on value).
+%% @todo We need a state where we wait for the stream process to ask for the body
+%% and do not attempt to read from the socket while in that state (we should read
+%% up to a certain length, and then wait, basically implementing flow control but
+%% by not reading from the socket when the window is empty).
-record(ps_body, {
%% @todo flow
@@ -135,9 +127,6 @@ init(Parent, Ref, Socket, Transport, Opts) ->
terminate(undefined, {socket_error, Reason, 'An error has occurred on the socket.'})
end.
-%% @todo Send a response depending on in_state and whether one was already sent.
-%% @todo If we skip the body, skip for a specific duration.
-
before_loop(State=#state{socket=Socket, transport=Transport}, Buffer) ->
%% @todo disable this when we get to the body, until the stream asks for it?
%% Perhaps have a threshold for how much we're willing to read before waiting.
@@ -608,7 +597,6 @@ request(Buffer, State0=#state{ref=Ref, transport=Transport, peer=Peer, in_stream
scheme => Scheme,
host => Host,
port => Port,
- %% @todo The path component needs to be normalized.
path => Path,
qs => Qs,
version => Version,
@@ -623,7 +611,6 @@ request(Buffer, State0=#state{ref=Ref, transport=Transport, peer=Peer, in_stream
State = case HasBody of
true ->
State0#state{in_state=#ps_body{
- %% @todo Don't need length anymore?
transfer_decode_fun = TDecodeFun,
transfer_decode_state = TDecodeState
}};
@@ -659,8 +646,6 @@ is_http2_upgrade(#{<<"connection">> := Conn, <<"upgrade">> := Upgrade,
is_http2_upgrade(_, _) ->
false.
-%% Upgrade through an HTTP/1.1 request.
-
%% Prior knowledge upgrade, without an HTTP/1.1 request.
http2_upgrade(State=#state{parent=Parent, ref=Ref, socket=Socket, transport=Transport,
opts=Opts, peer=Peer}, Buffer) ->
@@ -673,6 +658,7 @@ http2_upgrade(State=#state{parent=Parent, ref=Ref, socket=Socket, transport=Tran
'Clients that support HTTP/2 over TLS MUST use ALPN. (RFC7540 3.4)'})
end.
+%% Upgrade via an HTTP/1.1 request.
http2_upgrade(State=#state{parent=Parent, ref=Ref, socket=Socket, transport=Transport,
opts=Opts, peer=Peer}, Buffer, HTTP2Settings, Req) ->
%% @todo