*/
// net.h -- quake's interface to the networking layer
+#ifndef NET_H
+#define NET_H
+
struct qsockaddr
{
short sa_family;
qboolean disconnected;
qboolean canSend;
qboolean sendNext;
-
+
int driver;
int landriver;
int socket;
unsigned int sendSequence;
unsigned int unreliableSendSequence;
int sendMessageLength;
- byte sendMessage [NET_MAXMESSAGE];
+ qbyte sendMessage [NET_MAXMESSAGE];
unsigned int receiveSequence;
unsigned int unreliableReceiveSequence;
int receiveMessageLength;
- byte receiveMessage [NET_MAXMESSAGE];
+ qbyte receiveMessage [NET_MAXMESSAGE];
struct qsockaddr addr;
char address[NET_NAMELEN];
-
} qsocket_t;
extern qsocket_t *net_activeSockets;
-extern qsocket_t *net_freeSockets;
-extern int net_numsockets;
+extern mempool_t *net_mempool;
typedef struct
{
int (*CloseSocket) (int socket);
int (*Connect) (int socket, struct qsockaddr *addr);
int (*CheckNewConnections) (void);
- int (*Read) (int socket, byte *buf, int len, struct qsockaddr *addr);
- int (*Write) (int socket, byte *buf, int len, struct qsockaddr *addr);
- int (*Broadcast) (int socket, byte *buf, int len);
- char * (*AddrToString) (struct qsockaddr *addr);
- int (*StringToAddr) (char *string, struct qsockaddr *addr);
+ int (*Recv) (qbyte *buf, int len, struct qsockaddr *addr);
+ int (*Send) (qbyte *buf, int len, struct qsockaddr *addr);
+ int (*Read) (int socket, qbyte *buf, int len, struct qsockaddr *addr);
+ int (*Write) (int socket, qbyte *buf, int len, struct qsockaddr *addr);
+ int (*Broadcast) (int socket, qbyte *buf, int len);
+ char * (*AddrToString) (const struct qsockaddr *addr);
+ int (*StringToAddr) (const char *string, struct qsockaddr *addr);
int (*GetSocketAddr) (int socket, struct qsockaddr *addr);
- int (*GetNameFromAddr) (struct qsockaddr *addr, char *name);
- int (*GetAddrFromName) (char *name, struct qsockaddr *addr);
- int (*AddrCompare) (struct qsockaddr *addr1, struct qsockaddr *addr2);
+ int (*GetNameFromAddr) (const struct qsockaddr *addr, char *name);
+ int (*GetAddrFromName) (const char *name, struct qsockaddr *addr);
+ int (*AddrCompare) (const struct qsockaddr *addr1, const struct qsockaddr *addr2);
int (*GetSocketPort) (struct qsockaddr *addr);
int (*SetSocketPort) (struct qsockaddr *addr, int port);
} net_landriver_t;
int (*Init) (void);
void (*Listen) (qboolean state);
void (*SearchForHosts) (qboolean xmit);
+ qboolean (*SearchForInetHosts) (char *master);
qsocket_t *(*Connect) (char *host);
qsocket_t *(*CheckNewConnections) (void);
int (*QGetMessage) (qsocket_t *sock);
qboolean (*CanSendUnreliableMessage) (qsocket_t *sock);
void (*Close) (qsocket_t *sock);
void (*Shutdown) (void);
+ void (*Heartbeat) (char *host);
int controlSock;
} net_driver_t;
struct qsocket_s *NET_Connect (char *host);
// called by client to connect to a host. Returns -1 if not able to
+void NET_Heartbeat (void);
+// Send an heartbeat to the master server(s)
+
qboolean NET_CanSendMessage (qsocket_t *sock);
// Returns true or false if the given qsocket can currently accept a
// message to be transmitted.
extern cvar_t hostname;
void NET_Slist_f (void);
+void NET_InetSlist_f (void);
+
+#endif
+