diff --git a/dbsim/db_simulator.cpp b/dbsim/db_simulator.cpp index 594b847..318ea47 100644 --- a/dbsim/db_simulator.cpp +++ b/dbsim/db_simulator.cpp @@ -137,7 +137,7 @@ void db::simulator::start() std::string server_options(params_.wsrep_provider_options); if (server.server_state().load_provider( - params_.wsrep_provider, server_options)) + params_.wsrep_provider, server_options, false)) { throw wsrep::runtime_error("Failed to load provider"); } diff --git a/include/wsrep/provider.hpp b/include/wsrep/provider.hpp index 5d50a38..e2fe27a 100644 --- a/include/wsrep/provider.hpp +++ b/include/wsrep/provider.hpp @@ -384,7 +384,8 @@ namespace wsrep static provider* make_provider( wsrep::server_state&, const std::string& provider_spec, - const std::string& provider_options); + const std::string& provider_options, + bool encrypt); protected: wsrep::server_state& server_state_; }; diff --git a/include/wsrep/server_state.hpp b/include/wsrep/server_state.hpp index 9dda7d5..3fe5b29 100644 --- a/include/wsrep/server_state.hpp +++ b/include/wsrep/server_state.hpp @@ -261,7 +261,8 @@ namespace wsrep * @return Zero on success, non-zero on error. */ int load_provider(const std::string& provider, - const std::string& provider_options); + const std::string& provider_options, + bool encrypt); void unload_provider(); diff --git a/src/provider.cpp b/src/provider.cpp index 6bc855b..89f0aad 100644 --- a/src/provider.cpp +++ b/src/provider.cpp @@ -25,12 +25,13 @@ wsrep::provider* wsrep::provider::make_provider( wsrep::server_state& server_state, const std::string& provider_spec, - const std::string& provider_options) + const std::string& provider_options, + bool const encrypt) { try { return new wsrep::wsrep_provider_v26( - server_state, provider_options, provider_spec); + server_state, provider_options, provider_spec, encrypt); } catch (const wsrep::runtime_error& e) { diff --git a/src/server_state.cpp b/src/server_state.cpp index 2cef657..4258f17 100644 --- a/src/server_state.cpp +++ b/src/server_state.cpp @@ -335,14 +335,15 @@ static int apply_toi(wsrep::provider& provider, ////////////////////////////////////////////////////////////////////////////// int wsrep::server_state::load_provider(const std::string& provider_spec, - const std::string& provider_options) + const std::string& provider_options, + bool const encrypt) { wsrep::log_info() << "Loading provider " << provider_spec << "initial position: " << initial_position_; provider_ = wsrep::provider::make_provider( - *this, provider_spec, provider_options); + *this, provider_spec, provider_options, encrypt); return (provider_ ? 0 : 1); } diff --git a/src/wsrep_provider_v26.cpp b/src/wsrep_provider_v26.cpp index 8577c31..4ec2f0a 100644 --- a/src/wsrep_provider_v26.cpp +++ b/src/wsrep_provider_v26.cpp @@ -567,7 +567,8 @@ namespace wsrep::wsrep_provider_v26::wsrep_provider_v26( wsrep::server_state& server_state, const std::string& provider_options, - const std::string& provider_spec) + const std::string& provider_spec, + bool const encrypt) : provider(server_state) , wsrep_() { @@ -591,7 +592,7 @@ wsrep::wsrep_provider_v26::wsrep_provider_v26( init_args.connected_cb = &connected_cb; init_args.view_cb = &view_cb; init_args.sst_request_cb = &sst_request_cb; - init_args.encrypt_cb = &encrypt_cb; + init_args.encrypt_cb = encrypt ? &encrypt_cb : NULL; init_args.apply_cb = &apply_cb; init_args.unordered_cb = 0; init_args.sst_donate_cb = &sst_donate_cb; diff --git a/src/wsrep_provider_v26.hpp b/src/wsrep_provider_v26.hpp index 695cd40..1e1e59b 100644 --- a/src/wsrep_provider_v26.hpp +++ b/src/wsrep_provider_v26.hpp @@ -31,7 +31,7 @@ namespace wsrep public: wsrep_provider_v26(wsrep::server_state&, const std::string&, - const std::string&); + const std::string&, bool encrypt); ~wsrep_provider_v26(); enum wsrep::provider::status connect(const std::string&, const std::string&, const std::string&,