openmohaa/code/gamespy/natneg/nninternal.h

110 lines
2.3 KiB
C
Raw Permalink Normal View History

2023-02-04 21:00:01 +01:00
#ifndef _NNINTERNAL_H_
#define _NNINTERNAL_H_
#include "natneg.h"
#define MATCHUP1_HOSTNAME "natneg1." GSI_DOMAIN_NAME
#define MATCHUP2_HOSTNAME "natneg2." GSI_DOMAIN_NAME
#define MATCHUP3_HOSTNAME "natneg3." GSI_DOMAIN_NAME
#define MATCHUP_PORT1 27901
#define MATCHUP_PORT2 27901
#define MATCHUP_PORT3 27901
#define FINISHED_NOERROR 0
#define FINISHED_ERROR_DEADBEAT_PARTNER 1
#define FINISHED_ERROR_INIT_PACKETS_TIMEDOUT 2
#define INIT_RETRY_TIME 500
#define INIT_RETRY_COUNT 10
#define NNINBUF_LEN 512
#define PING_RETRY_TIME 700
#define PING_RETRY_COUNT 7
#define FINISHED_IDLE_TIME 5000
#define PARTNER_WAIT_TIME 60000
#define REPORT_RETRY_TIME 1000
#define REPORT_RETRY_COUNT 5
#define NN_PROTVER 3
//#define NN_PROTVER 2
#define NN_PT_GP 0
#define NN_PT_NN1 1
#define NN_PT_NN2 2
#define NN_PT_NN3 3
#define NN_INIT 0
#define NN_INITACK 1
#define NN_ERTTEST 2
#define NN_ERTACK 3
#define NN_STATEUPDATE 4
#define NN_CONNECT 5
#define NN_CONNECT_ACK 6
#define NN_CONNECT_PING 7
#define NN_BACKUP_TEST 8
#define NN_BACKUP_ACK 9
#define NN_ADDRESS_CHECK 10
#define NN_ADDRESS_REPLY 11
#define NN_NATIFY_REQUEST 12
#define NN_REPORT 13
#define NN_REPORT_ACK 14
#if !defined(_PS2) && !defined(_NITRO)
#pragma pack(1)
#endif
#define INITPACKET_SIZE BASEPACKET_SIZE + 9
#define INITPACKET_ADDRESS_OFFSET BASEPACKET_SIZE + 3
typedef struct _InitPacket
{
unsigned char porttype;
unsigned char clientindex;
unsigned char usegameport;
unsigned int localip;
unsigned short localport;
} InitPacket;
#define REPORTPACKET_SIZE BASEPACKET_SIZE + 61
typedef struct _ReportPacket
{
unsigned char porttype;
unsigned char clientindex;
unsigned char negResult;
NatType natType;
NatMappingScheme natMappingScheme;
char gamename[50];
} ReportPacket;
#define CONNECTPACKET_SIZE BASEPACKET_SIZE + 8
typedef struct _ConnectPacket
{
unsigned int remoteIP;
unsigned short remotePort;
unsigned char gotyourdata;
unsigned char finished;
} ConnectPacket;
#define BASEPACKET_SIZE 12
#define BASEPACKET_TYPE_OFFSET 7
typedef struct _NatNegPacket {
// Base members:
unsigned char magic[NATNEG_MAGIC_LEN];
unsigned char version;
unsigned char packettype;
int cookie;
union
{
InitPacket Init;
ConnectPacket Connect;
ReportPacket Report;
} Packet;
} NatNegPacket;
#if !defined(_PS2) && !defined(_NITRO)
#pragma pack()
#endif
#endif