From 4b2cc45f96670e392207a49f38d018411e01f197 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Mon, 21 Feb 2022 13:25:24 -0500
Subject: [PATCH] conversation: pinCertificates must be blocking before reload

In the current code, if pinCertificate is too slow, the following
getCertificate will fail.

https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/340

Change-Id: I0813b5984b4a6952373c7bd0fad3748950139784
---
 src/jamidht/conversation.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/jamidht/conversation.cpp b/src/jamidht/conversation.cpp
index 8c6a44425b..56312296d8 100644
--- a/src/jamidht/conversation.cpp
+++ b/src/jamidht/conversation.cpp
@@ -379,12 +379,14 @@ Conversation::Impl::convCommitToMap(const ConversationCommit& commit) const
     if (!cert || !cert->issuer) {
         JAMI_WARN("No author found for commit %s, reload certificates", commit.id.c_str());
         if (repository_)
-            repository_->pinCertificates();
+            repository_->pinCertificates(true);
         // Get certificate from repo
         try {
             cert = tls::CertificateStore::instance().getCertificate(authorDevice);
             if (!cert || !cert->issuer) {
-                JAMI_ERR("No author found for commit %s", commit.id.c_str());
+                JAMI_ERR("No author found for commit %s (device: %s)",
+                         commit.id.c_str(),
+                         authorDevice.c_str());
                 return std::nullopt;
             }
         } catch (...) {
-- 
GitLab