X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=net.h;h=386379ab7bbaa7a6ccf7364fadb150c11d9694f7;hb=038ff8d79bb5044145cc2f87a8df1ce732209e4d;hp=71dc2541dd00036fb1e401d4bcc51079849e6451;hpb=cecffffdd5310e387e8b910735ff77aa329cdb43;p=xonotic%2Fdarkplaces.git diff --git a/net.h b/net.h index 71dc2541..386379ab 100644 --- a/net.h +++ b/net.h @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. 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. @@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // net.h -- quake's interface to the networking layer +#ifndef NET_H +#define NET_H + struct qsockaddr { short sa_family; @@ -28,7 +31,7 @@ struct qsockaddr #define NET_NAMELEN 64 -#define NET_MAXMESSAGE 8192 +#define NET_MAXMESSAGE (MAX_DATAGRAM + 64) #define NET_HEADERSIZE (2 * sizeof(unsigned int)) #define NET_DATAGRAMSIZE (MAX_DATAGRAM + NET_HEADERSIZE) @@ -126,7 +129,7 @@ typedef struct qsocket_s qboolean disconnected; qboolean canSend; qboolean sendNext; - + int driver; int landriver; int socket; @@ -136,21 +139,19 @@ typedef struct qsocket_s 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 { @@ -164,15 +165,17 @@ 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; @@ -188,7 +191,8 @@ typedef struct 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); @@ -197,6 +201,7 @@ typedef struct qboolean (*CanSendUnreliableMessage) (qsocket_t *sock); void (*Close) (qsocket_t *sock); void (*Shutdown) (void); + void (*Heartbeat) (const char *host); int controlSock; } net_driver_t; @@ -208,6 +213,7 @@ extern int net_hostport; extern int net_driverlevel; extern cvar_t hostname; +extern cvar_t developer_networking; extern char playername[]; extern int playercolor; @@ -272,6 +278,9 @@ struct qsocket_s *NET_CheckNewConnections (void); 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. @@ -316,18 +325,17 @@ typedef struct _PollProcedure void SchedulePollProcedure(PollProcedure *pp, double timeOffset); -extern qboolean serialAvailable; extern qboolean ipxAvailable; extern qboolean tcpipAvailable; extern char my_ipx_address[NET_NAMELEN]; extern char my_tcpip_address[NET_NAMELEN]; -extern void (*GetComPortConfig) (int portNumber, int *port, int *irq, int *baud, qboolean *useModem); -extern void (*SetComPortConfig) (int portNumber, int port, int irq, int baud, qboolean useModem); -extern void (*GetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup); -extern void (*SetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup); extern qboolean slistInProgress; extern qboolean slistSilent; extern qboolean slistLocal; void NET_Slist_f (void); +void NET_InetSlist_f (void); + +#endif +