Atrinik Client 2.5
Defines | Functions | Variables
client/metaserver.c File Reference
#include <global.h>

Go to the source code of this file.

Defines

#define NUM_METASERVERS   (sizeof(metaservers) / sizeof(metaservers[0]))

Functions

void metaserver_init ()
void metaserver_disable ()
static void parse_metaserver_data (char *info)
server_structserver_get_id (size_t num)
size_t server_get_count ()
int ms_connecting (int val)
void metaserver_clear_data ()
void metaserver_add (const char *ip, int port, const char *name, int player, const char *version, const char *desc)
int metaserver_thread (void *dummy)
void metaserver_get_servers ()

Variables

static const char *const metaservers [] = {"http://meta.atrinik.org/", "http://atokar.is-a-geek.net/", "http://www.wordowl.com/misc/atrinik/"}
static int metaserver_connecting
static SDL_mutex * metaserver_connecting_mutex
static server_structstart_server
static size_t server_count
static SDL_mutex * start_server_mutex
static uint8 enabled

Detailed Description

Handles connection to the metaserver and receiving data from it.

Definition in file metaserver.c.


Define Documentation

#define NUM_METASERVERS   (sizeof(metaservers) / sizeof(metaservers[0]))

The number of metaservers.

Definition at line 35 of file metaserver.c.


Function Documentation

void metaserver_add ( const char *  ip,
int  port,
const char *  name,
int  player,
const char *  version,
const char *  desc 
)

Add a server entry to the linked list of available servers reported by metaserver.

Parameters:
ipThe server IP.
portServer port.
nameServer's name.
playerNumber of players.
versionServer version.
descDescription of the server.

Definition at line 182 of file metaserver.c.

void metaserver_clear_data ( )

Clear all data in the linked list of servers reported by metaserver.

Definition at line 148 of file metaserver.c.

void metaserver_disable ( )

Disable the metaserver.

Definition at line 67 of file metaserver.c.

void metaserver_get_servers ( )

Connect to metaserver and get the available servers.

Works in a thread using SDL_CreateThread().

Definition at line 254 of file metaserver.c.

void metaserver_init ( )

Initialize the metaserver data.

Definition at line 52 of file metaserver.c.

int metaserver_thread ( void *  dummy)

Threaded function to connect to metaserver.

Goes through the list of metaservers and calls metaserver_connect() until it gets a return value of 1. If if goes through all the metaservers and still fails, show an info to the user.

Parameters:
dummyUnused.
Returns:
Always returns 0.

Definition at line 209 of file metaserver.c.

int ms_connecting ( int  val)

Check if we're connecting to the metaserver.

Parameters:
valIf not -1, set the metaserver connecting value to this.
Returns:
1 if we're connecting to the metaserver, 0 otherwise.

Definition at line 129 of file metaserver.c.

static void parse_metaserver_data ( char *  info) [static]

Parse data returned from HTTP metaserver and add it to the list of servers.

Parameters:
infoThe data to parse.

Definition at line 76 of file metaserver.c.

size_t server_get_count ( )

Get number of the servers in the list.

Returns:
The number.

Definition at line 115 of file metaserver.c.

server_struct* server_get_id ( size_t  num)

Get server from the servers list by its ID.

Parameters:
numID of the server to find.
Returns:
The server if found, NULL otherwise.

Definition at line 92 of file metaserver.c.


Variable Documentation

uint8 enabled [static]

Is metaserver enabled?

Definition at line 48 of file metaserver.c.

int metaserver_connecting [static]

Are we connecting to the metaserver?

Definition at line 38 of file metaserver.c.

SDL_mutex* metaserver_connecting_mutex [static]

Mutex to protect metaserver_connecting.

Definition at line 40 of file metaserver.c.

const char* const metaservers[] = {"http://meta.atrinik.org/", "http://atokar.is-a-geek.net/", "http://www.wordowl.com/misc/atrinik/"} [static]

List of metaservers. Will loop these until we successfully connect to one.

Definition at line 33 of file metaserver.c.

size_t server_count [static]

Number of the servers.

Definition at line 44 of file metaserver.c.

The list of the servers.

Definition at line 42 of file metaserver.c.

SDL_mutex* start_server_mutex [static]

Mutex to protect start_server and server_count.

Definition at line 46 of file metaserver.c.