extern int playercolor;
#define SERVERLIST_TOTALSIZE 2048
-#define SERVERLIST_VIEWLISTSIZE 128
+#define SERVERLIST_VIEWLISTSIZE SERVERLIST_TOTALSIZE
#define SERVERLIST_ANDMASKCOUNT 5
#define SERVERLIST_ORMASKCOUNT 5
-typedef enum
+typedef enum serverlist_maskop_e
{
// SLMO_CONTAINS is the default for strings
// SLMO_GREATEREQUAL is the default for numbers (also used when OP == CONTAINS or NOTCONTAINS
} serverlist_maskop_t;
// struct with all fields that you can search for or sort by
-typedef struct
+typedef struct serverlist_info_s
{
// address for connecting
char cname[128];
SLIF_COUNT
} serverlist_infofield_t;
-typedef struct
+typedef enum
+{
+ SQS_NONE = 0,
+ SQS_QUERYING,
+ SQS_QUERIED,
+ SQS_TIMEDOUT
+} serverlist_query_state;
+
+typedef struct serverlist_entry_s
{
// 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;
char line2[128];
} serverlist_entry_t;
-typedef struct
+typedef struct serverlist_mask_s
{
qboolean active;
serverlist_maskop_t tests[SLIF_COUNT];
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);