Skip to content

Commit 1b7cbed

Browse files
committed
simplify
1 parent 9028b45 commit 1b7cbed

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

src/MySQLdb/_mysql.c

+22-26
Original file line numberDiff line numberDiff line change
@@ -543,29 +543,28 @@ _mysql_ConnectionObject_Initialize(
543543
mysql_options(&(self->connection), MYSQL_OPT_SSL_CIPHER, cipher);
544544
}
545545

546-
if (ssl_mode_set) {
547546
#ifdef HAVE_ENUM_MYSQL_OPT_SSL_MODE
547+
if (ssl_mode_set) {
548548
mysql_options(&(self->connection), MYSQL_OPT_SSL_MODE, &ssl_mode_num);
549+
}
549550
#else
550-
// MariaDB doesn't support MYSQL_OPT_SSL_MODE.
551-
// See https://github.com/PyMySQL/mysqlclient/issues/474
552-
// TODO: Does MariaDB supports PREFERRED and VERIFY_CA?
553-
// We support only two levels for now.
554-
my_bool enforce_tls = 1;
555-
if (ssl_mode_num >= SSLMODE_REQUIRED) {
556-
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_ENFORCE, (void *)&enforce_tls);
557-
}
558-
if (ssl_mode_num >= SSLMODE_VERIFY_CA) {
559-
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (void *)&enforce_tls);
560-
}
561-
else {
562-
// mariadb-connector-c changed the default value of MYSQL_OPT_SSL_VERIFY_SERVER_CERT to 1.
563-
// https://github.com/mariadb-corporation/mariadb-connector-c/commit/8dffd56936df3d03eeccf47904773860a0cdeb57
564-
// for users don't want to verify the server certificate, we provide an option to disable it.
565-
my_bool my_false = 0;
566-
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (void *)&my_false);
567-
}
568-
#endif
551+
// MariaDB doesn't support MYSQL_OPT_SSL_MODE.
552+
// See https://github.com/PyMySQL/mysqlclient/issues/474
553+
// And MariDB 11.4 changed the default value of MYSQL_OPT_SSL_ENFORCE and
554+
// MYSQL_OPT_SSL_VERIFY_SERVER_CERT to 1.
555+
// https://github.com/mariadb-corporation/mariadb-connector-c/commit/8dffd56936df3d03eeccf47904773860a0cdeb57
556+
// We emulate the ssl_mode and old behavior.
557+
my_bool my_true = 1;
558+
my_bool my_false = 0;
559+
if (ssl_mode_num >= SSLMODE_REQUIRED) {
560+
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_ENFORCE, (void *)&my_true);
561+
} else {
562+
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_ENFORCE, (void *)&my_false);
563+
}
564+
if (ssl_mode_num >= SSLMODE_VERIFY_CA) {
565+
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (void *)&my_true);
566+
} else {
567+
mysql_optionsv(&(self->connection), MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (void *)&my_false);
569568
}
570569

571570
if (charset) {
@@ -580,12 +579,9 @@ _mysql_ConnectionObject_Initialize(
580579
port, unix_socket, client_flag);
581580
Py_END_ALLOW_THREADS
582581

583-
if (ssl) {
584-
int i;
585-
for (i=0; i<n_ssl_keepref; i++) {
586-
Py_DECREF(ssl_keepref[i]);
587-
ssl_keepref[i] = NULL;
588-
}
582+
for (int i=0; i<n_ssl_keepref; i++) {
583+
Py_DECREF(ssl_keepref[i]);
584+
ssl_keepref[i] = NULL;
589585
}
590586

591587
if (!conn) {

0 commit comments

Comments
 (0)