On Tue, Jun 24, 2003 at 01:44:42PM +0200, E. Hietbrink wrote:
> Is the bind() call really necessary? What if the server simply sends
> the raw announcement PDU. Does the metaserver run a check on sender
> address with the DNS-lookup-result of the reported serveraddress? That
> would still make it `failsafe'.

The bind() call was added to support multiple IPs on a single Netrek 
server, and it wasn't in the code I wrote originally.  The metaserver
notes the IP address that the packet came from (in your case, the NAT
external interface IP) and the name that is in the host name field
(which comes from your server's .metaservers file).

The relevant code is scan.c uread().

I don't believe the metaserver checks the IP address against the host 
name provided; it uses the IP address to merge further updates from the 
same server.  The host name is what is sent out to a client request, 
either by TCP or UDP.  The IP address is not sent.  This is so that the
server owner has full control over where clients are directed.

The relevant code is disp_udp.c display_udp().

James Cameron    mailto:quozl at us.netrek.org     http://quozl.netrek.org/

vanilla-metaserver mailing list
vanilla-metaserver at lists.real-time.com