On Sat, Jun 13, 2009 at 10:43:45PM -0400, Zachary Uram wrote:
> I'm struggling to see why the CLIENT command was changed and why
> giving *less* info is somehow more useful?

It was not intended to be more useful, it was intended to be less
useful.

The CLIENT command is implemented in the server.  That's the first thing
to consider.  See ntserv/ntscmds.c, do_client_query().

The CLIENT command would have been removed along with the removal of
RSA, but you may recall that we wanted some way to identify clients
after RSA was removed, so work was done to add identification.

The identification is provided by the client to the server during
startup, as a network packet containing a CP_MESSAGE with bits
MINDIV and MCONFIG set.

> Before it would give client name and version (and also sometimes OS or
> architecture type) such as:
> 
> BRMH 2.5.--- Mac OS X (x86/PPC Universal).

These did not originate inside the client, rather they were supplied by
the RSA key.  With the removal of the RSA key from the situation, all
that remains is what the client provides.

> Now it just returns the info "2.5.0.0"

I did not re-issue the patch after changes were made to COW and Netrek
XP.

The patch to add this feature to BRMH only provided the version number.
You are free to add more detail if you like, but you'll have to get that
past the BRMH maintainers.  ;-)

As far as COW is concerned, I'm only releasing that for Linux, and I
choose not to include the Linux distribution, kernel version, or CPU
architecture, since they should be irrelevant, and revealing them is
certainly a security risk to the player.

COW, Netrek XP and netrek-client-pygame also add their client name.  You
might want to review how these clients do this to determine how to add
the feature to other clients.

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