aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared')
-rw-r--r--src/server/shared/Database/MySQLConnection.cpp4
-rw-r--r--src/server/shared/Logging/Appender.cpp19
-rw-r--r--src/server/shared/Logging/Appender.h3
-rw-r--r--src/server/shared/Logging/Log.h4
-rw-r--r--src/server/shared/Networking/Socket.h15
-rw-r--r--src/server/shared/Updater/UpdateFetcher.cpp2
6 files changed, 25 insertions, 22 deletions
diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp
index 1fa3f01a5e1..5a98757abb5 100644
--- a/src/server/shared/Database/MySQLConnection.cpp
+++ b/src/server/shared/Database/MySQLConnection.cpp
@@ -491,7 +491,9 @@ bool MySQLConnection::_HandleMySQLErrno(uint32 errNo)
m_reconnecting = true;
uint64 oldThreadId = mysql_thread_id(GetHandle());
mysql_close(GetHandle());
- if (this->Open()) // Don't remove 'this' pointer unless you want to skip loading all prepared statements....
+
+ // Don't remove 'this' pointer unless you want to skip loading all prepared statements....
+ if (this->Open() && this->PrepareStatements())
{
TC_LOG_INFO("sql.sql", "Connection to the MySQL server is active.");
if (oldThreadId != mysql_thread_id(GetHandle()))
diff --git a/src/server/shared/Logging/Appender.cpp b/src/server/shared/Logging/Appender.cpp
index ca40a857419..ba23d879ec2 100644
--- a/src/server/shared/Logging/Appender.cpp
+++ b/src/server/shared/Logging/Appender.cpp
@@ -80,26 +80,13 @@ void Appender::write(LogMessage* message)
std::ostringstream ss;
if (flags & APPENDER_FLAGS_PREFIX_TIMESTAMP)
- ss << message->getTimeStr();
+ ss << message->getTimeStr() << ' ';
if (flags & APPENDER_FLAGS_PREFIX_LOGLEVEL)
- {
- if (ss.rdbuf()->in_avail() == 0)
- ss << ' ';
-
- ss << Trinity::StringFormat("%-5s", Appender::getLogLevelString(message->level));
- }
+ ss << Trinity::StringFormat("%-5s ", Appender::getLogLevelString(message->level));
if (flags & APPENDER_FLAGS_PREFIX_LOGFILTERTYPE)
- {
- if (ss.rdbuf()->in_avail() == 0)
- ss << ' ';
-
- ss << '[' << message->type << ']';
- }
-
- if (ss.rdbuf()->in_avail() == 0)
- ss << ' ';
+ ss << '[' << message->type << "] ";
message->prefix = std::move(ss.str());
_write(message);
diff --git a/src/server/shared/Logging/Appender.h b/src/server/shared/Logging/Appender.h
index 38c45b3bcf1..73af351e41d 100644
--- a/src/server/shared/Logging/Appender.h
+++ b/src/server/shared/Logging/Appender.h
@@ -62,6 +62,9 @@ struct LogMessage
: level(_level), type(_type), text(std::forward<std::string>(_text)), mtime(time(NULL))
{ }
+ LogMessage(LogMessage const& /*other*/) = delete;
+ LogMessage& operator=(LogMessage const& /*other*/) = delete;
+
static std::string getTimeStr(time_t time);
std::string getTimeStr();
diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h
index 20d83d2dcf0..d4653960b15 100644
--- a/src/server/shared/Logging/Log.h
+++ b/src/server/shared/Logging/Log.h
@@ -75,9 +75,7 @@ class Log
std::unique_ptr<LogMessage> msg(new LogMessage(LOG_LEVEL_INFO, "commands.gm", std::move(Trinity::StringFormat(fmt, args...))));
- std::ostringstream ss;
- ss << account;
- msg->param1 = ss.str();
+ msg->param1 = std::to_string(account);
write(std::move(msg));
}
diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h
index f7a1b954cb0..0ac23a96224 100644
--- a/src/server/shared/Networking/Socket.h
+++ b/src/server/shared/Networking/Socket.h
@@ -62,7 +62,7 @@ public:
return false;
#ifndef TC_SOCKET_USE_IOCP
- std::unique_lock<std::mutex> guard(_writeLock, std::try_to_lock);
+ std::unique_lock<std::mutex> guard(_writeLock);
if (!guard)
return true;
@@ -140,6 +140,8 @@ public:
if (shutdownError)
TC_LOG_DEBUG("network", "Socket::CloseSocket: %s errored when shutting down socket: %i (%s)", GetRemoteIpAddress().to_string().c_str(),
shutdownError.value(), shutdownError.message().c_str());
+
+ OnClose();
}
/// Marks the socket for closing after write buffer becomes empty
@@ -148,6 +150,8 @@ public:
MessageBuffer& GetReadBuffer() { return _readBuffer; }
protected:
+ virtual void OnClose() { }
+
virtual void ReadHandler() = 0;
bool AsyncProcessQueue(std::unique_lock<std::mutex>&)
@@ -169,6 +173,15 @@ protected:
return false;
}
+ void SetNoDelay(bool enable)
+ {
+ boost::system::error_code err;
+ _socket.set_option(boost::asio::ip::tcp::no_delay(enable), err);
+ if (err)
+ TC_LOG_DEBUG("network", "Socket::SetNoDelay: failed to set_option(boost::asio::ip::tcp::no_delay) for %s - %d (%s)",
+ GetRemoteIpAddress().to_string().c_str(), err.value(), err.message().c_str());
+ }
+
std::mutex _writeLock;
std::queue<MessageBuffer> _writeQueue;
#ifndef TC_SOCKET_USE_IOCP
diff --git a/src/server/shared/Updater/UpdateFetcher.cpp b/src/server/shared/Updater/UpdateFetcher.cpp
index b93ca614729..2b12f39780c 100644
--- a/src/server/shared/Updater/UpdateFetcher.cpp
+++ b/src/server/shared/Updater/UpdateFetcher.cpp
@@ -309,7 +309,7 @@ uint32 UpdateFetcher::Update(bool const redundancyChecks, bool const allowRehash
CleanUp(applied);
else
{
- TC_LOG_ERROR("sql.updates", "Cleanup is disabled! There are %zu dirty files that were applied to your database " \
+ TC_LOG_ERROR("sql.updates", "Cleanup is disabled! There are " SZFMTD " dirty files that were applied to your database " \
"but are now missing in your source directory!", applied.size());
}
}