summaryrefslogtreecommitdiff
path: root/src/irc
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2015-11-03 16:56:38 +0100
committerFlorent Le Coz <louiz@louiz.org>2015-11-05 02:17:19 +0100
commite8386bd14e9783f0bef39bdf577545522e33e719 (patch)
tree6466025811c0dfdd085e96da2e40b7eee8741323 /src/irc
parent06db9b366a83121e0c914e527a367f90ec71940a (diff)
downloadbiboumi-e8386bd14e9783f0bef39bdf577545522e33e719.tar.gz
biboumi-e8386bd14e9783f0bef39bdf577545522e33e719.tar.bz2
biboumi-e8386bd14e9783f0bef39bdf577545522e33e719.tar.xz
biboumi-e8386bd14e9783f0bef39bdf577545522e33e719.zip
Provide an adhoc option to let user pass the cert verif for some IRC servers
Diffstat (limited to 'src/irc')
-rw-r--r--src/irc/irc_client.cpp11
-rw-r--r--src/irc/irc_client.hpp3
2 files changed, 14 insertions, 0 deletions
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
*/