Banning players

There are two methods implemented which can hinder players from
connecting.  They use IP address, host name, or username.  They cannot
prevent players from connecting who know how to use a tunnel to change
their IP address and host name.

Note: this document duplicates the functionality of the source, and
may lag behind development.  References are included.

1.  etc/banned

Created empty at installation time.
[docs/Makefile.in target install]

Uses wildcard matches for both login and host name.
[ntserv/bans.c function bans_check_permanent]

When a player is affected by this, they will see the message of the
day, be able to choose a team, but when they enter the game their ship
will explode, and be forced to quit.  If etc/bypass has an entry for
the host, this check of etc/banned is skipped.
[ntserv/main.c function main]

If BAN_NOCONNECT is set, they will not enter the game, and their
client will be given the "You cannot play now" SP_BADVERSION packet.
The etc/bypass file is not checked in this case.
[ntserv/main.c function main]

Changes to the file are effective on the next client connection or
ship entry from the message of the day or team selection window.

To ban everyone, add a line:
*@*

To ban a subdomain, add a line:
*@usc.edu

To ban a specific username at a domain, add a line:
Bozo@troublemaker.net

The in-game admin command "ban" adds to this file.
[ntserv/ntscmds.c function do_admin]

The in-game ban vote does NOT add to the file.  Instead it maintains a
list in memory.  The list is lost when the daemon exits.
[ntserv/bans.c function bans_add_temporary_by_player]


2.  etc/ip/deny/

Directory created empty at installation time.

When a client connects, the IP address is checked for as a file in the
etc/ip/deny directory.

If such a file exists they are not placed on queue, they do not see
the message of the day, they will not appear on the player list,
instead their client will be given the "You cannot play now"
SP_BADVERSION packet.  The etc/bypass file is ignored.
[newstartd/newstartd.c function deny]

Creation of a file takes effect on the next client connection.
There is no need to restart newstartd.
[newstartd/ip_deny() function call]

The in-game admin command "ban" creates a file in this directory using
the players IP address.
[ntserv/ntscmds.c function do_admin]