pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35889?usp=email )

Change subject: AAA-Server: Convert binary Imsi coming from internal SWm to 
string
......................................................................

AAA-Server: Convert binary Imsi coming from internal SWm to string

ePDG handles Imsi as binary, but since all diameter uses strings, better
keep it as a string everywhere inside AAA-Server.
This fixes matching and finding sessions by Imsi.

Change-Id: Iba07ca02d9ca2bd6227d92b1d9c727107f37d9cd
---
M src/aaa_diameter_swm.erl
M src/aaa_ue_fsm.erl
M src/epdg_diameter_swm.erl
3 files changed, 26 insertions(+), 7 deletions(-)

Approvals:
  pespin: Looks good to me, approved
  Jenkins Builder: Verified




diff --git a/src/aaa_diameter_swm.erl b/src/aaa_diameter_swm.erl
index d425ed6..bcedcac 100644
--- a/src/aaa_diameter_swm.erl
+++ b/src/aaa_diameter_swm.erl
@@ -12,7 +12,7 @@
 }).

 -record(swm_session, {
-       imsi       :: binary(),
+       imsi       :: string(),
        pid        :: pid()
        }).

diff --git a/src/aaa_ue_fsm.erl b/src/aaa_ue_fsm.erl
index e395d58..52918d2 100644
--- a/src/aaa_ue_fsm.erl
+++ b/src/aaa_ue_fsm.erl
@@ -45,7 +45,7 @@
 -export([state_new/3, state_wait_swx_maa/3, state_wait_swx_saa/3, 
state_authenticated/3, state_authenticated_wait_swx_saa/3]).

 -record(ue_fsm_data, {
-        imsi             = unknown :: binary(),
+        imsi             = unknown :: string(),
         apn                        :: string(),
         epdg_sess_active = false   :: boolean(),
         pgw_sess_active  = false   :: boolean(),
@@ -53,7 +53,7 @@
         }).

 start_link(Imsi) ->
-        ServerName = lists:concat([?NAME, "_", binary_to_list(Imsi)]),
+        ServerName = lists:concat([?NAME, "_", Imsi]),
         lager:info("ue_fsm start_link(~p)~n", [ServerName]),
         gen_statem:start_link({local, list_to_atom(ServerName)}, ?MODULE, 
Imsi, [{debug, [trace]}]).

diff --git a/src/epdg_diameter_swm.erl b/src/epdg_diameter_swm.erl
index 2e4d738..57c0921 100644
--- a/src/epdg_diameter_swm.erl
+++ b/src/epdg_diameter_swm.erl
@@ -11,7 +11,7 @@
 }).

 -record(swm_session, {
-       imsi                   :: binary(),
+       imsi                   :: string(),
        pid                    :: pid()
     }).

@@ -34,7 +34,9 @@


 auth_request(Imsi) ->
-       Result = gen_server:call(?SERVER, {epdg_auth_req, Imsi}),
+       % In Diameter we use Imsi as strings, as done by diameter module.
+       ImsiStr = binary_to_list(Imsi),
+       Result = gen_server:call(?SERVER, {epdg_auth_req, ImsiStr}),
        case Result of
                {ok, _Mar} ->
                        epdg_ue_fsm:received_swm_auth_response(self(), Result),
@@ -44,7 +46,9 @@

 % Rx "GSUP CEAI LU Req" is our way of saying Rx "Swm Diameter-EAP REQ (DER) 
with EAP AVP containing successuful auth":
 auth_compl_request(Imsi, Apn) ->
-       Result = gen_server:call(?SERVER, {epdg_auth_compl_req, Imsi, Apn}),
+       % In Diameter we use Imsi as strings, as done by diameter module.
+       ImsiStr = binary_to_list(Imsi),
+       Result = gen_server:call(?SERVER, {epdg_auth_compl_req, ImsiStr, Apn}),
        case Result of
                {ok, _Mar} ->
                        epdg_ue_fsm:received_swm_auth_compl_response(self(), 
Result),
@@ -54,7 +58,9 @@

 % 3GPP TS 29.273 7.1.2.3
 session_termination_request(Imsi) ->
-       Result = gen_server:call(?SERVER, {str, Imsi}),
+       % In Diameter we use Imsi as strings, as done by diameter module.
+       ImsiStr = binary_to_list(Imsi),
+       Result = gen_server:call(?SERVER, {str, ImsiStr}),
        case Result of
                {ok, _Mar} ->
                        
epdg_ue_fsm:received_swm_session_terminate_answer(self(), Result),

--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/35889?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: erlang/osmo-epdg
Gerrit-Branch: master
Gerrit-Change-Id: Iba07ca02d9ca2bd6227d92b1d9c727107f37d9cd
Gerrit-Change-Number: 35889
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to