aboutsummaryrefslogtreecommitdiff
path: root/src/mod_proxy65/mod_proxy65.hrl
blob: d0779af14895c02eec359487d7400c21f1f253d5 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
%%%----------------------------------------------------------------------
%%% RFC 1928 constants.
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2013   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., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------

%% Version
-define(VERSION_5, 5).

%% Authentication methods
-define(AUTH_ANONYMOUS, 0).

-define(AUTH_GSSAPI, 1).

-define(AUTH_PLAIN, 2).

%% Address Type
-define(AUTH_NO_METHODS, 255).

-define(ATYP_IPV4, 1).

-define(ATYP_DOMAINNAME, 3).

-define(ATYP_IPV6, 4).

%% Commands
-define(CMD_CONNECT, 1).

-define(CMD_BIND, 2).

-define(CMD_UDP, 3).

%% RFC 1928 replies
-define(SUCCESS, 0).

-define(ERR_GENERAL_FAILURE, 1).

-define(ERR_NOT_ALLOWED, 2).

-define(ERR_NETWORK_UNREACHABLE, 3).

-define(ERR_HOST_UNREACHABLE, 4).

-define(ERR_CONNECTION_REFUSED, 5).

-define(ERR_TTL_EXPIRED, 6).

-define(ERR_COMMAND_NOT_SUPPORTED, 7).

-define(ERR_ADDRESS_TYPE_NOT_SUPPORTED, 8).

%% RFC 1928 defined timeout.
-define(SOCKS5_REPLY_TIMEOUT, 10000).

-record(s5_request, {rsv = 0 :: integer(),
                     cmd = connect :: connect | udp,
                     sha1 = <<"">> :: binary()}).