Gatekeeper Server Plugin README

The Gatekeeper Server Plugin allows a server operator to limit the
clients which can use god and wizard passwords to those running
with approved registration codes.  It also provides commands for
maintaining the list of approved registration codes.


Distribution Components

   This README
   gateKeeper.so - The server plugin


Server Setup
--------------

Assuming the directory the standard server is installed in a directory
called "server", perform the following steps:

1. If necessary, create a "plugins" directory in server/bin directory.

2. Put the gateKeeper.so file in the server/bin/plugins directory.

3. Create or modify the server/palace/psdata/plugin.conf file which describes
the active server plugins.  Include a line for the Gatekeeper Server
Plugin:

   ../bin/plugins/gateKeeper.so

4. Edit server/bin/start-palace

replace:
$root/bin/pserver -f $root/$instance/psdata/pserver.conf &


with:
$root/bin/pserver -f $root/$instance/psdata/pserver.conf -s $root/$instance/psdata/plugin.conf &

NOTE:  Make sure that is a single line in the file




god Commands
--------------

The Gatekeeper Server Plugin adds the following god level commands to the
server:

   'gatekeeper bless [screenName]
   'gatekeeper unbless regCodeHash
   'gatekeeper list

"'gatekeeper bless" while whispering, adds the registration code of the
whisper target to the approved list.

"'gatekeeper bless screenName" adds the registration code of the user using
screenName to the approved list.  This form allows a god to add her own
code to the list.

"'gatekeeper unbless regCodeHash" removes regCodeHash from the approved
list.  The regCodeHash may be copied from the output of 'gatekeeper list,
or from a server log entry.

"'gatekeeper list" returns a list of the approved regcodes and the screen
name they were using when they were blessed in the client log of the god
issuing the command.




Gatekeeper files
------------------

The Gatekeeper Server Plugin maintains the list of approved
regCodeHashes and screen names in a file named gateKeeper.dat which is
stored in the psdata subdirectory of the server's working directory
(default server/palace/psdata/gateKeeper.dat).  Each line in this file
has the regCodeHash in braces and the screen name in double quotes
(with standard backslash escapes for backslash and double-quote).
This file is written whenever a 'gatekeeper bless or 'gatekeeper
unbless command is successfully processed.

If this file does not contain any valid entries, then the Gatekeeper will
accept god and wizard passwords from any member client.
