diff options
Diffstat (limited to 'src/mod_proxy65/mod_proxy65_lib.erl')
-rw-r--r-- | src/mod_proxy65/mod_proxy65_lib.erl | 64 |
1 files changed, 27 insertions, 37 deletions
diff --git a/src/mod_proxy65/mod_proxy65_lib.erl b/src/mod_proxy65/mod_proxy65_lib.erl index 19ad49c0..38881143 100644 --- a/src/mod_proxy65/mod_proxy65_lib.erl +++ b/src/mod_proxy65/mod_proxy65_lib.erl @@ -25,59 +25,49 @@ %%%---------------------------------------------------------------------- -module(mod_proxy65_lib). + -author('xram@jabber.ru'). -include("mod_proxy65.hrl"). --export([ - unpack_init_message/1, - unpack_auth_request/1, - unpack_request/1, - make_init_reply/1, - make_auth_reply/1, - make_reply/1, - make_error_reply/1, - make_error_reply/2 - ]). +-export([unpack_init_message/1, unpack_auth_request/1, + unpack_request/1, make_init_reply/1, make_auth_reply/1, + make_reply/1, make_error_reply/1, make_error_reply/2]). -unpack_init_message(<<?VERSION_5, N, AuthMethodList:N/binary>>) - when N > 0, N < 256 -> +unpack_init_message(<<(?VERSION_5), N, + AuthMethodList:N/binary>>) + when N > 0, N < 256 -> {ok, binary_to_list(AuthMethodList)}; +unpack_init_message(_) -> error. -unpack_init_message(_) -> - error. - -unpack_auth_request(<<1, ULen, User:ULen/binary, - PLen, Pass:PLen/binary>>) when ULen < 256, PLen < 256 -> - {binary_to_list(User), binary_to_list(Pass)}; +unpack_auth_request(<<1, ULen, User:ULen/binary, PLen, + Pass:PLen/binary>>) + when ULen < 256, PLen < 256 -> + {(User), (Pass)}; +unpack_auth_request(_) -> error. -unpack_auth_request(_) -> - error. - -unpack_request(<<?VERSION_5, CMD, RSV, - ?ATYP_DOMAINNAME, 40, - SHA1:40/binary, 0, 0>>) when CMD == ?CMD_CONNECT; - CMD == ?CMD_UDP -> - Command = if - CMD == ?CMD_CONNECT -> connect; - CMD == ?CMD_UDP -> udp +unpack_request(<<(?VERSION_5), CMD, RSV, + (?ATYP_DOMAINNAME), 40, SHA1:40/binary, 0, 0>>) + when CMD == (?CMD_CONNECT); CMD == (?CMD_UDP) -> + Command = if CMD == (?CMD_CONNECT) -> connect; + CMD == (?CMD_UDP) -> udp end, - #s5_request{cmd = Command, rsv = RSV, sha1 = binary_to_list(SHA1)}; - -unpack_request(_) -> - error. + #s5_request{cmd = Command, rsv = RSV, sha1 = (SHA1)}; +unpack_request(_) -> error. -make_init_reply(Method) -> - [?VERSION_5, Method]. +make_init_reply(Method) -> [?VERSION_5, Method]. make_auth_reply(true) -> [1, ?SUCCESS]; make_auth_reply(false) -> [1, ?ERR_NOT_ALLOWED]. make_reply(#s5_request{rsv = RSV, sha1 = SHA1}) -> - [?VERSION_5, ?SUCCESS, RSV, ?ATYP_DOMAINNAME, length(SHA1), SHA1, 0,0]. + [?VERSION_5, ?SUCCESS, RSV, ?ATYP_DOMAINNAME, + byte_size(SHA1), SHA1, 0, 0]. make_error_reply(Request) -> make_error_reply(Request, ?ERR_NOT_ALLOWED). -make_error_reply(#s5_request{rsv = RSV, sha1 = SHA1}, Reason) -> - [?VERSION_5, Reason, RSV, ?ATYP_DOMAINNAME, length(SHA1), SHA1, 0,0]. +make_error_reply(#s5_request{rsv = RSV, sha1 = SHA1}, + Reason) -> + [?VERSION_5, Reason, RSV, ?ATYP_DOMAINNAME, + byte_size(SHA1), SHA1, 0, 0]. |