32#define NET_HEADERSIZE (2 * sizeof(unsigned int))
35#define NETFLAG_LENGTH_MASK 0x0000ffff
36#define NETFLAG_DATA 0x00010000
37#define NETFLAG_ACK 0x00020000
38#define NETFLAG_NAK 0x00040000
39#define NETFLAG_EOM 0x00080000
40#define NETFLAG_UNRELIABLE 0x00100000
41#define NETFLAG_CRYPTO0 0x10000000
42#define NETFLAG_CRYPTO1 0x20000000
43#define NETFLAG_CRYPTO2 0x40000000
44#define NETFLAG_CTL 0x80000000
47#define NET_PROTOCOL_VERSION 3
48#define NET_EXTRESPONSE_MAX 16
119#define CCREQ_CONNECT 0x01
120#define CCREQ_SERVER_INFO 0x02
121#define CCREQ_PLAYER_INFO 0x03
122#define CCREQ_RULE_INFO 0x04
123#define CCREQ_RCON 0x05
125#define CCREP_ACCEPT 0x81
126#define CCREP_REJECT 0x82
127#define CCREP_SERVER_INFO 0x83
128#define CCREP_PLAYER_INFO 0x84
129#define CCREP_RULE_INFO 0x85
130#define CCREP_RCON 0x86
132typedef struct netgraphitem_s
142typedef struct netconn_s
222#define NETGRAPH_PACKETS 256
223#define NETGRAPH_NOPACKET 0
224#define NETGRAPH_LOSTPACKET -1
225#define NETGRAPH_CHOKEDPACKET -2
253#define SERVERLIST_VIEWLISTSIZE SERVERLIST_TOTALSIZE
255typedef enum serverlist_maskop_e
270} serverlist_maskop_t;
273typedef struct serverlist_info_s
294 unsigned qcstatus_len;
297 unsigned players_len;
340} serverlist_infofield_t;
347} serverlist_sortflags_t;
349typedef struct serverlist_entry_s
358 serverlist_info_t info;
367typedef struct serverlist_mask_s
370 serverlist_maskop_t tests[SLIF_COUNT];
371 serverlist_info_t info;
374#define ServerList_GetCacheEntry(x) (&serverlist_cache[(x)])
375#define ServerList_GetViewEntry(x) (ServerList_GetCacheEntry(serverlist_viewlist[(x)]))
380extern serverlist_infofield_t serverlist_sortbyfield;
381extern unsigned serverlist_sortflags;
383#if SERVERLIST_TOTALSIZE > 65536
384#error too many servers, change type of index array
386extern unsigned serverlist_viewcount;
387extern uint16_t serverlist_viewlist[SERVERLIST_VIEWLISTSIZE];
389extern unsigned serverlist_cachecount;
390extern serverlist_entry_t *serverlist_cache;
393void ServerList_GetPlayerStatistics(
unsigned *numplayerspointer,
unsigned *maxplayerspointer);
460void NetConn_QueryMasters(
qbool querydp,
qbool queryqw);
461void NetConn_QueryQueueFrame(
void);
462void Net_Slist_f(
struct cmd_state_s *
cmd);
463void Net_SlistQW_f(
struct cmd_state_s *
cmd);
464void Net_Refresh_f(
struct cmd_state_s *
cmd);
468void ServerList_RebuildViewList(
cvar_t* var);
469void ServerList_ResetMasks(
void);
473void NetConn_UpdateFavorites_c(
struct cvar_s *var);
476#define MAX_CHALLENGES 128
477typedef struct challenge_s
float mod(float dividend, float divisor)
GLenum GLuint GLenum GLsizei length
GLsizeiptr const GLvoid * data
unsigned serverquerycount
unsigned masterquerycount
static cvar_t gameversion
unsigned serverreplycount
unsigned masterreplycount
struct cvar_s net_fakelag
netconn_t * NetConn_Open(lhnetsocket_t *mysocket, lhnetaddress_t *peeraddress)
void NetConn_Heartbeat(int priority)
struct cvar_s developer_networking
struct cvar_s net_address
unsigned cl_net_extresponse_last
qbool NetConn_CanSend(netconn_t *conn)
int NetConn_Write(lhnetsocket_t *mysocket, const void *data, int length, const lhnetaddress_t *peeraddress)
int NetConn_WriteString(lhnetsocket_t *mysocket, const char *string, const lhnetaddress_t *peeraddress)
int NetConn_Read(lhnetsocket_t *mysocket, void *data, int maxlength, lhnetaddress_t *peeraddress)
unsigned sv_net_extresponse_count
char sv_net_extresponse[NET_EXTRESPONSE_MAX][1400]
lhnetsocket_t * NetConn_ChooseClientSocketForAddress(lhnetaddress_t *address)
void NetConn_UpdateSockets(void)
#define NET_EXTRESPONSE_MAX
unsigned sv_net_extresponse_last
challenge_t challenges[MAX_CHALLENGES]
struct cvar_s net_usesizelimit
char cl_readstring[MAX_INPUTLINE]
char sv_readstring[MAX_INPUTLINE]
qbool NetConn_HaveServerPorts(void)
void NetConn_ClientFrame(void)
lhnetsocket_t * NetConn_ChooseServerSocketForAddress(lhnetaddress_t *address)
unsigned cl_net_extresponse_count
void NetConn_Listen(qbool state)
struct mempool_s * netconn_mempool
qbool NetConn_HaveClientPorts(void)
void NetConn_Close(netconn_t *conn)
int NetConn_IsLocalGame(void)
struct cvar_s net_burstreserve
void NetConn_ServerFrame(void)
void NetConn_Shutdown(void)
struct cvar_s net_address_ipv6
void NetConn_OpenServerPorts(int opennetports)
char cl_net_extresponse[NET_EXTRESPONSE_MAX][1400]
void NetConn_OpenClientPorts(void)
void NetConn_CloseServerPorts(void)
int NetConn_SendUnreliableMessage(netconn_t *conn, sizebuf_t *data, protocolversion_t protocol, int rate, int burstsize, qbool quakesignon_suppressreliables)
void Net_Stats_f(struct cmd_state_s *cmd)
void NetConn_CloseClientPorts(void)
#define MAX_INPUTLINE
maximum size of console commandline, QuakeC strings, and many other text processing buffers
#define SERVERLIST_ANDMASKCOUNT
max items in server list AND mask
#define NET_MAXMESSAGE
max reliable packet size (sent as multiple fragments of MAX_PACKETFRAGMENT)
#define SERVERLIST_ORMASKCOUNT
max items in server list OR mask
unsigned int sendSequence
unsigned int unreliableReceiveSequence
unsigned int receiveSequence
int good_count
cleared each level
unsigned int last_reliable_sequence
sequence number of last send
int drop_count
dropped packets, cleared each level
qbool incoming_reliable_sequence
single bit, maintained local
unsigned int incoming_acknowledged
qbool incoming_reliable_acknowledged
single bit
unsigned int incoming_sequence
qbool reliable_sequence
single bit
int incoming_packetcounter
int reliableMessagesReceived
int outgoing_packetcounter
int receiveMessageLength
reliable message that is currently being received (for putting together fragments)
int unreliableMessagesReceived
lhnetaddress_t peeraddress
unsigned int outgoing_unreliable_sequence
used by both NQ and QW protocols
int unreliableMessagesSent
double incoming_cleartime
int sendMessageLength
reliable message that is currently sending (for building fragments)
sizebuf_t message
writing buffer to send to peer as the next reliable message can be added to at any time,...
double connecttime
if this time is reached, kick off peer
struct netconn_t::netconn_qw_s qw
int receivedDuplicateCount
struct netconn_t::netconn_nq_s nq