From 5ad253c2102e8cd0cf1937b7bf4eba391b8c9930 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Wed, 7 Mar 2012 16:16:56 +0100 Subject: [PATCH] b/f: db_reg_agent: when unregistering, don't remove reg for auth & provisional reply thanks to rfuchs for report --- apps/db_reg_agent/DBRegAgent.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/db_reg_agent/DBRegAgent.cpp b/apps/db_reg_agent/DBRegAgent.cpp index 8adc5568..7aada697 100644 --- a/apps/db_reg_agent/DBRegAgent.cpp +++ b/apps/db_reg_agent/DBRegAgent.cpp @@ -830,10 +830,14 @@ void DBRegAgent::onSipReplyEvent(AmSipReplyEvent* ev) { } } - if (registration->getUnregistering()) { - registrations_mut.unlock(); - removeRegistration(subscriber_id); - registrations_mut.lock(); + // skip provisional replies & auth + if (ev->reply.code >= 200 && !auth_pending) { + // remove unregistered + if (registration->getUnregistering()) { + registrations_mut.unlock(); + removeRegistration(subscriber_id); + registrations_mut.lock(); + } } if (!delete_status) {