summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-30 16:20:18 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-10-30 16:20:18 +0100
commit39e62f3f8aeb2a5e2bc8cc2affed731d7df2e03f (patch)
treed5493cf383ff165bd51a5017c93698000951e287
parentd837c94dcd08cacee427e59ff11a7e07d6d9e530 (diff)
Catch errors
-rw-r--r--src/acse.erl19
-rw-r--r--src/tda.erl7
2 files changed, 16 insertions, 10 deletions
diff --git a/src/acse.erl b/src/acse.erl
index 90ec592..cb0af0e 100644
--- a/src/acse.erl
+++ b/src/acse.erl
@@ -6,23 +6,22 @@
-export([associate/0, release/0]).
-export([decode/1, dispatch/1]).
-ui() ->
+associate() ->
{ok, UI} = 'CSTA-application-context-information-csta3':encode(
'ACSEUserInformationForCSTA', {newDefinition,
#'NewACSEUserInformationForCSTA'{cSTAVersion = [versionFive]}}),
- {'single-ASN1-type', UI}.
-
-associate() ->
'ACSE-1':encode('ACSE-apdu', {aarq, #'AARQ-apdu'{
'protocol-version' = [version1], % required
'application-context-name' = {1, 3, 12, 0, 218},
'user-information' = [#'EXTERNAL'{
'direct-reference' = {1, 3, 12, 0, 285, 200},
- encoding = ui()}]}}).
+ encoding = {'single-ASN1-type', UI}}]}}).
-release() -> 'ACSE-1':encode('ACSE-apdu', {rlrq, #'RLRQ-apdu'{}}).
+release() ->
+ 'ACSE-1':encode('ACSE-apdu', {rlrq, #'RLRQ-apdu'{}}).
-decode(Msg) -> 'ACSE-1':decode('ACSE-apdu', Msg).
+decode(Msg) ->
+ 'ACSE-1':decode('ACSE-apdu', Msg).
dispatch({aare, #'AARE-apdu'{result = Result}}) ->
case Result of
@@ -30,6 +29,8 @@ dispatch({aare, #'AARE-apdu'{result = Result}}) ->
_ -> error
end;
-dispatch({rlre, _}) -> ok;
+dispatch({rlre, _}) ->
+ ok;
-dispatch({abrt, _}) -> error.
+dispatch({abrt, _}) ->
+ error.
diff --git a/src/tda.erl b/src/tda.erl
index 7f3eba7..c151df7 100644
--- a/src/tda.erl
+++ b/src/tda.erl
@@ -67,7 +67,12 @@ decode(Data) ->
acse ->
{ok, Acse} = acse:decode(Data),
io:format("ACSE> ~p~n", [Acse]),
- acse:dispatch(Acse)
+ case acse:dispatch(Acse) of
+ error ->
+ stop();
+ _ ->
+ ok
+ end
end.
dispatch(<<Head:8,_/binary>>) ->