mirror of
https://github.com/MariaDB/server.git
synced 2025-08-10 20:41:44 +02:00

With WolfSSL, the plugins is statically compiled, and enabled, and defaults to autogenerating ssl keys, which was left unimplemented. Thus, it spits out some [ERROR] on every startup. Fixed by removing a couple some ifdefs. Allowed tcp_nossl to run on Windows. As WolfSSL is missing some APIs with FILE*, use related API that accept BIO , i.e - BIO_new_file() instead of fopen() - BIO_free instead of fclose() - PEM_write_bio_PrivateKey() instead of PEM_write_PrivateKey() - etc A note about BIO and error reporting: BIO_new_file sets the errno, therefore FILE_ERROR macro produces good expected error messages, while SSL_ERROR unfortunately creates something incomprehensible. Thus, FILE_ERROR is left in place where it was used previously (fopen errors) Curiously, removing APIs with FILE*, solves another bug MDEV-37343, where server on Windows dies with obscure message as plugins tries to use this function. OpenSSL_Applink supposed to be official solution against such problems, but I could not get it to work properly, no matter how much I tried. Avoiding APIs with FILE* in first place works best
10 lines
339 B
CMake
10 lines
339 B
CMake
ADD_DEFINITIONS(${SSL_DEFINES})
|
|
IF(WITH_SSL STREQUAL "bundled")
|
|
# WolfSSL is static, we don't want it linked both into plugin and server
|
|
SET(static STATIC_ONLY DEFAULT)
|
|
ELSE()
|
|
SET(static)
|
|
ENDIF()
|
|
MYSQL_ADD_PLUGIN(auth_mysql_sha2
|
|
mysql_sha2.c sha256crypt.c ssl_stuff.c openssl1-compat.c
|
|
LINK_LIBRARIES ${SSL_LIBRARIES} ${static})
|