#define NETFLAG_EOM 0x00080000
#define NETFLAG_UNRELIABLE 0x00100000
#define NETFLAG_CTL 0x80000000
+#define NETFLAG_CRYPTO 0x40000000
#define NET_PROTOCOL_VERSION 3
#define CCREP_RULE_INFO 0x85
#define CCREP_RCON 0x86 // RocketGuy: ProQuake rcon support
+typedef struct netgraphitem_s
+{
+ double time;
+ int reliablebytes;
+ int unreliablebytes;
+ int ackbytes;
+}
+netgraphitem_t;
+
typedef struct netconn_s
{
struct netconn_s *next;
// this tracks packet loss and packet sizes on the most recent packets
// used by shownetgraph feature
-#define NETGRAPH_PACKETS 100
+#define NETGRAPH_PACKETS 256
#define NETGRAPH_NOPACKET 0
#define NETGRAPH_LOSTPACKET -1
#define NETGRAPH_CHOKEDPACKET -2
int incoming_packetcounter;
- int incoming_reliablesize[NETGRAPH_PACKETS];
- int incoming_unreliablesize[NETGRAPH_PACKETS];
- int incoming_acksize[NETGRAPH_PACKETS];
+ netgraphitem_t incoming_netgraph[NETGRAPH_PACKETS];
int outgoing_packetcounter;
- int outgoing_reliablesize[NETGRAPH_PACKETS];
- int outgoing_unreliablesize[NETGRAPH_PACKETS];
- int outgoing_acksize[NETGRAPH_PACKETS];
+ netgraphitem_t outgoing_netgraph[NETGRAPH_PACKETS];
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
#define SERVERLIST_VIEWLISTSIZE SERVERLIST_TOTALSIZE
-#define SERVERLIST_ANDMASKCOUNT 5
-#define SERVERLIST_ORMASKCOUNT 5
typedef enum serverlist_maskop_e
{
serverlist_info_t info;
} serverlist_mask_t;
+#define ServerList_GetCacheEntry(x) (&serverlist_cache[(x)])
+#define ServerList_GetViewEntry(x) (ServerList_GetCacheEntry(serverlist_viewlist[(x)]))
+
extern serverlist_mask_t serverlist_andmasks[SERVERLIST_ANDMASKCOUNT];
extern serverlist_mask_t serverlist_ormasks[SERVERLIST_ORMASKCOUNT];
extern serverlist_infofield_t serverlist_sortbyfield;
extern int serverlist_sortflags; // not using the enum, as it is a bitmask
+#if SERVERLIST_TOTALSIZE > 65536
+#error too many servers, change type of index array
+#endif
extern int serverlist_viewcount;
-extern serverlist_entry_t *serverlist_viewlist[SERVERLIST_VIEWLISTSIZE];
+extern unsigned short serverlist_viewlist[SERVERLIST_VIEWLISTSIZE];
extern int serverlist_cachecount;
+extern serverlist_entry_t *serverlist_cache;
extern qboolean serverlist_consoleoutput;
//
//============================================================================
-extern char net_extresponse[NET_EXTRESPONSE_MAX][1400];
-extern int net_extresponse_count;
-extern int net_extresponse_last;
+extern char cl_net_extresponse[NET_EXTRESPONSE_MAX][1400];
+extern int cl_net_extresponse_count;
+extern int cl_net_extresponse_last;
+
+extern char sv_net_extresponse[NET_EXTRESPONSE_MAX][1400];
+extern int sv_net_extresponse_count;
+extern int sv_net_extresponse_last;
extern double masterquerytime;
extern int masterquerycount;
extern int serverquerycount;
extern int serverreplycount;
-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;
void ServerList_QueryList(qboolean resetcache, qboolean querydp, qboolean queryqw, qboolean consoleoutput);
/// called whenever net_slist_favorites changes
-void NetConn_UpdateFavorites();
+void NetConn_UpdateFavorites(void);
+
+#define MAX_CHALLENGES 128
+typedef struct challenge_s
+{
+ lhnetaddress_t address;
+ double time;
+ char string[12];
+}
+challenge_t;
+
+extern challenge_t challenge[MAX_CHALLENGES];
#endif