pespin has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/36177?usp=email )
Change subject: epdg_ue_fsm: Allow UE restarting authentication ......................................................................
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(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved
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":