Just a second...

The Diffusion WhoIs service

The Diffusion™ WhoIs service runs as a background task in the Diffusion server. It looks up client details and caches them in case the same client reconnects later.

The behavior of the WhoIs service is configured in etc/Server.xml. This allows the following to be specified:

Table 1. WhoIs service
The WhoIs provider This specifies a class to use for WhoIs lookups. A default WhoIs provider is provided with Diffusion.
Number of threads The number of background threads that processes WhoIs resolver requests. More threads will improve the WhoIs performance. Setting this to 0 disables WhoIs.
WhoIs Host/Port These details provide the location of an internet based WhoIs lookup server that adheres to the RFC3912 WhoIs protocol. This is used by the default WhoIs provider. This defaults to using the RIPE database.
Cache details

Specifying the maximum size of the cache of details and how long cache entries are retained before being deleted.

If you envisage large numbers of different clients connecting over time, it is important to consider the automatic cache tidying options on the service.

The WhoIs service can be disabled both by setting the number of threads to zero and removing the whois configuration element.

WhoIs providers

The Diffusion WhoIs provider is a class which implements the WhoIsProvider interface of the WhoIs API. This is used by the WhoIs service to lookup WhoIs details for connected clients.

Default provider

A default WhoIsProvider (WhoIsDefaultProvider) is provided with Diffusion.

A connection is made to the WhoIs server specified in etc/Server.xml and returned details are parsed and used to update the supplied details. Child details objects are added for any separate WhoIs records found and the type of such objects is the key of the first WhoIs record entry (for example, person). Where duplicate field names occur then all but the first are suffixed by "_n", where n is a number distinguishing the entries.

The netname entry is used as the resolved name if present.

Custom provider

If the behavior of the issued default WhoIs provider is not exactly what is required then users can write their own WhoIs provider which must implement the WhoIsProvider interface. The name of the user-written class can be specified in etc/Server.xml and must be deployed on the Diffusion server's classpath.