DarkflameServer/dNet/PacketUtils.h
Jett 9e08bb20d2
Implement proper bounds checks across the codebase (#681)
* Implement proper bounds checks across the codebase

* Implement strnlen_s for cross platform
2022-07-26 20:52:04 -05:00

26 lines
1.1 KiB
C++

#ifndef PACKETUTILS_H
#define PACKETUTILS_H
#include <BitStream.h>
#include <string>
namespace PacketUtils {
void WriteHeader(RakNet::BitStream& bitStream, uint16_t connectionType, uint32_t internalPacketID);
uint16_t ReadPacketU16(uint32_t startLoc, Packet * packet);
uint32_t ReadPacketU32(uint32_t startLoc, Packet * packet);
uint64_t ReadPacketU64(uint32_t startLoc, Packet * packet);
int64_t ReadPacketS64(uint32_t startLoc, Packet * packet);
std::string ReadString(uint32_t startLoc, Packet * packet, bool wide, uint32_t maxLen = 33);
void WritePacketString(const std::string& string, uint32_t maxSize, RakNet::BitStream * bitStream);
void WriteString(RakNet::BitStream& bitStream, const std::string& s, uint32_t maxSize);
void WriteWString(RakNet::BitStream& bitStream, const std::string& string, uint32_t maxSize);
void WriteWString(RakNet::BitStream& bitStream, const std::u16string& string, uint32_t maxSize);
void WritePacketWString(const std::string& string, uint32_t maxSize, RakNet::BitStream * bitStream);
void SavePacket(const std::string& filename, const char * data, size_t length);
};
#endif // PACKETUTILS_H