lhnetsocket_t *mysocket;
lhnetaddress_t peeraddress;
-
+
// this is mostly identical to qsocket_t from quake
// if this time is reached, kick off peer
unsigned int sendSequence;
unsigned int unreliableSendSequence;
int sendMessageLength;
- qbyte sendMessage[NET_MAXMESSAGE];
+ unsigned char sendMessage[NET_MAXMESSAGE];
unsigned int receiveSequence;
unsigned int unreliableReceiveSequence;
int receiveMessageLength;
- qbyte receiveMessage[NET_MAXMESSAGE];
+ unsigned char receiveMessage[NET_MAXMESSAGE];
char address[128];
} netconn_t;
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];
int protocol;
} serverlist_info_t;
-typedef enum
+typedef enum
{
SLIF_CNAME,
SLIF_PING,
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;
serverlist_info_t info;
-
+
// legacy stuff
char line1[128];
char line2[128];
} serverlist_entry_t;
-typedef struct
+typedef struct serverlist_mask_s
{
qboolean active;
serverlist_maskop_t tests[SLIF_COUNT];
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_Close(netconn_t *conn);
void NetConn_Listen(qboolean state);
int NetConn_IsLocalGame(void);
-//int NetConn_ReceivedMessage(netconn_t *conn, qbyte *data, int length);
-//int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length, lhnetaddress_t *peeraddress);
-//int NetConn_ServerParsePacket(lhnetsocket_t *mysocket, qbyte *data, int length, lhnetaddress_t *peeraddress);
+//int NetConn_ReceivedMessage(netconn_t *conn, unsigned char *data, int length);
+//int NetConn_ClientParsePacket(lhnetsocket_t *mysocket, unsigned char *data, int length, lhnetaddress_t *peeraddress);
+//int NetConn_ServerParsePacket(lhnetsocket_t *mysocket, unsigned char *data, int length, lhnetaddress_t *peeraddress);
void NetConn_ClientFrame(void);
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);