diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cowboy_req.erl | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index 98fc895..3c81254 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -118,10 +118,50 @@ -export([to_list/1]). -export([transport/1]). --include("http.hrl"). -include_lib("eunit/include/eunit.hrl"). --type req() :: #http_req{}. +-record(http_req, { + %% Transport. + socket = undefined :: undefined | inet:socket(), + transport = undefined :: undefined | module(), + connection = keepalive :: keepalive | close, + + %% Request. + pid = undefined :: pid(), + method = 'GET' :: cowboy_http:method(), + version = {1, 1} :: cowboy_http:version(), + peer = undefined :: undefined | {inet:ip_address(), inet:port_number()}, + host = undefined :: undefined | binary(), + host_info = undefined :: undefined | cowboy_dispatcher:tokens(), + port = undefined :: undefined | inet:port_number(), + path = undefined :: binary(), + path_info = undefined :: undefined | cowboy_dispatcher:tokens(), + qs_vals = undefined :: undefined | list({binary(), binary() | true}), + raw_qs = undefined :: binary(), + bindings = undefined :: undefined | cowboy_dispatcher:bindings(), + headers = [] :: cowboy_http:headers(), + p_headers = [] :: [any()], %% @todo Improve those specs. + cookies = undefined :: undefined | [{binary(), binary()}], + meta = [] :: [{atom(), any()}], + + %% Request body. + body_state = waiting :: waiting | done | {stream, fun(), any(), fun()}, + multipart = undefined :: undefined | {non_neg_integer(), fun()}, + buffer = <<>> :: binary(), + + %% Response. + resp_state = waiting :: locked | waiting | chunks | done, + resp_headers = [] :: cowboy_http:headers(), + resp_body = <<>> :: iodata() + | {non_neg_integer(), fun(() -> {sent, non_neg_integer()})}, + + %% Functions. + onresponse = undefined :: undefined | fun((cowboy_http:status(), + cowboy_http:headers(), Req) -> Req), + urldecode :: {fun((binary(), T) -> binary()), T} +}). + +-opaque req() :: #http_req{}. -export_type([req/0]). %% Request API. |