From 16e5d66572d73839bf4ec290a5af05a25ad3a73d Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 1 May 2014 16:31:03 +0400 Subject: [PATCH] Move some code in a separate function --- src/mod_sip_registrar.erl | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/mod_sip_registrar.erl b/src/mod_sip_registrar.erl index 48740d0ed..3e65564c1 100644 --- a/src/mod_sip_registrar.erl +++ b/src/mod_sip_registrar.erl @@ -168,24 +168,7 @@ handle_info({delete, US, SIPSocket, CallID, CSeq}, State) -> delete_session(US, SIPSocket, CallID, CSeq), {noreply, State}; handle_info({timeout, TRef, US}, State) -> - case mnesia:dirty_read(sip_session, US) of - [#sip_session{bindings = Bindings}] -> - case lists:filter( - fun(#binding{tref = TRef1}) when TRef1 == TRef -> - false; - (_) -> - true - end, Bindings) of - [] -> - mnesia:dirty_delete(sip_session, US); - NewBindings -> - mnesia:dirty_write(sip_session, - #sip_session{us = US, - bindings = NewBindings}) - end; - [] -> - ok - end, + delete_expired_session(US, TRef), {noreply, State}; handle_info(_Info, State) -> ?ERROR_MSG("got unexpected info: ~p", [_Info]), @@ -264,6 +247,26 @@ delete_session(US, SIPSocket, CallID, CSeq) -> {error, notfound} end. +delete_expired_session(US, TRef) -> + case mnesia:dirty_read(sip_session, US) of + [#sip_session{bindings = Bindings}] -> + case lists:filter( + fun(#binding{tref = TRef1}) when TRef1 == TRef -> + false; + (_) -> + true + end, Bindings) of + [] -> + mnesia:dirty_delete(sip_session, US); + NewBindings -> + mnesia:dirty_write(sip_session, + #sip_session{us = US, + bindings = NewBindings}) + end; + [] -> + ok + end. + min_expires() -> 60.