From fd660d725d62f56ab20e5bd170dc2614e202d050 Mon Sep 17 00:00:00 2001 From: glkrlos Date: Wed, 27 May 2015 18:45:16 +0200 Subject: Core/Updater: Fix issues when connecting through unix sockets. * closes #14766 * closes #14759 Signed-off-by: Naios --- src/server/shared/Updater/DBUpdater.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/server/shared') 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::ApplyFile(DatabaseWorkerPool& 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"); -- cgit v1.2.3