fixeria has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/38788?usp=email )
Change subject: sctp_server: cosmetic: make #server_state last argument ......................................................................
sctp_server: cosmetic: make #server_state last argument
Make it consistent with the gen_server and gen_statem API.
Change-Id: I34bcdb818f58ccfa045d9fe17743523480e785f2 --- M src/sctp_server.erl 1 file changed, 18 insertions(+), 16 deletions(-)
Approvals: pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved
diff --git a/src/sctp_server.erl b/src/sctp_server.erl index 3c7917e..938b02a 100644 --- a/src/sctp_server.erl +++ b/src/sctp_server.erl @@ -123,14 +123,14 @@
%% Handle SCTP events coming from gen_sctp module handle_info({sctp, _Socket, FromAddr, FromPort, {AncData, Data}}, S0) -> - S1 = sctp_recv(S0, {FromAddr, FromPort, AncData, Data}), + S1 = sctp_recv({FromAddr, FromPort, AncData, Data}, S0), {noreply, S1};
%% Handle termination events of the child processes handle_info({'EXIT', Pid, Reason}, #server_state{sock = Sock, clients = Clients} = S0) -> ?LOG_DEBUG("Child process ~p terminated with reason ~p", [Pid, Reason]), - case client_find(S0, Pid) of + case client_find(Pid, S0) of {ok, {Aid, _Client}} -> %% gracefully close the eNB connection gen_sctp:eof(Sock, #sctp_assoc_change{assoc_id = Aid}), @@ -157,14 +157,14 @@ %% ------------------------------------------------------------------
%% Handle an #sctp_assoc_change event (connection state) -sctp_recv(S, {FromAddr, FromPort, [], - #sctp_assoc_change{state = ConnState, - assoc_id = Aid}}) -> +sctp_recv({FromAddr, FromPort, [], + #sctp_assoc_change{state = ConnState, + assoc_id = Aid}}, + #server_state{priv = Priv} = S) -> case ConnState of comm_up -> ?LOG_NOTICE("eNB connection (id=~p, ~p:~p) established", [Aid, FromAddr, FromPort]), - Clients = client_add(S#server_state.clients, Aid, FromAddr, FromPort, - S#server_state.priv); + Clients = client_add(S#server_state.clients, Aid, FromAddr, FromPort, Priv); shutdown_comp -> ?LOG_NOTICE("eNB connection (id=~p, ~p:~p) closed", [Aid, FromAddr, FromPort]), Clients = client_del(S#server_state.clients, Aid); @@ -179,11 +179,12 @@ S#server_state{clients = Clients};
%% Handle an #sctp_sndrcvinfo event (incoming data) -sctp_recv(S, {FromAddr, FromPort, - [#sctp_sndrcvinfo{assoc_id = Aid}], Data}) -> +sctp_recv({FromAddr, FromPort, + [#sctp_sndrcvinfo{assoc_id = Aid}], Data}, + #server_state{clients = Clients} = S) -> ?LOG_DEBUG("eNB connection (id=~p, ~p:~p) -> MME: ~p", [Aid, FromAddr, FromPort, Data]), s1gw_metrics:ctr_inc(?S1GW_CTR_S1AP_ENB_ALL_RX), - case dict:find(Aid, S#server_state.clients) of + case dict:find(Aid, Clients) of {ok, #client_state{pid = Pid}} -> sctp_proxy:send_data(Pid, Data); error -> @@ -194,7 +195,8 @@ S;
%% Catch-all for other kinds of SCTP events -sctp_recv(S, {FromAddr, FromPort, AncData, Data}) -> +sctp_recv({FromAddr, FromPort, AncData, Data}, + #server_state{} = S) -> ?LOG_DEBUG("Unhandled SCTP event (~p:~p): ~p, ~p", [FromAddr, FromPort, AncData, Data]), S. @@ -223,18 +225,18 @@
%% Find a client by process ID -client_find(#server_state{clients = Clients}, Pid) -> - client_find(dict:to_list(Clients), Pid); +client_find(Pid, #server_state{clients = Clients}) -> + client_find(Pid, dict:to_list(Clients));
-client_find([{Aid, Client} | Clients], Pid) -> +client_find(Pid, [{Aid, Client} | Clients]) -> case Client of #client_state{pid = Pid} -> {ok, {Aid, Client}}; _ -> - client_find(Clients, Pid) + client_find(Pid, Clients) end;
-client_find([], _Pid) -> +client_find(_Pid, []) -> error.