From dd03995ea2b5e1ff07c1da06e7b2a96329a4a369 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 27 Jul 2013 14:13:37 +0800 Subject: sctp_core: register process name and listen to SCTP socket in passive mode --- src/sctp_core.erl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sctp_core.erl b/src/sctp_core.erl index 464917a..654114b 100644 --- a/src/sctp_core.erl +++ b/src/sctp_core.erl @@ -68,7 +68,9 @@ behaviour_info(Other) -> }). start_link(InitOpts) -> - gen_fsm:start_link(?MODULE, InitOpts, [{debug, [trace]}]). + LocalPort = proplists:get_value(sctp_local_port, InitOpts), + Name = list_to_atom("sctp_core_" ++ integer_to_list(LocalPort)), + gen_fsm:start_link({local, Name}, ?MODULE, InitOpts, [{debug, [trace]}]). reconnect_sctp(L = #sctp_state{sctp_remote_ip = Ip, sctp_remote_port = Port, sctp_sock = Sock}) -> io:format("SCTP Reconnect ~p:~p~n", [Ip, Port]), @@ -108,7 +110,7 @@ init(InitOpts) -> active -> gen_fsm:send_event(self(), osmo_util:make_prim('M','SCTP_ESTABLISH',request)); _ -> - ok + ok = gen_sctp:listen(SctpSock, true) end, {ok, idle, LoopDat}; Default -> @@ -174,6 +176,9 @@ handle_info({sctp, Socket, _RemoteIp, _RemotePort, {ANC, SAC}}, associating -> NewState = established, Spec = confirm; + idle -> + NewState = established, + Spec = indication; _ -> NewState = State, Spec = indication -- cgit v1.2.3