]> granicus.if.org Git - ejabberd/commitdiff
Fix returned types
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Wed, 16 Jul 2014 06:33:34 +0000 (10:33 +0400)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Wed, 16 Jul 2014 06:33:49 +0000 (10:33 +0400)
src/mod_sip_registrar.erl

index 9aeb058d67ee09959c1d0c2b0a1774aaada0cdef..298c7108ba48b082c1884a75fc7957dad0a4eedb 100644 (file)
@@ -539,7 +539,7 @@ delete_session(#sip_session{reg_tref = RegTRef,
     mnesia:dirty_delete_object(Session).
 
 process_ping(SIPSocket) ->
-    ErrResponse = if SIPSocket#sip_socket.type == udp -> error;
+    ErrResponse = if SIPSocket#sip_socket.type == udp -> pang;
                     true -> drop
                  end,
     Sessions = mnesia:dirty_index_read(
@@ -552,8 +552,13 @@ process_ping(SIPSocket) ->
              mnesia:dirty_delete_object(Session),
              Timeout = get_flow_timeout(LServer, SIPSocket),
              NewTRef = set_timer(Session, Timeout),
-             mnesia:dirty_write(
-               Session#sip_session{flow_tref = NewTRef});
+             case mnesia:dirty_write(
+                    Session#sip_session{flow_tref = NewTRef}) of
+                 ok ->
+                     pong;
+                 _Err ->
+                     pang
+             end;
         (_, Acc) ->
              Acc
       end, ErrResponse, Sessions).