From e8386bd14e9783f0bef39bdf577545522e33e719 Mon Sep 17 00:00:00 2001
From: Florent Le Coz <louiz@louiz.org>
Date: Tue, 3 Nov 2015 16:56:38 +0100
Subject: Provide an adhoc option to let user pass the cert verif for some IRC
 servers

---
 src/irc/irc_client.cpp | 11 +++++++++++
 src/irc/irc_client.hpp |  3 +++
 2 files changed, 14 insertions(+)

(limited to 'src/irc')

diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp
index 7caf443..93ea2ae 100644
--- a/src/irc/irc_client.cpp
+++ b/src/irc/irc_client.cpp
@@ -962,3 +962,14 @@ void IrcClient::leave_dummy_channel(const std::string& exit_message)
   this->dummy_channel.remove_all_users();
   this->bridge->send_muc_leave(Iid("%"s + this->hostname), std::string(this->current_nick), exit_message, true);
 }
+
+#ifdef BOTAN_FOUND
+bool IrcClient::abort_on_invalid_cert() const
+{
+#ifdef USE_DATABASE
+  auto options = Database::get_irc_server_options(this->bridge->get_bare_jid(), this->hostname);
+  return options.verifyCert.value();
+#endif
+  return true;
+}
+#endif
diff --git a/src/irc/irc_client.hpp b/src/irc/irc_client.hpp
index cdae0aa..733fc92 100644
--- a/src/irc/irc_client.hpp
+++ b/src/irc/irc_client.hpp
@@ -52,6 +52,9 @@ public:
    * complete messages from it.
    */
   void parse_in_buffer(const size_t) override final;
+#ifdef BOTAN_FOUND
+  virtual bool abort_on_invalid_cert() const override final;
+#endif
   /**
    * Return the channel with this name, create it if it does not yet exist
    */
-- 
cgit v1.2.3