[crossfire] new metaserver

Brendan Lally B.T.Lally at warwick.ac.uk
Thu May 26 23:16:32 CDT 2005


since the previous metaserver has shown itself to be unable to deal with an attack, and since having a metaserver is a nice thing, I have over the last few days been writing a distributed HTTP-based replacement. following a design described on IRC by TechII and Tchize (among others).

This system comprises of a series of metaservers and a metametaserver.

The metaservers collect server information, and propagate it to the metametaserver, and the metametaserver collates this and makes it available to all the metaservers.

The metametaserver is /only/ connected to by the metametaservers and can be firewalled off from all but a small number of IP adresses. This will make it hard to attack.

The metaservers are vulnerable, but there are several (at least half a dozen) and can be run on any webserver with php support (or even without, I'll clarify below)

As of now, the web-based scripts operate as they should, and most show-stopper bugs appear to have been found.

Metaservers can exist in two forms, what I call active and passive, active webservers allow the game servers to add themselves, they require php.

passive servers merely mirror the server list and metaserver list, any webserver can support these.

What is left is client and server support, plus maybe a few tweaks to filelocking and bizzare character filtering.

Before I start doing that though, I would like to be able to freeze the server entry format. currently an entry looks like:

cat2.dynu.ca 13327 1117165607 version 1023 1027 Crossfire Server
 cat2 1.7.0CVS no description

with two lines, the top line being the port, ip or hostname of the server, (unix) time of the server entry and the protocol header.

the second line contains information shown to the player, server name, server version, and comment.

The question is, are other fields needed, and if so what? (player maybe could be one).

the tracker item 
     
     http://sourceforge.net/tracker/index.php?func=detail&aid=1208250&group_id=13833&atid=313833
     
     
contains various files related to this.

    
    


More information about the crossfire mailing list