summaryrefslogtreecommitdiff
path: root/src/net/messageout.cpp
diff options
context:
space:
mode:
authorCedric Borgese <cedric.borgese@gmail.com>2005-09-27 13:31:15 +0000
committerCedric Borgese <cedric.borgese@gmail.com>2005-09-27 13:31:15 +0000
commit8225942307f8290e5941cdeaff5c7b212f978390 (patch)
treea60d0efb5eaeec89a002d8a58ee485de190e8615 /src/net/messageout.cpp
parentd56c142c43939657df13f3b7246defe8f181306e (diff)
downloadmana-client-8225942307f8290e5941cdeaff5c7b212f978390.tar.gz
mana-client-8225942307f8290e5941cdeaff5c7b212f978390.tar.bz2
mana-client-8225942307f8290e5941cdeaff5c7b212f978390.tar.xz
mana-client-8225942307f8290e5941cdeaff5c7b212f978390.zip
Dont crash if there is an unknown error at login.
Remove a bug that do x86_64 arch fail to connect to server : long is 8 bytes on that arch, use int for 4 bytes integer.
Diffstat (limited to 'src/net/messageout.cpp')
-rw-r--r--src/net/messageout.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/net/messageout.cpp b/src/net/messageout.cpp
index 00a37b67..713d49be 100644
--- a/src/net/messageout.cpp
+++ b/src/net/messageout.cpp
@@ -77,16 +77,19 @@ void MessageOut::writeShort(short value)
out_size += sizeof(short);
}
-void MessageOut::writeLong(long value)
+/*
+ writeLong should use an int because long is 8 bytes in x86_64 arch !
+*/
+void MessageOut::writeLong(int value)
{
- expand(mPos + sizeof(long));
+ expand(mPos + sizeof(int));
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
- (*(long *)(mData + mPos)) = SDL_Swap32(value);
+ (*(int *)(mData + mPos)) = SDL_Swap32(value);
#else
- (*(long *)(mData + mPos)) = value;
+ (*(int *)(mData + mPos)) = value;
#endif
- mPos += sizeof(long);
- out_size += sizeof(long);
+ mPos += sizeof(int);
+ out_size += sizeof(int);
}
void MessageOut::writeString(const std::string &string, int length)