summaryrefslogtreecommitdiffstats
path: root/src/shared/networkmessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/networkmessage.cpp')
-rw-r--r--src/shared/networkmessage.cpp38
1 files changed, 19 insertions, 19 deletions
diff --git a/src/shared/networkmessage.cpp b/src/shared/networkmessage.cpp
index 64e02e7..0bdf3c5 100644
--- a/src/shared/networkmessage.cpp
+++ b/src/shared/networkmessage.cpp
@@ -22,32 +22,32 @@
((((x) & 0xFF00u) >> 8) | \
(((x) & 0x00FFu) << 8))
-static quint16 _htons(quint16 x)
+static quint16 _htons(const quint16 x)
{
if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
return x;
return (quint16)BYTE_SWAP2(x);
}
-static quint16 _ntohs(quint16 x)
+static quint32 _htonl(const quint32 x)
{
if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
return x;
- return (quint16)BYTE_SWAP2(x);
+ return (quint32)BYTE_SWAP4(x);
}
-static quint32 _htonl(quint32 x)
+static quint16 _ntohs(const char *in)
{
- if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
- return x;
- return (quint32)BYTE_SWAP4(x);
+ return quint16(quint8(in[0]) << 8
+ | quint8(in[1]));
}
-static quint32 _ntohl(quint32 x)
+static quint32 _ntohl(const char *in)
{
- if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
- return x;
- return (quint32)BYTE_SWAP4(x);
+ return quint32(quint8(in[0])) << 24
+ | quint32(quint8(in[1])) << 16
+ | quint32(quint8(in[2])) << 8
+ | quint32(quint8(in[3]));
}
/*
@@ -56,7 +56,7 @@ static quint32 _ntohl(quint32 x)
*/
NetworkMessage::NetworkMessage() :
- _buffer(NULL), _bufferSize(0), _bufferPos(0), _lastBufferSize(0), _mode(0)
+ _buffer(nullptr), _bufferSize(0), _bufferPos(0), _lastBufferSize(0), _mode(0)
{
//
}
@@ -69,7 +69,7 @@ NetworkMessage::~NetworkMessage()
inline void NetworkMessage::allocBuffer()
{
- if (_lastBufferSize < _bufferSize || _buffer == NULL) {
+ if (_lastBufferSize < _bufferSize || _buffer == nullptr) {
if (_buffer)
delete[] _buffer;
_lastBufferSize = _bufferSize;
@@ -150,7 +150,7 @@ bool NetworkMessage::parseHeader(char *header)
return false;
}
_bufferPos = 0;
- _bufferSize = _ntohl(*(quint32*)(header + 4));
+ _bufferSize = _ntohl(header + 4);
if (_bufferSize > MAX_MSG_LEN) {
qDebug("Disconnecting Client: MAX_MSG_LEN exceeded.");
return false;
@@ -166,9 +166,9 @@ bool NetworkMessage::parseMessage(char *buffer)
{
char *ptr = buffer;
while (_bufferSize - (ptr - buffer) >= 4) {
- const quint16 keyLen = _ntohs(*(quint16*)(ptr));
+ const quint16 keyLen = _ntohs(ptr);
ptr += 2;
- const quint16 valLen = _ntohs(*(quint16*)(ptr));
+ const quint16 valLen = _ntohs(ptr);
ptr += 2;
if (_bufferSize - (ptr - buffer) < keyLen + valLen) {
qDebug() << "Warning: Error parsing message. key(" << keyLen << ")+value(" << valLen
@@ -237,7 +237,7 @@ void NetworkMessage::serializeMessage()
{
QByteArray buf;
//qDebug() << "Default size: " << buf.capacity();
- buf.reserve(_lastBufferSize > 0 ? _lastBufferSize : 200);
+ buf.reserve(_lastBufferSize > 0 ? int(_lastBufferSize) : 200);
for (QHash<QByteArray, QByteArray>::const_iterator it = _fields.begin(); it != _fields.end(); ++it) {
const QByteArray &ba = it.key();
const QByteArray &val = it.value();
@@ -249,9 +249,9 @@ void NetworkMessage::serializeMessage()
buf.append(ba);
buf.append(val);
}
- _bufferSize = buf.length() + HEADER_LEN;
+ _bufferSize = quint32(buf.length() + HEADER_LEN);
allocBuffer();
- memcpy(_buffer + HEADER_LEN, buf.data(), buf.size());
+ memcpy(_buffer + HEADER_LEN, buf.data(), size_t(buf.size()));
_buffer[0] = 'P';
_buffer[1] = 'V';
_buffer[2] = 'S';