Server Configuration

Server Properties

* By default, the Server reads its properties from a file called properties.txt in the directory where the Server is started. ! When changes are made to any of the server properties, you must restart the VolanoChat server for the changes to take effect.

The Server properties are defined below, showing the default value for each property. For file path names, you must specify the path in Unix notation (using "/" instead of "\"). A relative path (one not beginning with "/") is assumed to be relative to the current working directory where the VolanoChat Server is started. There can be no spaces on either side of the equal sign.

Port Number

server.port=8000

This property is the port number at which the VolanoChat Server accepts connections from VolanoChat Client applets. This number must be the same as the VolanoChat Client server.port property value. The default is port 8000.

Backlog

server.backlog=10

This property specifies the number of incoming connections that can be queued up while waiting for the VolanoChat Server to accept them. If a connection request arrives when the queue is full, the connection is refused. The default value if this property is omitted is the default for the Java Virtual Machine (50 for Sun's Java Version 1.0.2).

Password

server.password=

This is the password required to monitor chat rooms when using the monitoring version of the VolanoChat Client applet. Monitoring capabilities are activated in the VolanoChat Client applet by setting the applet monitor parameter to true, although the password is required in order to use any of those capabilities. The default is no password, allowing no monitoring of chat rooms.

Status Port Number

status.port=8001

This property is the port number at which the VolanoChat Server accepts status reporting connections. The default is port 8001. See the section on Performance Monitoring for information on how to obtain status reports from your VolanoChat Server.

Status Password

status.password=

This is the password required to obtain status reports from your VolanoChat Server. The default is no password, which allows no status reports from the Server.

Connection Limit

server.limit=100

This is the doorman to your VolanoChat Server, limiting the total number of simultaneous connections accepted by the Server. You can use this value to control the total number of people using your VolanoChat Server, ensuring good performance for those who are already connected and chatting. The default is 100 connections.

Room Limit

room.limit=25

This property allows you to limit the number of people per room. Since every chat message must be sent to everyone else in the room, this number determines the maximum number of messages sent for every message received. You can use this number to control the amount of work your computer must do for each chat message it receives. The default is a maximum of 25 people per room. A good room size is 20 to 30, since any higher and it gets hard to read that fast.

Access Control File

server.access=access.txt

This property gives the location of the access control file which controls user and Web page access to your VolanoChat Server. The syntax of the access control file is documented in Access Control. The default is the file access.txt in the directory where the VolanoChat Server is started.

Permanent Room List

server.rooms=rooms.txt

This property gives the location of the file which contains a list of rooms to be permanently available in the VolanoChat Server, with one room name per line. The syntax of the room list file is documented in the Creating Chat Rooms section. The default is the file rooms.txt in the directory where the VolanoChat Server is started.

Character String Limits

length.roomname=100
length.username=50
length.profile=200
length.chattext=600

These properties specify the maximum length of character strings from the user, specified as the maximum number of characters. Their default values are shown above. ! These values should be equal to or greater than the properties of the same name for the VolanoChat Client, since any Client sending more characters will be immediately disconnected (and assumed not to be a VolanoChat Client).

Log Files

log.access=logs/access
log.chat=logs/chat

These properties give the location and prefix of the logs files to be used by the Server. The date and time will be appended to each log file name when it is created, using the suffix .YYMMDD.HHMMSS for each of the files. The format of each log file is documented in the Server Logs section.


Access Control

The VolanoChat Server uses the same access control directives used by popular Web servers such as the NCSA HTTPd Web Server and the Apache HTTP Web Server. There are three types of directives in the access control file:

Order Directives

An order directive is one of the following:

order effect
deny,allow The deny directives are evaluated before the allow directives. A host or URL that does not match either list is given access. This order makes the deny directives the default, and the allow directives the exceptions. See the examples.
allow,deny The allow directives are evaluated before the deny directives. A host or URL that does not match either list is given access. This makes the allow directives the default, and the deny directives the exceptions.
mutual-failure You specify precisely which hosts or URLs are allowed or denied. A host or URL which does not match either list is denied access. A host or URL matching both lists is denied access.

Host Access Directives

A host access directive is one of the following (! unlike on this web page, directives must consist of one, unbroken line):

directive effect
deny from all Denies all hosts.
deny from host1 host2 ... hostn Denies access from the specified host, where the host is a partial domain name, a full host name, a partial IP address, or a full IP address.
allow from all Allows access from all hosts.
allow from host1 host2 ... hostn Allows access from the specified host, where the host is a partial domain name, a full host name, a partial IP address, or a full IP address.

Host names and domain names are compared from right to left, so that ".volano.com" would match all hosts in the volano.com domain, such as "ferrara.volano.com".

Begin partial domain names with a dot (".") so that comparisons will be made against complete components in the name.

Full and partial IP addresses are compared from left to right, so that "192.168." would match any IP address beginning with those two numbers, such as 192.168.0.5. End partial IP addresses with a dot (".") so that comparisons will be made against complete components in the address.

Referrer Access Directives

A referrer access directive is one of the following (! unlike on this web page, directives must consist of one, unbroken line):

directive effect
referrer deny from all Denies all referrers.
referrer deny from url1 url2 ... url# Denies referrers from a Universal Resource Locator specified in the form of protocol://host/file (with no port number or anchor reference specified).
referrer allow from all Allows all referrers.
referrer allow from url1 url2 ... url# Allows all referrers from a Universal Resource Locator specification in the form of protocol://host/file (with no port number or anchor reference specified).

For URL specifications, the comparison is from left to right, so you must specify full host names or full IP addresses in the URL.

Examples

Here are some sample access control files. The first sample allows users to connect only from computers in the volano.com domain, and would allow those connections only through Web pages on Volano's site at "http://www.volano.com/".

  order deny,allow
  deny from all
  allow from .volano.com
  referrer deny from all
  referrer allow from http://www.volano.com/

For the opposite effect, these directives allow any user except those from volano.com to connect, and allows any referring Web page except those in the user directories at www.volano.com.

  order allow,deny
  allow from all
  deny from .volano.com
  referrer allow from all
  referrer deny from http://www.volano.com/

Of course, you may also deny specific Web pages or users with:

  deny from chat.volano.com
  deny from http://www.volano.com/chat.html