From 64205426bf651c3fb46587eb8eb5f6fd1c1ea64d Mon Sep 17 00:00:00 2001
From: Evgeniy Khramtsov <ekhramtsov@process-one.net>
Date: Wed, 16 Jul 2014 10:33:34 +0400
Subject: [PATCH] Fix returned types

---
 src/mod_sip_registrar.erl | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/mod_sip_registrar.erl b/src/mod_sip_registrar.erl
index 9aeb058d6..298c7108b 100644
--- a/src/mod_sip_registrar.erl
+++ b/src/mod_sip_registrar.erl
@@ -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).
-- 
2.40.0