*/
// net.h -- quake's interface to the networking layer
+#ifndef NET_H
+#define NET_H
+
struct qsockaddr
{
short sa_family;
struct qsockaddr addr;
char address[NET_NAMELEN];
-
} qsocket_t;
extern qsocket_t *net_activeSockets;
-// LordHavoc: sockets are dynamically allocated now
-//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 (*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) (struct qsockaddr *addr);
- int (*StringToAddr) (char *string, struct qsockaddr *addr);
+ 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);
- qsocket_t *(*Connect) (char *host);
+ qboolean (*SearchForInetHosts) (const char *master);
+ qsocket_t *(*Connect) (const char *host);
qsocket_t *(*CheckNewConnections) (void);
int (*QGetMessage) (qsocket_t *sock);
int (*QSendMessage) (qsocket_t *sock, sizebuf_t *data);
qboolean (*CanSendUnreliableMessage) (qsocket_t *sock);
void (*Close) (qsocket_t *sock);
void (*Shutdown) (void);
+ void (*Heartbeat) (const 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 (int priority);
+// Send an heartbeat to the master server(s). priority: 0 = lowest, 1 = state change, 2 = force
+
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
+