diff options
author | Florent Le Coz <louiz@louiz.org> | 2015-11-03 16:56:38 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2015-11-05 02:17:19 +0100 |
commit | e8386bd14e9783f0bef39bdf577545522e33e719 (patch) | |
tree | 6466025811c0dfdd085e96da2e40b7eee8741323 /src/xmpp | |
parent | 06db9b366a83121e0c914e527a367f90ec71940a (diff) | |
download | biboumi-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.cpp | 20 |
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" && |