2006-10-28 04:04:55 +02:00
|
|
|
%%%----------------------------------------------------------------------
|
2007-12-24 14:57:53 +01:00
|
|
|
%%% RFC 1928 constants.
|
|
|
|
%%%
|
|
|
|
%%%
|
2014-03-13 12:29:21 +01:00
|
|
|
%%% ejabberd, Copyright (C) 2002-2014 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
|
|
|
%%%
|
2007-12-24 14:57:53 +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., 59 Temple Place, Suite 330, Boston, MA
|
|
|
|
%%% 02111-1307 USA
|
|
|
|
%%%
|
2006-10-28 04:04:55 +02:00
|
|
|
%%%----------------------------------------------------------------------
|
|
|
|
|
|
|
|
%% Version
|
|
|
|
-define(VERSION_5, 5).
|
|
|
|
|
|
|
|
%% Authentication methods
|
|
|
|
-define(AUTH_ANONYMOUS, 0).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(AUTH_GSSAPI, 1).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(AUTH_PLAIN, 2).
|
|
|
|
|
|
|
|
%% Address Type
|
2013-03-14 10:33:02 +01:00
|
|
|
-define(AUTH_NO_METHODS, 255).
|
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(ATYP_IPV4, 1).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(ATYP_DOMAINNAME, 3).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(ATYP_IPV6, 4).
|
|
|
|
|
|
|
|
%% Commands
|
|
|
|
-define(CMD_CONNECT, 1).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(CMD_BIND, 2).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2006-10-28 04:04:55 +02:00
|
|
|
-define(CMD_UDP, 3).
|
|
|
|
|
|
|
|
%% RFC 1928 replies
|
|
|
|
-define(SUCCESS, 0).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_GENERAL_FAILURE, 1).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_NOT_ALLOWED, 2).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_NETWORK_UNREACHABLE, 3).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_HOST_UNREACHABLE, 4).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_CONNECTION_REFUSED, 5).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_TTL_EXPIRED, 6).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_COMMAND_NOT_SUPPORTED, 7).
|
2013-03-14 10:33:02 +01:00
|
|
|
|
2007-06-27 13:05:14 +02:00
|
|
|
-define(ERR_ADDRESS_TYPE_NOT_SUPPORTED, 8).
|
2006-10-28 04:04:55 +02:00
|
|
|
|
|
|
|
%% RFC 1928 defined timeout.
|
|
|
|
-define(SOCKS5_REPLY_TIMEOUT, 10000).
|
|
|
|
|
2013-03-14 10:33:02 +01:00
|
|
|
-record(s5_request, {rsv = 0 :: integer(),
|
|
|
|
cmd = connect :: connect | udp,
|
|
|
|
sha1 = <<"">> :: binary()}).
|