diff options
author | glkrlos <glkrlos@hotmail.com> | 2015-05-27 18:45:16 +0200 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2015-05-28 18:30:03 +0200 |
commit | fd660d725d62f56ab20e5bd170dc2614e202d050 (patch) | |
tree | 38c0d99dd344a021a2c65d5cd07b1677cd3d7e4c /src | |
parent | 170794a0298364b13312a65abd8738ea298723dc (diff) |
Core/Updater: Fix issues when connecting through unix sockets.
* closes #14766
* closes #14759
Signed-off-by: Naios <naios-dev@live.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/server/shared/Updater/DBUpdater.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/shared/Updater/DBUpdater.cpp b/src/server/shared/Updater/DBUpdater.cpp index e5c571e4517..20ded669cec 100644 --- a/src/server/shared/Updater/DBUpdater.cpp +++ b/src/server/shared/Updater/DBUpdater.cpp @@ -349,8 +349,27 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos args.push_back("-h" + host); args.push_back("-u" + user); args.push_back("-p" + password); + + // Check if we want to connect through ip or socket (Unix only) +#ifdef _WIN32 + args.push_back("-P" + port_or_socket); +#else + + if (!std::isdigit(port_or_socket[0])) + { + // We can't check here if host == "." because is named localhost if socket option is enabled + args.push_back("-P0"); + args.push_back("--protocol=SOCKET"); + args.push_back("-S" + port_or_socket); + } + else + // generic case + args.push_back("-P" + port_or_socket); + +#endif + // Set the default charset to utf8 args.push_back("--default-character-set=utf8"); |