Dep: Switch to boost process instead of old standalone version

(cherry picked from commit 524d167398)
This commit is contained in:
Shauren
2020-07-15 19:33:12 +02:00
parent 596bf2b772
commit 2b312c7bd2
91 changed files with 59 additions and 4689 deletions

View File

@@ -364,46 +364,43 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos
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");
#if !defined(MARIADB_VERSION_ID) && MYSQL_VERSION_ID >= 80000
@@ -413,13 +410,13 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos
#else
if (ssl == "ssl")
args.push_back("--ssl");
args.emplace_back("--ssl");
#endif
// 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,