diff --git a/src/qhl.erl b/src/qhl.erl index a6c6134..43f92bc 100644 --- a/src/qhl.erl +++ b/src/qhl.erl @@ -27,7 +27,8 @@ -spec parse(Socket, Received) -> Result when Socket :: gen_tcp:socket(), Received :: binary(), - Result :: {ok, #request{}} | {error, Reason}, + Result :: {ok, #request{}, Next} | {error, Reason}, + Next :: none | binary(), Reason :: term(). % FIXME %% @doc %% @equiv parse(Socket, Received, #request{}) @@ -40,13 +41,17 @@ parse(Socket, Received) -> when Socket :: gen_tcp:socket(), Received :: binary(), Request :: #request{}, - Result :: {ok, #request{}} | {error, Reason}, + Result :: {ok, #request{}, Next} | {error, Reason}, + Next :: none | binary(), Reason :: term(). % FIXME %5 @doc %% Pass this function the connection socket and whatever the receive loop has acquired, %% and receive back a parsed #request{} record. This requires that you have imported %% the `http.hrl' and set `{mode, binary}' and `{active, once}' options on the %% socket. +%% +%% `Next' is any additional binary data found on the socket after a valid +%% request is parsed (presumably the beginning of a sequential request). parse(Socket, Received, M = #request{method = undefined}) -> case read_method(Socket, Received) of