From eef678e721d816a19c3a89fd5faa4bc54b7f26c5 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 25 Oct 2015 02:19:41 +0100 Subject: Cleanup --- tda.erl | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) (limited to 'tda.erl') diff --git a/tda.erl b/tda.erl index 2260f36..bd93a20 100644 --- a/tda.erl +++ b/tda.erl @@ -1,9 +1,6 @@ -module(tda). --export([associate_request/0, associate_result/1]). --export([release_request/0, release_result/1]). --export([associate_abort/1]). --export([client/0, stop/1, loop/1, start_client/0]). +-export([client/0, start_client/0]). -include("acse.hrl"). -include("rose.hrl"). @@ -42,22 +39,9 @@ associate_request() -> % <<97,47,128,2,7,128,161,7,6,5,43,12,0,129,90,162,3,2,1,0,163,5,161,3,2,1,1,190,20,40,18,6,7,43,12,0,130,29,129,72,160,7,160,5,3,3,0,8,0>> % Reject % <<97,25,128,2,7,128,161,7,6,5,43,12,0,129,90,162,3,2,1,1,163,5,161,3,2,1,1>> -associate_result(Bin) -> - case acse:decode('AARE-apdu', Bin) of - {ok, Pdu} -> Pdu#'AARE-apdu'.result; - {error, Reason} -> Reason - end. - -release_request() -> - acse:encode('ACSE-apdu', {rlrq, #'RLRQ-apdu'{}}). - -release_result(Bin) -> - acse:decode('RLRE-apdu', Bin). +% Abort % <<100,3,128,1,0>> -associate_abort(Bin) -> - {ok, Pdu} = acse:decode('ABRT-apdu', Bin), - {ok, Pdu#'ABRT-apdu'.'abort-source'}. % ROSE status % <<161,12,2,1,1,2,2,0,211,48,3,10,1,2>> @@ -77,18 +61,19 @@ client() -> {error, Reason} -> {error, Reason} end. -stop(Sock) -> gen_tcp:close(Sock). - loop(Sock) -> %inet:setopts(Sock, [{active, once}]), + io:format("loop~n", []), receive {tcp, Sock, Msg} -> - decode(Sock, Msg), - loop(Sock); + case decode(Sock, Msg) of + ok -> loop(Sock); + error -> gen_tcp:close(Sock) + end; {tcp_closed, _} -> closed after ?TIMEOUT -> - stop(Sock), + gen_tcp:close(Sock), timeout end. @@ -101,7 +86,7 @@ decode(Sock, Msg) -> acse -> {ok, Acse} = acse:decode('ACSE-apdu', Msg), io:format("ACSE> ~p~n", [Acse]), - acse_handler(Sock, Acse) + acse_handler(Acse) end. rose_handler(Sock, {invoke, Rose}) -> @@ -132,8 +117,13 @@ system_status(Id, Op) -> {error, Reason} -> Reason end. -acse_handler(Sock, {aare, Apdu}) -> ok; -acse_handler(Sock, {aarq, Apdu}) -> ok; -acse_handler(Sock, {rlre, _}) -> gen_tcp:close(Sock); -acse_handler(Sock, {rlrq, _}) -> gen_tcp:close(Sock); -acse_handler(Sock, {abrt, _}) -> gen_tcp:close(Sock). +acse_handler({aarq, _}) -> error; +acse_handler({aare, Apdu}) -> + case Apdu#'AARE-apdu'.result of + accepted -> ok; + 'rejected-permanent' -> error; + 'rejected-transient' -> error + end; +acse_handler({rlrq, _}) -> error; +acse_handler({rlre, _}) -> error; +acse_handler({abrt, _}) -> error. -- cgit v1.2.3