aboutsummaryrefslogtreecommitdiff
path: root/include/ejabberd_http.hrl
blob: 7e3d40ee196edbba2de98c4255e30836630b9d7a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2015   ProcessOne
%%%
%%% 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.
%%%
%%% 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.
%%%
%%%----------------------------------------------------------------------

-record(request,
	{method            :: method(),
	 path = []         :: [binary()],
	 q = []            :: [{binary() | nokey, binary()}],
	 us = {<<>>, <<>>} :: {binary(), binary()},
	 auth              :: {binary(), binary()} |
	 {auth_jid, {binary(), binary()}, jlib:jid()},
	 lang = <<"">>     :: binary(),
	 data = <<"">>     :: binary(),
	 ip                :: {inet:ip_address(), inet:port_number()},
	 host = <<"">>     :: binary(),
	 port = 5280       :: inet:port_number(),
	 opts = []         :: list(),
	 tp = http         :: protocol(),
	 headers = []      :: [{atom() | binary(), binary()}]}).

-record(ws,
	{socket                  :: inet:socket() | p1_tls:tls_socket(),
	 sockmod = gen_tcp       :: gen_tcp | p1_tls,
	 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()}],
	 buf                     :: binary(),
         http_opts = []          :: list()}).

-type method() :: 'GET' | 'HEAD' | 'DELETE' | 'OPTIONS' | 'PUT' | 'POST' | 'TRACE'.
-type protocol() :: http | https.
-type http_request() :: #request{}.