X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=netconn.h;h=f93d297eb6f52d78f49af8b5c9f004c65442d943;hb=48ccfb68d06fc2f6565ab6c34a0b17fae5393563;hp=f8b42fa9fae7d544999325db7281d25d835e78c2;hpb=321a67123284c38c22f8edd418913615ee0c2682;p=xonotic%2Fdarkplaces.git diff --git a/netconn.h b/netconn.h index f8b42fa9..f93d297e 100755 --- a/netconn.h +++ b/netconn.h @@ -34,6 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define NETFLAG_EOM 0x00080000 #define NETFLAG_UNRELIABLE 0x00100000 #define NETFLAG_CTL 0x80000000 +#define NETFLAG_CRYPTO 0x40000000 #define NET_PROTOCOL_VERSION 3 @@ -121,6 +122,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #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; @@ -200,20 +210,17 @@ typedef struct netconn_s // 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; } netconn_t; extern netconn_t *netconn_list; @@ -343,16 +350,23 @@ typedef struct serverlist_mask_s 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; @@ -364,9 +378,13 @@ void ServerList_GetPlayerStatistics(int *numplayerspointer, int *maxplayerspoint // //============================================================================ -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; @@ -425,5 +443,16 @@ void ServerList_QueryList(qboolean resetcache, qboolean querydp, qboolean queryq /// called whenever net_slist_favorites changes 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