laforge submitted this change.

View Change

Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve
sctp_proxy: make fetch_info/1 return a map

Maps are a lot easier to work with and have better type hints.

Change-Id: I24029faa7e44efe34599b46fae731c801ff6191d
---
M src/sctp_proxy.erl
1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/sctp_proxy.erl b/src/sctp_proxy.erl
index b9258c3..830fe91 100644
--- a/src/sctp_proxy.erl
+++ b/src/sctp_proxy.erl
@@ -53,6 +53,18 @@

-include("s1gw_metrics.hrl").

+
+-type conn_info() :: #{state := atom(),
+ handler := pid(),
+ mme_addr := inet:ip_address(),
+ mme_port := inet:port_number(),
+ enb_aid := gen_sctp:assoc_id(),
+ mme_aid => gen_sctp:assoc_id()
+ }.
+
+-export_type([conn_info/0]).
+
+
%% ------------------------------------------------------------------
%% public API
%% ------------------------------------------------------------------
@@ -70,7 +82,7 @@
gen_statem:cast(Pid, {send_data, Data}).


--spec fetch_info(pid()) -> proplists:proplist().
+-spec fetch_info(pid()) -> conn_info().
fetch_info(Pid) ->
gen_statem:call(Pid, ?FUNCTION_NAME).

@@ -207,12 +219,11 @@
handle_event(State, {call, From}, fetch_info,
#{handler := Pid, conn_cfg := ConnCfg} = S0) ->
S1 = maps:with([enb_aid, mme_aid], S0),
- S2 = S1#{state => State,
- handler => Pid,
- mme_addr => maps:get(raddr, ConnCfg),
- mme_port => maps:get(rport, ConnCfg)},
- Reply = proplists:from_map(S2),
- {keep_state_and_data, {reply, From, Reply}};
+ Info = S1#{state => State,
+ handler => Pid,
+ mme_addr => maps:get(raddr, ConnCfg),
+ mme_port => maps:get(rport, ConnCfg)},
+ {keep_state_and_data, {reply, From, Info}};

handle_event(State, {call, From}, EventData, _S) ->
?LOG_ERROR("Unexpected call in state ~p: ~p", [State, EventData]),

To view, visit change 40905. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I24029faa7e44efe34599b46fae731c801ff6191d
Gerrit-Change-Number: 40905
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>