FS2_Open
Open source remastering of the Freespace 2 engine
tcp_client.h File Reference
#include "fs2netd/protocol.h"
#include "fs2netd/tcp_socket.h"
#include "globalincs/pstypes.h"
#include <string>

Go to the source code of this file.

Macros

#define BASE_PACKET_SIZE   (int)(sizeof(ubyte) + sizeof(int))
 
#define PXO_ADD_DATA(d)   do { Assert(buffer_size+sizeof(d) <= sizeof(buffer)); memcpy(buffer+buffer_size, &d, sizeof(d)); buffer_size += sizeof(d); } while (0)
 
#define PXO_ADD_SHORT(d)   do { Assert(buffer_size+sizeof(short) <= sizeof(buffer)); short swap = INTEL_SHORT(d); memcpy(buffer+buffer_size, &swap, sizeof(short)); buffer_size += sizeof(short); } while (0)
 
#define PXO_ADD_USHORT(d)   do { Assert(buffer_size+sizeof(ushort) <= sizeof(buffer)); ushort swap = INTEL_SHORT(d); memcpy(buffer+buffer_size, &swap, sizeof(ushort)); buffer_size += sizeof(ushort); } while (0)
 
#define PXO_ADD_INT(d)   do { Assert(buffer_size+sizeof(int) <= sizeof(buffer)); int swap = INTEL_INT(d); memcpy(buffer+buffer_size, &swap, sizeof(int)); buffer_size += sizeof(int); } while (0)
 
#define PXO_ADD_UINT(d)   do { Assert(buffer_size+sizeof(uint) <= sizeof(buffer)); uint swap = INTEL_INT(d); memcpy(buffer+buffer_size, &swap, sizeof(uint)); buffer_size += sizeof(uint); } while (0)
 
#define PXO_ADD_STRING(s)   do { Assert(buffer_size+strlen(s)+sizeof(int) <= sizeof(buffer)); int len = strlen(s); PXO_ADD_INT(len); if (len > 0) { memcpy(buffer+buffer_size, s, len ); buffer_size += len; } } while(0)
 
#define PXO_GET_DATA(d)   do { Assert(buffer_offset+sizeof(d) <= sizeof(buffer)); memcpy(&d, buffer+buffer_offset, sizeof(d) ); buffer_offset += sizeof(d); } while(0)
 
#define PXO_GET_SHORT(d)   do { Assert(buffer_offset+sizeof(short) <= sizeof(buffer)); short swap; memcpy(&swap, buffer+buffer_offset, sizeof(short) ); d = INTEL_SHORT(swap); buffer_offset += sizeof(short); } while(0)
 
#define PXO_GET_USHORT(d)   do { Assert(buffer_offset+sizeof(ushort) <= sizeof(buffer)); ushort swap; memcpy(&swap, buffer+buffer_offset, sizeof(ushort) ); d = INTEL_SHORT(swap); buffer_offset += sizeof(ushort); } while(0)
 
#define PXO_GET_INT(d)   do { Assert(buffer_offset+sizeof(int) <= sizeof(buffer)); int swap; memcpy(&swap, buffer+buffer_offset, sizeof(int) ); d = INTEL_INT(swap); buffer_offset += sizeof(int); } while(0)
 
#define PXO_GET_UINT(d)   do { Assert(buffer_offset+sizeof(uint) <= sizeof(buffer)); uint swap; memcpy(&swap, buffer+buffer_offset, sizeof(uint) ); d = INTEL_INT(swap); buffer_offset += sizeof(uint); } while(0)
 
#define PXO_GET_STRING(s)   do { Assert(buffer_offset+sizeof(int) <= sizeof(buffer)); s[0] = '\0'; int len; memcpy(&len, buffer+buffer_offset, sizeof(int)); len = INTEL_INT(len); buffer_offset += sizeof(int); if (len > 0) { memcpy(s, buffer+buffer_offset, len); buffer_offset += len; s[len] = '\0'; } } while(0)
 
#define INIT_PACKET(x)   { memset(buffer, 0, sizeof(buffer)); buffer_size = 0; ubyte pckt = (x); PXO_ADD_DATA(pckt); PXO_ADD_INT(buffer_size); }
 
#define DONE_PACKET()   { int swap = INTEL_INT(buffer_size); memcpy(buffer+sizeof(ubyte), &swap, sizeof(buffer_size)); }
 
#define VRFY_PACKET(x)   { buffer_offset = 0; ubyte pckt; PXO_GET_DATA(pckt); if (pckt != (x)) break; my_packet = true; PXO_GET_INT(buffer_size); }
 
#define VRFY_PACKET2(x)   { buffer_offset = 0; ubyte pckt; PXO_GET_DATA(pckt); if (pckt == (x)) my_packet = true; PXO_GET_INT(buffer_size); }
 

Functions

int FS2NetD_CheckSingleMission (const char *m_name, uint crc32, bool do_send)
 
int FS2NetD_SendPlayerData (const char *player_name, player *pl, bool do_send)
 
int FS2NetD_GetPlayerData (const char *player_name, player *pl, bool can_create, bool do_send)
 
int FS2NetD_GetBanList (SCP_vector< SCP_string > &mask_list, bool do_send)
 
int FS2NetD_GetMissionsList (SCP_vector< file_record > &m_list, bool do_send)
 
int FS2NetD_ValidateTableList (bool do_send)
 
int FS2NetD_Login (const char *username, const char *password, bool do_send)
 
int FS2NetD_CheckValidID ()
 
void FS2NetD_CheckDuplicateLogin ()
 
void FS2NetD_SendServerStart ()
 
void FS2NetD_SendServerUpdate ()
 
void FS2NetD_SendServerDisconnect ()
 
void FS2NetD_RequestServerList ()
 
void FS2NetD_GameCountUpdate (const char *chan_name)
 
void FS2NetD_Ping ()
 
void FS2NetD_Pong (int tstamp)
 

Macro Definition Documentation

#define BASE_PACKET_SIZE   (int)(sizeof(ubyte) + sizeof(int))

Definition at line 57 of file tcp_client.h.

#define DONE_PACKET ( )    { int swap = INTEL_INT(buffer_size); memcpy(buffer+sizeof(ubyte), &swap, sizeof(buffer_size)); }

Definition at line 76 of file tcp_client.h.

#define INIT_PACKET (   x)    { memset(buffer, 0, sizeof(buffer)); buffer_size = 0; ubyte pckt = (x); PXO_ADD_DATA(pckt); PXO_ADD_INT(buffer_size); }

Definition at line 74 of file tcp_client.h.

#define PXO_ADD_DATA (   d)    do { Assert(buffer_size+sizeof(d) <= sizeof(buffer)); memcpy(buffer+buffer_size, &d, sizeof(d)); buffer_size += sizeof(d); } while (0)

Definition at line 59 of file tcp_client.h.

#define PXO_ADD_INT (   d)    do { Assert(buffer_size+sizeof(int) <= sizeof(buffer)); int swap = INTEL_INT(d); memcpy(buffer+buffer_size, &swap, sizeof(int)); buffer_size += sizeof(int); } while (0)

Definition at line 62 of file tcp_client.h.

#define PXO_ADD_SHORT (   d)    do { Assert(buffer_size+sizeof(short) <= sizeof(buffer)); short swap = INTEL_SHORT(d); memcpy(buffer+buffer_size, &swap, sizeof(short)); buffer_size += sizeof(short); } while (0)

Definition at line 60 of file tcp_client.h.

#define PXO_ADD_STRING (   s)    do { Assert(buffer_size+strlen(s)+sizeof(int) <= sizeof(buffer)); int len = strlen(s); PXO_ADD_INT(len); if (len > 0) { memcpy(buffer+buffer_size, s, len ); buffer_size += len; } } while(0)

Definition at line 64 of file tcp_client.h.

#define PXO_ADD_UINT (   d)    do { Assert(buffer_size+sizeof(uint) <= sizeof(buffer)); uint swap = INTEL_INT(d); memcpy(buffer+buffer_size, &swap, sizeof(uint)); buffer_size += sizeof(uint); } while (0)

Definition at line 63 of file tcp_client.h.

#define PXO_ADD_USHORT (   d)    do { Assert(buffer_size+sizeof(ushort) <= sizeof(buffer)); ushort swap = INTEL_SHORT(d); memcpy(buffer+buffer_size, &swap, sizeof(ushort)); buffer_size += sizeof(ushort); } while (0)

Definition at line 61 of file tcp_client.h.

#define PXO_GET_DATA (   d)    do { Assert(buffer_offset+sizeof(d) <= sizeof(buffer)); memcpy(&d, buffer+buffer_offset, sizeof(d) ); buffer_offset += sizeof(d); } while(0)

Definition at line 66 of file tcp_client.h.

#define PXO_GET_INT (   d)    do { Assert(buffer_offset+sizeof(int) <= sizeof(buffer)); int swap; memcpy(&swap, buffer+buffer_offset, sizeof(int) ); d = INTEL_INT(swap); buffer_offset += sizeof(int); } while(0)

Definition at line 69 of file tcp_client.h.

#define PXO_GET_SHORT (   d)    do { Assert(buffer_offset+sizeof(short) <= sizeof(buffer)); short swap; memcpy(&swap, buffer+buffer_offset, sizeof(short) ); d = INTEL_SHORT(swap); buffer_offset += sizeof(short); } while(0)

Definition at line 67 of file tcp_client.h.

#define PXO_GET_STRING (   s)    do { Assert(buffer_offset+sizeof(int) <= sizeof(buffer)); s[0] = '\0'; int len; memcpy(&len, buffer+buffer_offset, sizeof(int)); len = INTEL_INT(len); buffer_offset += sizeof(int); if (len > 0) { memcpy(s, buffer+buffer_offset, len); buffer_offset += len; s[len] = '\0'; } } while(0)

Definition at line 71 of file tcp_client.h.

#define PXO_GET_UINT (   d)    do { Assert(buffer_offset+sizeof(uint) <= sizeof(buffer)); uint swap; memcpy(&swap, buffer+buffer_offset, sizeof(uint) ); d = INTEL_INT(swap); buffer_offset += sizeof(uint); } while(0)

Definition at line 70 of file tcp_client.h.

#define PXO_GET_USHORT (   d)    do { Assert(buffer_offset+sizeof(ushort) <= sizeof(buffer)); ushort swap; memcpy(&swap, buffer+buffer_offset, sizeof(ushort) ); d = INTEL_SHORT(swap); buffer_offset += sizeof(ushort); } while(0)

Definition at line 68 of file tcp_client.h.

#define VRFY_PACKET (   x)    { buffer_offset = 0; ubyte pckt; PXO_GET_DATA(pckt); if (pckt != (x)) break; my_packet = true; PXO_GET_INT(buffer_size); }

Definition at line 78 of file tcp_client.h.

#define VRFY_PACKET2 (   x)    { buffer_offset = 0; ubyte pckt; PXO_GET_DATA(pckt); if (pckt == (x)) my_packet = true; PXO_GET_INT(buffer_size); }

Definition at line 79 of file tcp_client.h.

Function Documentation

void FS2NetD_CheckDuplicateLogin ( )

Definition at line 791 of file tcp_client.cpp.

int FS2NetD_CheckSingleMission ( const char *  m_name,
uint  crc32,
bool  do_send 
)

Definition at line 36 of file tcp_client.cpp.

int FS2NetD_CheckValidID ( )

Definition at line 666 of file tcp_client.cpp.

void FS2NetD_GameCountUpdate ( const char *  chan_name)

Definition at line 777 of file tcp_client.cpp.

int FS2NetD_GetBanList ( SCP_vector< SCP_string > &  mask_list,
bool  do_send 
)

Definition at line 317 of file tcp_client.cpp.

int FS2NetD_GetMissionsList ( SCP_vector< file_record > &  m_list,
bool  do_send 
)

Definition at line 392 of file tcp_client.cpp.

int FS2NetD_GetPlayerData ( const char *  player_name,
player pl,
bool  can_create,
bool  do_send 
)

Definition at line 195 of file tcp_client.cpp.

int FS2NetD_Login ( const char *  username,
const char *  password,
bool  do_send 
)

Definition at line 470 of file tcp_client.cpp.

void FS2NetD_Ping ( )

Definition at line 637 of file tcp_client.cpp.

void FS2NetD_Pong ( int  tstamp)

Definition at line 652 of file tcp_client.cpp.

void FS2NetD_RequestServerList ( )

Definition at line 611 of file tcp_client.cpp.

int FS2NetD_SendPlayerData ( const char *  player_name,
player pl,
bool  do_send 
)

Definition at line 94 of file tcp_client.cpp.

void FS2NetD_SendServerDisconnect ( )

Definition at line 599 of file tcp_client.cpp.

void FS2NetD_SendServerStart ( )

Definition at line 533 of file tcp_client.cpp.

void FS2NetD_SendServerUpdate ( )

Definition at line 574 of file tcp_client.cpp.

int FS2NetD_ValidateTableList ( bool  do_send)

Definition at line 685 of file tcp_client.cpp.