This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
#define NET_NAMELEN 64
-#define NET_MAXMESSAGE 16384
+#define NET_MAXMESSAGE (MAX_DATAGRAM + 64)
#define NET_HEADERSIZE (2 * sizeof(unsigned int))
#define NET_DATAGRAMSIZE (MAX_DATAGRAM + NET_HEADERSIZE)
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);
+ 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 (*GetNameFromAddr) (const struct qsockaddr *addr, char *name);
int (*GetAddrFromName) (const char *name, struct qsockaddr *addr);
- int (*AddrCompare) (struct qsockaddr *addr1, struct qsockaddr *addr2);
+ 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;
extern int net_driverlevel;
extern cvar_t hostname;
+extern cvar_t developer_networking;
extern char playername[];
extern int playercolor;
double SetNetTime(void);
-#define HOSTCACHESIZE 8
+#define HOSTCACHESIZE 128
typedef struct
{
- char name[16];
- char map[16];
- char cname[32];
+ char name[64];
+ char map[64];
+ char cname[64];
int users;
int maxusers;
- int driver;
- int ldriver;
- struct qsockaddr addr;
+ //int driver;
+ //int ldriver;
+ //struct qsockaddr addr;
} hostcache_t;
extern int hostCacheCount;
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 qboolean slistSilent;
extern qboolean slistLocal;
-extern cvar_t hostname;
-
void NET_Slist_f (void);
+void NET_InetSlist_f (void);
#endif