summaryrefslogtreecommitdiff
path: root/src/xmpp
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/xmpp
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/xmpp')
-rw-r--r--src/xmpp/biboumi_adhoc_commands.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/xmpp/biboumi_adhoc_commands.cpp b/src/xmpp/biboumi_adhoc_commands.cpp
index fa3a35c..ff0c8d4 100644
--- a/src/xmpp/biboumi_adhoc_commands.cpp
+++ b/src/xmpp/biboumi_adhoc_commands.cpp
@@ -162,6 +162,19 @@ void ConfigureIrcServerStep1(XmppComponent*, AdhocSession& session, XmlNode& com
}
tls_ports.add_child(required);
x.add_child(std::move(tls_ports));
+
+ XmlNode verify_cert("field");
+ verify_cert["var"] = "verify_cert";
+ verify_cert["type"] = "boolean";
+ verify_cert["label"] = "Verify certificate";
+ verify_cert["desc"] = "Whether or not to abort the connection if the server’s TLS certificate is invalid";
+ XmlNode verify_cert_value("value");
+ if (options.verifyCert.value())
+ verify_cert_value.set_inner("true");
+ else
+ verify_cert_value.set_inner("false");
+ verify_cert.add_child(std::move(verify_cert_value));
+ x.add_child(std::move(verify_cert));
#endif
XmlNode pass("field");
@@ -252,6 +265,13 @@ void ConfigureIrcServerStep2(XmppComponent*, AdhocSession& session, XmlNode& com
ports += val->get_inner() + ";";
options.tlsPorts = ports;
}
+
+ else if (field->get_tag("var") == "verify_cert" && value
+ && !value->get_inner().empty())
+ {
+ auto val = to_bool(value->get_inner());
+ options.verifyCert = val;
+ }
#endif // BOTAN_FOUND
else if (field->get_tag("var") == "pass" &&