Negotiation with the Information Server
When Relay Server (sl_relay) is started with -is option, the Relay Server connects to the Information Server (sl_info) by TCP in the middle of login processing to Second Life. Later, negotiation with the Control Process of the Information Server (sl_info) is done, a connection password and port numbers necessary for communication are exchanged.
Moreover, (sl_relay) collects information on the avatar while processing the login. This information is then transmitted via the Relay Process to the Information Gathering Server.
Data transfer to the Information Gathering Server
In sl_relay, information obtained by each Relay Process (of Relay Server) on the SIM and the avatar is sent once to the Relay Controller.
The Relay Controller transmits data to the Relay Process (of Information Server) to the Information Gathering Server.
Information Tendering Server
The current version (v1.5.1) of sl_relay only uses the White List retrieval function of sl_info.
Filtering by White List
When the -wf option is specified, operation of sl_relay becomes a limited by the White List. When -wf is specified, -is is automatically specified.
When in white list mode an incoming connection packet for a new SIM server causes the UDP Relay Process to check, through the Relay Controller to sl_info, whether the SIM is recorded on the White List. If it is on the white list then a new UDP Relay Process is started for the new SIM.
If it isn't recorded on the White List, or it is unknown (there is no data on the SIM in the data base), the incoming connection packet is deleted.
In the current version (1.5.1), only the UDP Relay Process does this, the HTTPS Relay Process doesn't.
When the UDP Relay Process deletes the incoming connection packet, the Viewer and SIM see this as a packet loss. Therefore the SIM server repeats transmission of this packet again.
Because repeat enquiry for these packets to be sent again by sl_info is inefficient, the Relay Controller maintains the result of the previous inquiry.
Things to note when a WEB Proxy is used
For the White List filtering function of sl_info, the White List can contain the Viewer machine IP address and the user (avatar).
However when the Viewer is set to use a WEB proxy (Refer to the WEB Proxy function) the IP address seen by sl_relay is changed. Thus the Information Tendering Server cannot accurately determine if a particular machine is on the White List when a WEB Proxy is used.
To avoid this the UDP Relay Process notifies the Information Tendering Server that the Viewer IP address has changed. When the Information Tendering Server receives this notification it uses the new information for the White List.
Because of the complexity involved here it is probably best to avoid using machine IP addresses on the white list when the Viewer uses a WEB Proxy.