lhnetsocket_t *mysocket;
lhnetaddress_t peeraddress;
-
+
// this is mostly identical to qsocket_t from quake
// if this time is reached, kick off peer
extern char playername[];
extern int playercolor;
-#define SERVERLIST_TOTALSIZE 2048
-#define SERVERLIST_VIEWLISTSIZE 128
+#define SERVERLIST_TOTALSIZE 2048
+#define SERVERLIST_VIEWLISTSIZE SERVERLIST_TOTALSIZE
#define SERVERLIST_ANDMASKCOUNT 5
#define SERVERLIST_ORMASKCOUNT 5
-typedef enum
+typedef enum
{
// SLMO_CONTAINS is the default for strings
// SLMO_GREATEREQUAL is the default for numbers (also used when OP == CONTAINS or NOTCONTAINS
int protocol;
} serverlist_info_t;
-typedef enum
+typedef enum
{
SLIF_CNAME,
SLIF_PING,
SLIF_COUNT
} serverlist_infofield_t;
+typedef enum
+{
+ SQS_NONE = 0,
+ SQS_QUERYING,
+ SQS_QUERIED,
+ SQS_TIMEDOUT
+} serverlist_query_state;
+
typedef struct
{
// used to determine whether this entry should be included into the final view
- qboolean finished;
+ serverlist_query_state query;
+ // used to count the number of times the host has tried to query this server already
+ unsigned querycounter;
// used to calculate ping when update comes in
double querytime;
serverlist_info_t info;
-
+
// legacy stuff
char line1[128];
char line2[128];
extern int serverlist_viewcount;
extern serverlist_entry_t *serverlist_viewlist[SERVERLIST_VIEWLISTSIZE];
-extern int serverlist_cachecount;
+extern int serverlist_cachecount;
extern qboolean serverlist_consoleoutput;
-#if !defined(_WIN32 ) && !defined (__linux__) && !defined (__sun__)
+#if !defined(_WIN32) && !defined(__linux__) && !defined(SUNOS)
#ifndef htonl
extern unsigned long htonl (unsigned long hostlong);
#endif
void NetConn_ServerFrame(void);
void NetConn_QueryMasters(void);
void NetConn_Heartbeat(int priority);
+void NetConn_QueryQueueFrame(void);
int NetConn_SendToAll(sizebuf_t *data, double blocktime);
void Net_Stats_f(void);
void Net_Slist_f(void);