pespin has uploaded this change for review.
epdg_ue_fsm: Allow UE restarting authentication
Related: OS#6391
Change-Id: I33387deafaaa14fa21921fc5523f88db93283609
---
M src/epdg_ue_fsm.erl
1 file changed, 22 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/77/36177/1
diff --git a/src/epdg_ue_fsm.erl b/src/epdg_ue_fsm.erl
index 940ee61..703e242 100644
--- a/src/epdg_ue_fsm.erl
+++ b/src/epdg_ue_fsm.erl
@@ -176,6 +176,12 @@
%% Internal helpers
%% ------------------------------------------------------------------
+ev_handle({call, From}, {auth_request, PdpTypeNr, Apn}, Data) ->
+ case epdg_diameter_swm:auth_request(Data#ue_fsm_data.imsi, PdpTypeNr, Apn) of
+ ok -> {next_state, state_wait_auth_resp, Data, [{reply,From,ok}]};
+ {error, Err} -> {stop_and_reply, Err, Data, [{reply,From,{error,Err}}]}
+ end.
+
%% ------------------------------------------------------------------
%% gen_statem Function Definitions
%% ------------------------------------------------------------------
@@ -199,12 +205,9 @@
state_new(enter, _OldState, Data) ->
{keep_state, Data};
-state_new({call, From}, {auth_request, PdpTypeNr, Apn}, Data) ->
+state_new({call, _From} = EvType, {auth_request, PdpTypeNr, Apn} = EvContent, Data) ->
lager:info("ue_fsm state_new event=auth_request {~p, ~p}, ~p~n", [PdpTypeNr, Apn, Data]),
- case epdg_diameter_swm:auth_request(Data#ue_fsm_data.imsi, PdpTypeNr, Apn) of
- ok -> {next_state, state_wait_auth_resp, Data, [{reply,From,ok}]};
- {error, Err} -> {stop_and_reply, Err, Data, [{reply,From,{error,Err}}]}
- end;
+ ev_handle(EvType, EvContent, Data);
state_new({call, From}, purge_ms_request, Data) ->
lager:info("ue_fsm state_new event=purge_ms_request, ~p~n", [Data]),
@@ -228,6 +231,10 @@
state_authenticating(enter, _OldState, Data) ->
{keep_state, Data};
+state_authenticating({call, _From} = EvType, {auth_request, PdpTypeNr, Apn} = EvContent, Data) ->
+ lager:info("ue_fsm state_authenticating event=auth_request {~p, ~p}, ~p~n", [PdpTypeNr, Apn, Data]),
+ ev_handle(EvType, EvContent, Data);
+
state_authenticating({call, From}, lu_request, Data) ->
lager:info("ue_fsm state_authenticating event=lu_request, ~p~n", [Data]),
% Rx "GSUP CEAI LU Req" is our way of saying Rx "Swm Diameter-EAP REQ (DER) with EAP AVP containing successuful auth":
To view, visit change 36177. To unsubscribe, or for help writing mail filters, visit settings.