aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Packets/ByteBuffer.cpp
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-03-25 13:26:48 +0100
committerSpp <spp@jorge.gr>2013-03-25 13:26:48 +0100
commit1a6a23ec96c7646d2753198f93eaba62d2732a83 (patch)
tree2ef7e8ffd5201bd6e7bf0a4ddfd768a24e263e82 /src/server/shared/Packets/ByteBuffer.cpp
parent7c36e3a298ce243631848b94364c185a863d1526 (diff)
Core/Misc: Minor optimizations (+code changes to reduce differences with 4.3.4 branch)
Core/Logging: Create new logger type "Cheat". Will be used to log all cheat attempts
Diffstat (limited to 'src/server/shared/Packets/ByteBuffer.cpp')
-rw-r--r--src/server/shared/Packets/ByteBuffer.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.cpp b/src/server/shared/Packets/ByteBuffer.cpp
new file mode 100644
index 00000000000..a14cf3477af
--- /dev/null
+++ b/src/server/shared/Packets/ByteBuffer.cpp
@@ -0,0 +1,95 @@
+#include "ByteBuffer.h"
+#include "Log.h"
+
+#include <ace/Stack_Trace.h>
+#include <sstream>
+
+ByteBufferPositionException::ByteBufferPositionException(bool add, size_t pos,
+ size_t size, size_t valueSize)
+{
+ std::ostringstream ss;
+ ACE_Stack_Trace trace;
+
+ ss << "Attempted to " << (add ? "put" : "get") << " value with size: "
+ << valueSize << " in ByteBuffer (pos: " << pos << " size: " << size
+ << ")\n\n" << trace.c_str();
+
+ message().assign(ss.str());
+}
+
+ByteBufferSourceException::ByteBufferSourceException(size_t pos, size_t size,
+ size_t valueSize)
+{
+ std::ostringstream ss;
+ ACE_Stack_Trace trace;
+
+ ss << "Attempted to put a "
+ << (valueSize > 0 ? "NULL-pointer" : "zero-sized value")
+ << " in ByteBuffer (pos: " << pos << " size: " << size << ")\n\n"
+ << trace.c_str();
+
+ message().assign(ss.str());
+}
+
+void ByteBuffer::print_storage() const
+{
+ if (!sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE)) // optimize disabled trace output
+ return;
+
+ std::ostringstream o;
+ o << "STORAGE_SIZE: " << size();
+ for (uint32 i = 0; i < size(); ++i)
+ o << read<uint8>(i) << " - ";
+ o << " ";
+
+ sLog->outTrace(LOG_FILTER_NETWORKIO, "%s", o.str().c_str());
+}
+
+void ByteBuffer::textlike() const
+{
+ if (!sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE)) // optimize disabled trace output
+ return;
+
+ std::ostringstream o;
+ o << "STORAGE_SIZE: " << size();
+ for (uint32 i = 0; i < size(); ++i)
+ {
+ char buf[1];
+ snprintf(buf, 1, "%c", read<uint8>(i));
+ o << buf;
+ }
+ o << " ";
+ sLog->outTrace(LOG_FILTER_NETWORKIO, "%s", o.str().c_str());
+}
+
+void ByteBuffer::hexlike() const
+{
+ if (!sLog->ShouldLog(LOG_FILTER_NETWORKIO, LOG_LEVEL_TRACE)) // optimize disabled trace output
+ return;
+
+ uint32 j = 1, k = 1;
+
+ std::ostringstream o;
+ o << "STORAGE_SIZE: " << size();
+
+ for (uint32 i = 0; i < size(); ++i)
+ {
+ char buf[3];
+ snprintf(buf, 1, "%2X ", read<uint8>(i));
+ if ((i == (j * 8)) && ((i != (k * 16))))
+ {
+ o << "| ";
+ ++j;
+ }
+ else if (i == (k * 16))
+ {
+ o << "\n";
+ ++k;
+ ++j;
+ }
+
+ o << buf;
+ }
+ o << " ";
+ sLog->outTrace(LOG_FILTER_NETWORKIO, "%s", o.str().c_str());
+}