From 4e8c7f3269a3bf66dfbaf9701123ccf6217855d6 Mon Sep 17 00:00:00 2001
From: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
Date: Mon, 27 Apr 2015 11:56:24 -0400
Subject: [PATCH] daemon: re-register SIP account when credentials change

Refs #71715

Change-Id: Ie3bcb8a4e7c9118c3ff9b39209fd06e53e18fa26
---
 src/client/configurationmanager.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp
index c947b803cb..c4a5a10d75 100644
--- a/src/client/configurationmanager.cpp
+++ b/src/client/configurationmanager.cpp
@@ -661,8 +661,13 @@ void
 setCredentials(const std::string& accountID,
                const std::vector<std::map<std::string, std::string>>& details)
 {
-    if (auto sipaccount = ring::Manager::instance().getAccount<SIPAccount>(accountID))
-        sipaccount->setCredentials(details);
+    if (auto sipaccount = ring::Manager::instance().getAccount<SIPAccount>(accountID)) {
+        sipaccount->doUnregister([&](bool /* transport_free */) {
+            sipaccount->setCredentials(details);
+            if (sipaccount->isEnabled())
+                sipaccount->doRegister();
+        });
+    }
 }
 
 } // namespace DRing
-- 
GitLab