From 4fed5df2ddacc45514be197cba73a895ff415e5c Mon Sep 17 00:00:00 2001
From: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
Date: Wed, 15 Mar 2017 20:10:24 +0100
Subject: [PATCH] ringaccount: handle missing CA but present CA key

Change-Id: I5d79ecc58bf4ea155e421e7bf4e12d9364fbaca1
---
 src/ringdht/ringaccount.cpp | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index 281f635232..2a262089c5 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -1391,14 +1391,12 @@ RingAccount::updateCertificates(ArchiveContent& archive, dht::crypto::Identity&
     // Currently set the CA flag and update expiration dates
     bool updated = false;
 
-    // Update CA if possible and relevant
     auto& cert = archive.id.second;
     auto ca = cert->issuer;
-    if (ca and not ca->issuer) {
-        if (not ca->isCA() or ca->getExpiration() < clock::now()) {
-            ca = std::make_shared<Certificate>(Certificate::generate(*archive.ca_key, "Ring CA", {}, true));
-            updated = true;
-        }
+    // Update CA if possible and relevant
+    if (not ca or (not ca->issuer and (not ca->isCA() or ca->getExpiration() < clock::now()))) {
+        ca = std::make_shared<Certificate>(Certificate::generate(*archive.ca_key, "Ring CA", {}, true));
+        updated = true;
     }
 
     // Update certificate
-- 
GitLab