]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - netconn.h
make clock_gettime default (since 2.6.28 it is NTP-adjusted)
[xonotic/darkplaces.git] / netconn.h
index f7159d6a8ab073c4db857aef5d41c27fa774abb9..6744318e93679c23495db0f851116d4e54b22648 100755 (executable)
--- 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