Kart-Public/tools/SRB2Launcher/lilsocklib.h

53 lines
1.4 KiB
C

// Unlike lilsocklib.c, since this takes code from SRB2,
// it is under the GPL, rather than public domain. =(
//
#ifndef __LILSOCKLIB_H__
#define __LILSOCKLIB_H__
#define SD_BOTH 0x02
#define PACKET_SIZE 1024
#define MS_NO_ERROR 0
#define MS_SOCKET_ERROR -201
#define MS_CONNECT_ERROR -203
#define MS_WRITE_ERROR -210
#define MS_READ_ERROR -211
#define MS_CLOSE_ERROR -212
#define MS_GETHOSTBYNAME_ERROR -220
#define MS_GETHOSTNAME_ERROR -221
#define MS_TIMEOUT_ERROR -231
// see master server code for the values
#define ADD_SERVER_MSG 101
#define REMOVE_SERVER_MSG 103
#ifdef MASTERSERVERS12
#define ADD_SERVERv2_MSG 104
#endif
#define GET_SERVER_MSG 200
#define GET_SHORT_SERVER_MSG 205
#ifdef MASTERSERVERS12
#define ASK_SERVER_MSG 206
#define ANSWER_ASK_SERVER_MSG 207
#endif
#define HEADER_SIZE ((long)sizeof (long)*3)
#define HEADER_MSG_POS 0
#define IP_MSG_POS 16
#define PORT_MSG_POS 32
#define HOSTNAME_MSG_POS 40
/** A message to be exchanged with the master server.
*/
typedef struct
{
long id; ///< Unused?
long type; ///< Type of message.
long length; ///< Length of the message.
char buffer[PACKET_SIZE]; ///< Actual contents of the message.
} msg_t;
SOCKET ConnectSocket(char* IPAddress);
#endif