Dep: Switch to boost process instead of old standalone version

This commit is contained in:
Shauren authored and Ovahlord committed 2021-02-19 15:21:15 +01:00
1 parent 0299fa4fe1
commit fbffbbbe14
91 files changed
+63 -4690

No files matched your search

+15 -18
View File
@@ -40,10 +40,10 @@ std::string DBUpdaterUtil::GetCorrectedMySQLExecutable()
bool DBUpdaterUtil::CheckExecutable()
{
boost::filesystem::path exe(GetCorrectedMySQLExecutable());
if (!exists(exe))
if (!is_regular_file(exe))
{
exe = Trinity::SearchExecutableInPath("mysql");
if (!exe.empty() && exists(exe))
if (!exe.empty() && is_regular_file(exe))
{
// Correct the path to the cli
corrected_path() = absolute(exe).generic_string();
@@ -363,50 +363,47 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos
std::string const& password, std::string const& port_or_socket, std::string const& database, Path const& path)
{
std::vector<std::string> args;
args.reserve(8);
// args[0] represents the program name
args.push_back("mysql");
args.reserve(7);
// CLI Client connection info
args.push_back("-h" + host);
args.push_back("-u" + user);
args.emplace_back("-h" + host);
args.emplace_back("-u" + user);
if (!password.empty())
args.push_back("-p" + password);
args.emplace_back("-p" + password);
// Check if we want to connect through ip or socket (Unix only)
#ifdef _WIN32
if (host == ".")
args.push_back("--protocol=PIPE");
args.emplace_back("--protocol=PIPE");
else
args.push_back("-P" + port_or_socket);
args.emplace_back("-P" + port_or_socket);
#else
if (!std::isdigit(port_or_socket[0]))
{
// We can't check if host == "." here, because it is named localhost if socket option is enabled
args.push_back("-P0");
args.push_back("--protocol=SOCKET");
args.push_back("-S" + port_or_socket);
args.emplace_back("-P0");
args.emplace_back("--protocol=SOCKET");
args.emplace_back("-S" + port_or_socket);
}
else
// generic case
args.push_back("-P" + port_or_socket);
args.emplace_back("-P" + port_or_socket);
#endif
// Set the default charset to utf8
args.push_back("--default-character-set=utf8");
args.emplace_back("--default-character-set=utf8");
// Set max allowed packet to 1 GB
args.push_back("--max-allowed-packet=1GB");
args.emplace_back("--max-allowed-packet=1GB");
// Database
if (!database.empty())
args.push_back(database);
args.emplace_back(database);
// Invokes a mysql process which doesn't leak credentials to logs
int const ret = Trinity::StartProcess(DBUpdaterUtil::GetCorrectedMySQLExecutable(), args,