X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=netconn.h;h=6744318e93679c23495db0f851116d4e54b22648;hb=1a700cf9b44c8561c251534f14ec5959e5987f33;hp=f7159d6a8ab073c4db857aef5d41c27fa774abb9;hpb=8163f0466cc2e540ac4a2701c8b38fa85562c99e;p=xonotic%2Fdarkplaces.git diff --git a/netconn.h b/netconn.h index f7159d6a..6744318e 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 @@ -127,6 +128,7 @@ typedef struct netgraphitem_s int reliablebytes; int unreliablebytes; int ackbytes; + double cleartime; } netgraphitem_t; @@ -206,6 +208,7 @@ typedef struct netconn_s // 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 @@ -219,6 +222,18 @@ typedef struct netconn_s 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; @@ -227,10 +242,7 @@ extern mempool_t *netconn_mempool; 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 { @@ -348,16 +360,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; @@ -369,9 +388,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; @@ -379,7 +402,10 @@ extern int masterreplycount; 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; @@ -389,9 +415,11 @@ extern cvar_t cl_netport; 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); @@ -430,5 +458,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