diff Framework/MySQL/MySQLDatabase.cpp @ 163:4d32c9c8d6c0

Added support for TLS connections
author Alain Mazy <alain@mazy.be>
date Mon, 13 Jul 2020 11:59:29 +0200
parents 275e14f57f1e
children 0632c2408af3
line wrap: on
line diff
--- a/Framework/MySQL/MySQLDatabase.cpp	Mon Jul 13 11:50:54 2020 +0200
+++ b/Framework/MySQL/MySQLDatabase.cpp	Mon Jul 13 11:59:29 2020 +0200
@@ -140,7 +140,20 @@
       unsigned int protocol = MYSQL_PROTOCOL_TCP;
       mysql_options(mysql_, MYSQL_OPT_PROTOCOL, (unsigned int *) &protocol);
     }
-      
+
+    if (parameters_.IsSsl())
+    {
+      if (parameters_.IsVerifyServerCertificates())
+      {
+        my_bool verifyCert = 1;
+        mysql_options(mysql_, MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (void *) &verifyCert);
+        mysql_optionsv(mysql_, MYSQL_OPT_SSL_CA, (void *)(parameters_.GetSslCaCertificates()));
+      }
+
+      my_bool enforceTls = 1;
+      mysql_options(mysql_, MYSQL_OPT_SSL_ENFORCE, (void *) &enforceTls);
+    }
+
     const char* socket = (parameters_.GetUnixSocket().empty() ? NULL :
                           parameters_.GetUnixSocket().c_str());