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: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
No edit summary  | 
				No edit summary  | 
				||
| Line 38: | Line 38: | ||
  `user_tokenip` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '',    |   `user_tokenip` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '',    | ||
*Next, a number of tables must be added to the PHPBB3 database to accommodate player tracking  These tables can be found here:  http://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/db/support/database_structure.sql?revision=20248&content-type=text/plain.  | *Next, a number of tables must be added to the PHPBB3 database to accommodate player tracking  These tables can be found here:  http://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/db/support/database_structure.sql?revision=20248&content-type=text/plain.  | ||
*Edit the config file -publiclist option for the [[BZFS]] server to include a link to '''bzfls.php'''.  For Example:  | *Edit the [[BZFS]] config file '''-publiclist''' option for the [[BZFS]] server to include a link to '''bzfls.php'''.  See the [[Sample conf]] for more info.  For Example:  | ||
  -publiclist <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki>  |   -publiclist <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki>  | ||
*Edit the '''config.cfg''' file on the BZFlag game client   | *Edit the [[BZFS]] config file and create the text files necessary to use the '''-userdb''' and '''-groupdb''' options.  See the [[Sample conf]] for more info:  | ||
 #userdb stores user to group mappings.  | |||
 -userdb /path/to/users.txt  | |||
 #groupdb stores group to permission mappings.  | |||
 -groupdb /path/to/groups.txt  | |||
*Edit the '''config.cfg''' file on the BZFlag game client(s) to include the Private [[List Server]] address or edit the command line that starts the BZFlag game client(s):  | |||
  set list <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki>  |   set list <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki>  | ||
or for the command line:  | or for the command line:  | ||
  C:\BZFlag\bzflag.exe -list <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki> -configdir c:\bzflag\config\  |   C:\BZFlag\bzflag.exe -list <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki> -configdir c:\bzflag\config\  | ||
*  | |||
*Have one or more test users register   | =Testing=  | ||
*Visit the development interface for your private bzfls.php in a web browser.  For Example:  | |||
*Restart your the [[BZFS]] server.  | |||
*Have one or more test users register with the PHPBB3 board you created.  | |||
*Visit the development interface for your private '''bzfls.php''' in a web browser.  For Example:  | |||
  <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki>  |   <nowiki>http://10.14.101.15/phpbb/bzfls.php</nowiki>  | ||
*Compare data obtained by visiting the official List Server development interface found here:  | *Compare data from your private [[List Server]] with that obtained by visiting the official [[List Server]] development interface found here:  | ||
  http://stats.bzflag.org/bzfls.php  |   http://stats.bzflag.org/bzfls.php  | ||
*Attempt to authenticate with the private [[List Server]] by entering:  | *Attempt to authenticate with the private [[List Server]] by entering:  | ||
  action:GETTOKEN - get a player token  |   action: GETTOKEN - get a player token  | ||
  callsign: PHPBB3   |   callsign: username (PHPBB3)  | ||
  password: PHPBB3   |   password: password (PHPBB3)  | ||
*Successful GETTOKEN with the private [[List Server]] should display something like:  | |||
 TOKEN: 0123456789  | |||
*Once you have a token, enter into the CHECKTOKENS box something like the following:  | |||
 USER=0123456789  | |||
and get back:  | |||
 MSG: checktoken callsign=USER, ip=, token=0123456789  group=Group0 group=Group1  | |||
 TOKGOOD: USER  | |||
 BZID: 12345 USER  | |||
*Attempt to see if your server is listed with the private [[List Server]] by selecting:  | *Attempt to see if your server is listed with the private [[List Server]] by selecting:  | ||
  LIST - list servers  |   LIST - list servers  | ||
Revision as of 05:13, 2 November 2010
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 ,
- Next, a number of tables must be added to the PHPBB3 database to accommodate player tracking These tables can be found here: http://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/db/support/database_structure.sql?revision=20248&content-type=text/plain.
 - Edit the BZFS config file -publiclist option for the BZFS server to include a link to bzfls.php. See the Sample conf for more info. For Example:
 
-publiclist http://10.14.101.15/phpbb/bzfls.php
- Edit the BZFS config file and create the text files necessary to use the -userdb and -groupdb options. See the Sample conf for more info:
 
#userdb stores user to group mappings. -userdb /path/to/users.txt #groupdb stores group to permission mappings. -groupdb /path/to/groups.txt
- Edit the config.cfg file on the BZFlag game client(s) to include the Private List Server address or edit the command line that starts the BZFlag game client(s):
 
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\
Testing
- Restart your the BZFS server.
 - Have one or more test users register with the PHPBB3 board you created.
 - 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 from your private List Server with that 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: username (PHPBB3) password: password (PHPBB3)
- Successful GETTOKEN with the private List Server should display something like:
 
TOKEN: 0123456789
- Once you have a token, enter into the CHECKTOKENS box something like the following:
 
USER=0123456789
and get back:
MSG: checktoken callsign=USER, ip=, token=0123456789 group=Group0 group=Group1 TOKGOOD: USER BZID: 12345 USER
- 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.