Mercurial > hg > orthanc-databases
diff Framework/MySQL/MySQLParameters.cpp @ 171:215782cadfc2 optimized-routes
merge default -> optimized-routes
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 12 Nov 2020 10:51:18 +0100 |
parents | 4d32c9c8d6c0 |
children | 6fe74f9a516e |
line wrap: on
line diff
--- a/Framework/MySQL/MySQLParameters.cpp Tue Jul 14 09:47:46 2020 +0200 +++ b/Framework/MySQL/MySQLParameters.cpp Thu Nov 12 10:51:18 2020 +0100 @@ -52,46 +52,58 @@ } - MySQLParameters::MySQLParameters(const OrthancPlugins::OrthancConfiguration& configuration) + MySQLParameters::MySQLParameters(const OrthancPlugins::OrthancConfiguration& pluginConfiguration, const OrthancPlugins::OrthancConfiguration& orthancConfiguration) { Reset(); std::string s; - if (configuration.LookupStringValue(s, "Host")) + if (pluginConfiguration.LookupStringValue(s, "Host")) { SetHost(s); } - if (configuration.LookupStringValue(s, "Username")) + if (pluginConfiguration.LookupStringValue(s, "Username")) { SetUsername(s); } - if (configuration.LookupStringValue(s, "Password")) + if (pluginConfiguration.LookupStringValue(s, "Password")) { SetPassword(s); } - if (configuration.LookupStringValue(s, "Database")) + if (pluginConfiguration.LookupStringValue(s, "Database")) { SetDatabase(s); } unsigned int port; - if (configuration.LookupUnsignedIntegerValue(port, "Port")) + if (pluginConfiguration.LookupUnsignedIntegerValue(port, "Port")) { SetPort(port); } - if (configuration.LookupStringValue(s, "UnixSocket")) + if (pluginConfiguration.LookupStringValue(s, "UnixSocket")) { SetUnixSocket(s); } - lock_ = configuration.GetBooleanValue("Lock", true); // Use locking by default + lock_ = pluginConfiguration.GetBooleanValue("Lock", true); // Use locking by default + + ssl_ = pluginConfiguration.GetBooleanValue("EnableSsl", false); + verifySslServerCertificates_ = pluginConfiguration.GetBooleanValue("SslVerifyServerCertificates", true); + + const std::string defaultCaCertificates = orthancConfiguration.GetStringValue("HttpsCACertificates", ""); + sslCaCertificates_ = pluginConfiguration.GetStringValue("SslCACertificates", defaultCaCertificates); - maxConnectionRetries_ = configuration.GetUnsignedIntegerValue("MaximumConnectionRetries", 10); - connectionRetryInterval_ = configuration.GetUnsignedIntegerValue("ConnectionRetryInterval", 5); + if (ssl_ && verifySslServerCertificates_ && sslCaCertificates_.empty()) + { + LOG(ERROR) << "MySQL: No SslCACertificates defined, unable to check SSL Server certificates"; + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); + } + + maxConnectionRetries_ = pluginConfiguration.GetUnsignedIntegerValue("MaximumConnectionRetries", 10); + connectionRetryInterval_ = pluginConfiguration.GetUnsignedIntegerValue("ConnectionRetryInterval", 5); }