2004-03-04 21:56:32 +01:00
|
|
|
%%%----------------------------------------------------------------------
|
2007-12-24 14:57:53 +01:00
|
|
|
%%%
|
2019-01-08 22:53:27 +01:00
|
|
|
%%% ejabberd, Copyright (C) 2002-2019 ProcessOne
|
2007-12-24 14:57:53 +01:00
|
|
|
%%%
|
|
|
|
%%% This program is free software; you can redistribute it and/or
|
|
|
|
%%% modify it under the terms of the GNU General Public License as
|
|
|
|
%%% published by the Free Software Foundation; either version 2 of the
|
|
|
|
%%% License, or (at your option) any later version.
|
|
|
|
%%%
|
|
|
|
%%% This program is distributed in the hope that it will be useful,
|
|
|
|
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
%%% General Public License for more details.
|
2009-01-12 15:44:42 +01:00
|
|
|
%%%
|
2014-02-22 11:27:40 +01:00
|
|
|
%%% You should have received a copy of the GNU General Public License along
|
|
|
|
%%% with this program; if not, write to the Free Software Foundation, Inc.,
|
|
|
|
%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
2007-12-24 14:57:53 +01:00
|
|
|
%%%
|
2004-03-04 21:56:32 +01:00
|
|
|
%%%----------------------------------------------------------------------
|
|
|
|
|
2013-03-14 10:33:02 +01:00
|
|
|
-record(request,
|
2015-10-07 00:06:58 +02:00
|
|
|
{method :: method(),
|
2013-03-14 10:33:02 +01:00
|
|
|
path = [] :: [binary()],
|
|
|
|
q = [] :: [{binary() | nokey, binary()}],
|
|
|
|
us = {<<>>, <<>>} :: {binary(), binary()},
|
2019-06-14 11:33:26 +02:00
|
|
|
auth :: {binary(), binary()} | {oauth, binary(), []} | undefined | invalid,
|
2013-03-14 10:33:02 +01:00
|
|
|
lang = <<"">> :: binary(),
|
|
|
|
data = <<"">> :: binary(),
|
|
|
|
ip :: {inet:ip_address(), inet:port_number()},
|
|
|
|
host = <<"">> :: binary(),
|
|
|
|
port = 5280 :: inet:port_number(),
|
2014-10-03 16:53:55 +02:00
|
|
|
opts = [] :: list(),
|
2015-10-07 00:06:58 +02:00
|
|
|
tp = http :: protocol(),
|
2018-05-14 18:30:21 +02:00
|
|
|
headers = [] :: [{atom() | binary(), binary()}],
|
|
|
|
length = 0 :: non_neg_integer(),
|
|
|
|
sockmod :: gen_tcp | fast_tls,
|
|
|
|
socket :: inet:socket() | fast_tls:tls_socket()}).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2015-02-25 10:42:59 +01:00
|
|
|
-record(ws,
|
2016-02-03 16:13:16 +01:00
|
|
|
{socket :: inet:socket() | fast_tls:tls_socket(),
|
|
|
|
sockmod = gen_tcp :: gen_tcp | fast_tls,
|
2015-02-25 10:42:59 +01:00
|
|
|
ip :: {inet:ip_address(), inet:port_number()},
|
|
|
|
host = <<"">> :: binary(),
|
|
|
|
port = 5280 :: inet:port_number(),
|
|
|
|
path = [] :: [binary()],
|
|
|
|
headers = [] :: [{atom() | binary(), binary()}],
|
|
|
|
local_path = [] :: [binary()],
|
|
|
|
q = [] :: [{binary() | nokey, binary()}],
|
2015-09-04 12:42:53 +02:00
|
|
|
buf :: binary(),
|
|
|
|
http_opts = [] :: list()}).
|
2015-10-07 00:06:58 +02:00
|
|
|
|
2018-03-28 17:34:47 +02:00
|
|
|
-type method() :: 'GET' | 'HEAD' | 'DELETE' | 'OPTIONS' | 'PUT' | 'POST' | 'TRACE' | 'PATCH'.
|
2015-10-07 00:06:58 +02:00
|
|
|
-type protocol() :: http | https.
|
|
|
|
-type http_request() :: #request{}.
|