#define NET_HEADERSIZE (2 * sizeof(unsigned int))
// NetHeader flags
-#define NETFLAG_LENGTH_MASK 0x0000ffff
-#define NETFLAG_DATA 0x00010000
-#define NETFLAG_ACK 0x00020000
-#define NETFLAG_NAK 0x00040000
-#define NETFLAG_EOM 0x00080000
-#define NETFLAG_UNRELIABLE 0x00100000
-#define NETFLAG_CTL 0x80000000
-#define NETFLAG_CRYPTO 0x40000000
+#define NETFLAG_LENGTH_MASK 0x0000ffff
+#define NETFLAG_DATA 0x00010000
+#define NETFLAG_ACK 0x00020000
+#define NETFLAG_NAK 0x00040000
+#define NETFLAG_EOM 0x00080000
+#define NETFLAG_UNRELIABLE 0x00100000
+#define NETFLAG_CRYPTO0 0x10000000
+#define NETFLAG_CRYPTO1 0x20000000
+#define NETFLAG_CRYPTO2 0x40000000
+#define NETFLAG_CTL 0x80000000
#define NET_PROTOCOL_VERSION 3
int reliablebytes;
int unreliablebytes;
int ackbytes;
+ double cleartime;
}
netgraphitem_t;
int qport;
// sequencing variables
- int incoming_sequence;
- int incoming_acknowledged;
- int incoming_reliable_acknowledged; ///< single bit
+ unsigned int incoming_sequence;
+ unsigned int incoming_acknowledged;
+ qboolean incoming_reliable_acknowledged; ///< single bit
- int incoming_reliable_sequence; ///< single bit, maintained local
+ qboolean incoming_reliable_sequence; ///< single bit, maintained local
- int reliable_sequence; ///< single bit
- int last_reliable_sequence; ///< sequence number of last send
+ qboolean reliable_sequence; ///< single bit
+ unsigned int last_reliable_sequence; ///< sequence number of last send
}
qw;
// bandwidth estimator
double cleartime; // if realtime > nc->cleartime, free to go
+ double incoming_cleartime; // if realtime > nc->cleartime, free to go (netgraph cleartime simulation only)
// this tracks packet loss and packet sizes on the most recent packets
// used by shownetgraph feature
char address[128];
crypto_t crypto;
+
+ // statistic counters
+ int packetsSent;
+ int packetsReSent;
+ int packetsReceived;
+ int receivedDuplicateCount;
+ int droppedDatagrams;
+ int unreliableMessagesSent;
+ int unreliableMessagesReceived;
+ int reliableMessagesSent;
+ int reliableMessagesReceived;
} netconn_t;
extern netconn_t *netconn_list;
extern cvar_t hostname;
extern cvar_t developer_networking;
-#define SERVERLIST_TOTALSIZE 2048
+#ifdef CONFIG_MENU
#define SERVERLIST_VIEWLISTSIZE SERVERLIST_TOTALSIZE
-#define SERVERLIST_ANDMASKCOUNT 5
-#define SERVERLIST_ORMASKCOUNT 5
typedef enum serverlist_maskop_e
{
/// (an integer that is used for filtering incompatible servers,
/// not filterable by QC)
int gameversion;
+
+ // categorized sorting
+ int category;
/// favorite server flag
qboolean isfavorite;
} serverlist_info_t;
SLIF_FREESLOTS,
SLIF_QCSTATUS,
SLIF_PLAYERS,
+ SLIF_CATEGORY,
SLIF_ISFAVORITE,
SLIF_COUNT
} serverlist_infofield_t;
typedef enum
{
SLSF_DESCENDING = 1,
- SLSF_FAVORITESFIRST = 2
+ SLSF_FAVORITES = 2,
+ SLSF_CATEGORIES = 4
} serverlist_sortflags_t;
typedef enum
extern int serverlist_cachecount;
extern serverlist_entry_t *serverlist_cache;
+extern const serverlist_entry_t *serverlist_callbackentry;
extern qboolean serverlist_consoleoutput;
void ServerList_GetPlayerStatistics(int *numplayerspointer, int *maxplayerspointer);
+#endif
//============================================================================
//
extern int sv_net_extresponse_count;
extern int sv_net_extresponse_last;
+#ifdef CONFIG_MENU
extern double masterquerytime;
extern int masterquerycount;
extern int masterreplycount;
extern int serverquerycount;
extern int serverreplycount;
+#endif
-extern sizebuf_t net_message;
+extern sizebuf_t cl_message;
+extern sizebuf_t sv_message;
+extern char cl_readstring[MAX_INPUTLINE];
+extern char sv_readstring[MAX_INPUTLINE];
extern cvar_t sv_public;
extern cvar_t sv_netport;
extern cvar_t net_address;
extern cvar_t net_address_ipv6;
+extern cvar_t net_usesizelimit;
+extern cvar_t net_burstreserve;
qboolean NetConn_CanSend(netconn_t *conn);
-int NetConn_SendUnreliableMessage(netconn_t *conn, sizebuf_t *data, protocolversion_t protocol, int rate, qboolean quakesignon_suppressreliables);
+int NetConn_SendUnreliableMessage(netconn_t *conn, sizebuf_t *data, protocolversion_t protocol, int rate, int burstsize, qboolean quakesignon_suppressreliables);
qboolean NetConn_HaveClientPorts(void);
qboolean NetConn_HaveServerPorts(void);
void NetConn_CloseClientPorts(void);
void NetConn_ClientFrame(void);
void NetConn_ServerFrame(void);
void NetConn_SleepMicroseconds(int microseconds);
-void NetConn_QueryMasters(qboolean querydp, qboolean queryqw);
void NetConn_Heartbeat(int priority);
-void NetConn_QueryQueueFrame(void);
void Net_Stats_f(void);
+
+#ifdef CONFIG_MENU
+void NetConn_QueryMasters(qboolean querydp, qboolean queryqw);
+void NetConn_QueryQueueFrame(void);
void Net_Slist_f(void);
void Net_SlistQW_f(void);
void Net_Refresh_f(void);
/// called whenever net_slist_favorites changes
void NetConn_UpdateFavorites(void);
+#endif
#define MAX_CHALLENGES 128
typedef struct challenge_s