pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/erlang/osmo-epdg/+/36199?usp=email )
Change subject: gsup_server: Spawn one process per rx message ......................................................................
gsup_server: Spawn one process per rx message
This way if rx path crashes it won't affect the gsup_server socket, which will just discard the received packet.
Change-Id: Ifb5ece08007be59657d0d2f428e9d991af696026 --- M src/gsup_server.erl 1 file changed, 16 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-epdg refs/changes/99/36199/1
diff --git a/src/gsup_server.erl b/src/gsup_server.erl index ef87b67..0ef7ae7 100644 --- a/src/gsup_server.erl +++ b/src/gsup_server.erl @@ -227,7 +227,10 @@ %% Rx IPA/GSUP message: handle_info({ipa, Socket, ?IPAC_PROTO_EXT_GSUP, GsupMsgRx}, State) -> lager:info("GSUP: Rx ~p~n", [GsupMsgRx]), - rx_gsup(Socket, GsupMsgRx, State); + misc:spawn_wait_ret(fun() -> + rx_gsup(Socket, GsupMsgRx, State) + end, + {noreply, State});
handle_info(Info, S) -> error_logger:error_report(["unknown handle_info", {module, ?MODULE}, {info, Info}, {state, S}]),