aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
authoret65 <et65@ashbringer.fr>2014-12-28 19:50:19 +0100
committeret65 <et65@ashbringer.fr>2014-12-28 19:50:19 +0100
commite46921748d9173f0dcaa32f8a53626c21cf4a2a2 (patch)
treee9467c092c4c9189b34ac10e95bc684c7d77ce3e /src/server/shared
parent4f557347ce26dcb3d7ce697ecd203ff92da5198a (diff)
parent27137ca06e99209bd1a47a0ff7082ff14fcae8c9 (diff)
Merge remote-tracking branch 'trinitycore/6.x' into 6.x
Diffstat (limited to 'src/server/shared')
-rw-r--r--src/server/shared/DataStores/DB2StorageLoader.h2
-rw-r--r--src/server/shared/Networking/MessageBuffer.h8
-rw-r--r--src/server/shared/Networking/Socket.h3
3 files changed, 12 insertions, 1 deletions
diff --git a/src/server/shared/DataStores/DB2StorageLoader.h b/src/server/shared/DataStores/DB2StorageLoader.h
index 4254fcc1121..cc9bfa76b5c 100644
--- a/src/server/shared/DataStores/DB2StorageLoader.h
+++ b/src/server/shared/DataStores/DB2StorageLoader.h
@@ -21,6 +21,8 @@
#include "Define.h"
#include "Utilities/ByteConverter.h"
#include <cassert>
+#include <list>
+#include "Common.h"
class DB2FileLoader
{
diff --git a/src/server/shared/Networking/MessageBuffer.h b/src/server/shared/Networking/MessageBuffer.h
index 2dcd4fbc161..a214af9d127 100644
--- a/src/server/shared/Networking/MessageBuffer.h
+++ b/src/server/shared/Networking/MessageBuffer.h
@@ -81,6 +81,14 @@ public:
}
}
+ // Ensures there's "some" free space, make sure to call Normalize() before this
+ void EnsureFreeSpace()
+ {
+ // Double the size of the buffer if it's already full
+ if (GetRemainingSpace() == 0)
+ _storage.resize(_storage.size() * 2);
+ }
+
void Write(void const* data, std::size_t size)
{
if (size)
diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h
index 5c891d925fa..6c367e5649d 100644
--- a/src/server/shared/Networking/Socket.h
+++ b/src/server/shared/Networking/Socket.h
@@ -92,7 +92,8 @@ public:
return;
_readBuffer.Normalize();
- _socket.async_read_some(boost::asio::buffer(_readBuffer.GetWritePointer(), READ_BLOCK_SIZE),
+ _readBuffer.EnsureFreeSpace();
+ _socket.async_read_some(boost::asio::buffer(_readBuffer.GetWritePointer(), _readBuffer.GetRemainingSpace()),
std::bind(&Socket<T>::ReadHandlerInternal, this->shared_from_this(), std::placeholders::_1, std::placeholders::_2));
}