This wiki was in read-only mode for many years, but can now be edited again. A lot of information will need to be updated.

Private List Server

From BZFlagWiki
Revision as of 04:56, 2 November 2010 by Deliot (talk | contribs)
Jump to navigation Jump to search

Overview

This article discusses how to create a PRIVATE List Server and have players authenticate via this server. This is generally not necessary, since BZFlag clients perform Global Registration via the official bzflag.org List Server. However, if a BZFS server is created within a private LAN network, it may be desirable/necessary to authenticate players locally.

Assumptions

  • This article assumes that a working BZFS server is already in place and has been tested.
  • This article assumes that the server administrator has access to web hosting with MySQL and PHP.
  • This article assumes that the server administrator understand how to download and install PHPBB3.
  • This article assumes that the private list server will use the same database as PHPBB3.
  • This article assumes that the server administrator understands how to perform basic editing of PHP code.
  • This article was written using Linux for the BZFS server.
  • This article was written using Windows clients to access both the game server and the private list server.

Directions

  • Install and test your BZFS server. Make sure clients can connect and play the game.
  • Install PHPBB3 on a web server, configure settings, test that users can REGISTER to the PHPBB3 board.
  • In the "main" PHPBB3 folder, (ex: /usr/share/phpbb3/www/), place the following THREE files found in the SVN DB Repository (https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/db/):
bzfls.php
serversettings.php.tmpl (rename to serversettings.php)
banfunctions.php
  • Edit serversettings.php such that it can connect to your PHPBB3 MySQL database. Note that this example assumes that the same database is used for MySQL tables used by bzfls.php and by the PHPBB3 installation:
$dbhost  = "localhost";
$dbname  = "phpbb3";
$dbuname = "phpbb3";
$dbpass  = "********";
$bbdbname = 'phpbb3';
  • For ease of setup, bzfls.php was edited to access files from the "main" PHPBB3 folder (ex: /usr/share/phpbb3/www/). The following lines were changed to accomplish this (linux example):
$phpbb_root_path = '/usr/share/phpbb3/www/';
$phpEx = 'php';
include($phpbb_root_path.'includes/functions.'.$phpEx);
include($phpbb_root_path.'includes/utf/utf_tools.'.$phpEx);
include($phpbb_root_path.'includes/utf/utf_normalizer.'.$phpEx);
include($phpbb_root_path.'serversettings.'.$phpEx);
include($phpbb_root_path.'banfunctions.'.$phpEx);
  • The PHPBB3 phpbb_user table must have additional fields added to track the BZFLAG player user_token, user_tokendate, and user_tokenip. This is how the List Server authenticates each player, by sending an up to 10 digit token to the BZFLAG client:
`user_token` int(10) unsigned NOT NULL DEFAULT '0',
`user_tokendate` int(10) unsigned NOT NULL DEFAULT '0',
`user_tokenip` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT , 
-publiclist http://10.14.101.15/phpbb/bzfls.php
  • Edit the config.cfg file on the BZFlag game client computer to include the Private List Server or edit the command line that starts the BZFlag game client:
set list http://10.14.101.15/phpbb/bzfls.php

or for the command line:

C:\BZFlag\bzflag.exe -list http://10.14.101.15/phpbb/bzfls.php -configdir c:\bzflag\config\
  • At this point, testing should begin. Restart your Apache server, restart your BZFLS server.
  • Have one or more test users register on the PHPBB3.
  • Visit the development interface for your private bzfls.php in a web browser. For Example:
http://10.14.101.15/phpbb/bzfls.php
  • Compare data obtained by visiting the official List Server development interface found here:
http://stats.bzflag.org/bzfls.php
  • Attempt to authenticate with the private List Server by entering:
action:GETTOKEN - get a player token:
callsign: PHPBB3 username
password: PHPBB3 password
  • Attempt to see if your server is listed with the private List Server by selecting:
LIST - list servers




Acknowledgments

This process would not have been successful without the help of Blast/Blast007.