Don't trust Swap32BE/LE functions. They only work most of the time.

This commit is contained in:
Charles Lohr
2004-08-14 16:57:00 +00:00
parent 14bd8ff132
commit 1fe0f5b783
+5 -6
View File
@@ -377,7 +377,7 @@ void NetworkSyncManager::ProcessInput()
//Check to make sure command is valid from server //Check to make sure command is valid from server
if (command<128) if (command<128)
{ {
LOG->Info("CMD (below 128) Invalid> %d",command); LOG->Trace("CMD (below 128) Invalid> %d",command);
break; break;
} }
@@ -471,7 +471,7 @@ uint16_t NetworkSyncManager::Read2(NetPacket &Packet)
uint16_t Temp; uint16_t Temp;
memcpy( &Temp, Packet.Data + Packet.Position,2 ); memcpy( &Temp, Packet.Data + Packet.Position,2 );
Packet.Position+=2; Packet.Position+=2;
return Swap16BE(Temp); return ntohs(Temp);
} }
uint32_t NetworkSyncManager::Read4(NetPacket &Packet) uint32_t NetworkSyncManager::Read4(NetPacket &Packet)
@@ -482,7 +482,7 @@ uint32_t NetworkSyncManager::Read4(NetPacket &Packet)
uint32_t Temp; uint32_t Temp;
memcpy( &Temp, Packet.Data + Packet.Position,4 ); memcpy( &Temp, Packet.Data + Packet.Position,4 );
Packet.Position+=4; Packet.Position+=4;
return Swap32BE(Temp); return ntohl(Temp);
} }
CString NetworkSyncManager::ReadNT(NetPacket &Packet) CString NetworkSyncManager::ReadNT(NetPacket &Packet)
@@ -509,7 +509,7 @@ void NetworkSyncManager::Write2(NetPacket &Packet, uint16_t Data)
{ {
if (Packet.Position>=NETMAXBUFFERSIZE-1) if (Packet.Position>=NETMAXBUFFERSIZE-1)
return; return;
Data = Swap16BE(Data); Data = htons(Data);
memcpy( &Packet.Data[Packet.Position], &Data,2 ); memcpy( &Packet.Data[Packet.Position], &Data,2 );
Packet.Position+=2; Packet.Position+=2;
} }
@@ -519,7 +519,7 @@ void NetworkSyncManager::Write4(NetPacket &Packet, uint32_t Data)
if (Packet.Position>=NETMAXBUFFERSIZE-3) if (Packet.Position>=NETMAXBUFFERSIZE-3)
return ; return ;
Data = Swap32BE(Data); Data = htonl(Data);
memcpy( &Packet.Data[Packet.Position], &Data,4 ); memcpy( &Packet.Data[Packet.Position], &Data,4 );
Packet.Position+=4; Packet.Position+=4;
} }
@@ -529,7 +529,6 @@ void NetworkSyncManager::WriteNT(NetPacket &Packet, CString Data)
int index=0; int index=0;
while ((Packet.Position<NETMAXBUFFERSIZE)&&(index<Data.GetLength())) while ((Packet.Position<NETMAXBUFFERSIZE)&&(index<Data.GetLength()))
Packet.Data[Packet.Position++] = (unsigned char)(Data.c_str()[index++]); Packet.Data[Packet.Position++] = (unsigned char)(Data.c_str()[index++]);
//Is it proper to do "(unsigned char)(Data.c_str()[index++])"?
Packet.Data[Packet.Position++] = 0; Packet.Data[Packet.Position++] = 0;
} }