home *** CD-ROM | disk | FTP | other *** search
- #include "PacketHandler.h"
-
- #include "Network.h"
- #include <string.h>
-
- UDPpacket* PacketHandler::wrapPacket(unsigned char packetType, IPaddress addr, void* data, int size){
- UDPpacket* p = SDLNet_AllocPacket(size+2);
-
- if( p == NULL ){
- return NULL;
- }
-
- p->channel = -1;
-
- p->address.host = addr.host;
- p->address.port = addr.port;
-
- p->data[0] = (unsigned char)NETWORK_FWP_PACKET_ID;
- p->data[1] = packetType;
- memcpy(p->data+2, data, size);
- p->len = size+2;
-
- return p;
- }
-
- bool PacketHandler::unwrapPacket(UDPpacket* packet, void* data, int size){
- if(packet->len-2 > size){
- return false;
- }else{
- memcpy(data, packet->data+2, packet->len-2);
- return true;
- }
- }
-
- bool PacketHandler::unwrapAndFreePacket(UDPpacket* packet, void* data, int size){
- bool ret = unwrapPacket(packet, data, size);
-
- SDLNet_FreePacket(packet);
-
- return ret;
- }
-
- void PacketHandler::freePacket(UDPpacket* packet){
- SDLNet_FreePacket(packet);
- }
-