Bug 4045 - Servers cannot be reliably identified
Status: RESOLVED WONTFIX
Alias: None
Product: ioquake3
Classification: Unclassified
Component: Misc
Version: unspecified
Hardware: Other All
: P3 minor
Assignee: Zachary J. Slater
QA Contact: ioquake3 bugzilla mailing list
URL:
Depends on:
Blocks:
 
Reported: 2009-04-17 12:15 EDT by Ben Millwood
Modified: 2009-05-02 13:00:25 EDT
2 users (show)

See Also:



Description Ben Millwood 2009-04-17 12:15:40 EDT
This has been brought to my attention while I was working on the master code for Tremulous attempting to get compatibility with IPv6: if a server sends heartbeats on both IPv4 and IPv6 addresses, there doesn't seem to be any way of checking that these are in fact both the same server, and hence the client is more or less obliged to list it twice.

An idea I discussed on the IRC channel the other day was the addition of a sv_guid to be sent in infoResponses: if two servers have the same GUID, list them once, perhaps with some indication of the multiple available interfaces. The problem with this becomes more or less immediately obvious when you consider the potential for abuse, where a griefer can take a server's GUID and copy it in their own infoResponses and hence the client is faced with the difficult problem of choosing which to display (or both). There was an idea to hash the GUID with the client or server's IP, but both of these suggestions destroy the original benefit of the commonality across IPv4/IPv6. People have even suggested some kind of asymmetric encryption method, with the drawbacks of requiring the exchange of at least 4 packets of larger-than-usual size, and the difficulty of finding an implementation of the relevant algorithms that doesn't require extra build dependencies or huge source files.
Other ideas are only sending the GUID to the master, which then has some way of deciding which address to send to the client, or some method of indicating that one server has two addresses. This poses a security problem but sounds a reasonable solution so long as it can be done without breaking protocol compatibility. Or a server could put all its addresses into its infoResponse, and they could then be merged only be mutual agreement (which suffers a little from the complexity of resolving grouped servers and the extra response string spam).
Comment 1 Thilo Schulz 2009-04-17 15:48:29 EDT
Yes, this is a known issue. The client displays two separate servers for v4 and v6. In my opinion, this is not bad and does not need fixing. Firstly, this is only an issue during v4/v6 transition and on a related note, in my opinion it is desirable to display both servers as separate entities so players can choose the entry with the smallest ping time.
Comment 2 Ludwig Nussel 2009-05-02 13:00:25 EDT
so wontfix