Version 1.6 beta3

** The docs have not yet been updated.  This is all you get for now. **

** UPDATED for 1.6 beta3 **
April 3, 1997

D'oh!  Should never do releases just after midnight.  Beta2 had an
old win32 executable.  Also forgot to check for NULL map name in
the -raw display code.  Sorry!


** UPDATED for 1.6 beta2 **
April 2, 1997

Features in 1.6 beta2 beyond beta1
Fix crash on negative player colors
New option -qw1.5
	Use the QuakeWorld 1.5 protocol.  Affects the interaction
	with a QW master (-qw).  Fortunately, the rest of the protocol
	hasn't changed.  I imagine the user and seen info won't be
	available from a QW 1.5 master.  The user and seen flags will
	remain until I have a better understanding of where QW is going.

Had to fix a bunch of crashes related to QW 1.5 servers.  Some of them
don't have common keys like "map".


** UPDATED for 1.6 beta1 **
Feb 7, 1997

Features in 1.6 beta1 over the 1.6 alpha releases:
Changes to -qw option
	Support for user names and user ids
	Defaults values ("qstat") for user id and password.  Most of
	the QW masters have a qstat user with "qstat" as the password.
New option -qws
	Fetch and display stats for a single QW server.
New option -qwuserinfo
	Fetch and display user information from a QW master.
New option -qwseeninfo
	Fetch and display user information from a QW master.
bug fix
	Better handling of error packets from QW servers and masters.
	No more "huh?"

Thanks to Kris Nosack (kn@byu.edu) for comments and bug reports.

** The following has been updated to reflect the changes and
** additions in 1.6 beta1.


The main feature of this release is support for QuakeWorld.  A couple
minor bug fixes have also been made.

QuakeWorld support has been integrated into qstat.  You can query
normal Quake servers and QuakeWorld servers at the same time.  A new
prefix is used to distinguish between the different server types.


New options
-----------

All of these options can be used together in a single run of qstat.

To query QuakeWorld servers, use the -qw or -qws options.  The first
will get the list of QW servers from a QW master and query all of
them for status information.  The latter, -qws, will just query the
given QW server for status information.  These options are the only
way to get QuakeWorld server stats.
Hosts added with -f or on the command-line are treated like normal
Quake servers.

-qw host:port:uid:password

host		host name or IP address of QW Master Server
port		port number (defaults to 27000 if blank)
uid		valid QW user id or name on host
password	password for user

To get the server list from a master server, qstat needs a valid login
on the master.  A default login and password can be used if the uid and
password are not given.  The default is "qstat" for both values.  All
the known masters should have a "qstat" user with the same password.

-qws host:port

host		host name or IP address of QW server
port		post number (defaults to 27500 if blank)

If you don't use -qw or -qws, qstat will behave identically to qstat 1.5.

I use the following command to query QW servers:

	qstat -qw 204.50.178.66


To get QuakeWorld user information, use the -qwuserinfo and -qwseeninfo
options.  A QW login is not required to get user information.

-qwuserinfo host:port user-list

host            host name or IP address of QW Master Server
port            port number (defaults to 27000 if blank)
user-list	list of QW users (ids or names)

The display for a user will include everything in their record.  The
color name option (-ncn) is applied to 'topcolor' and 'bottomcolor'.
The user-list must be _one_ command line argument; use double-quotes
to enclose multiple users if they're separated with spaces.  You can
also use back-slashes to separate users.

-qwseeninfo host:port user-list

host            host name or IP address of QW Master Server
port            port number (defaults to 27000 if blank)
user-list	list of QW users (ids or names)

The last seen information comes directly from the master, qstat does
not perform any additional formatting.  The user-list should be _one_
command line argument; use double-quotes to enclose multiple users if
they're separated with spaces.  You can also use back-slashes to
separate users.

To get user information for me and qstat and find out who was last
slagging me:

	qstat -qwuserinfo 204.50.178.66 "Act-Steve qstat" -qwseeninfo 204.50.178.66 Act-Steve


Display format
--------------

The QW servers return different information than the normal servers,
so I had to extend the output style.  The first field of a server
status line is the server type:

QS	normal Quake server
QW	QW server
QWM	QW master server
QWU	QW user information
QWE	QW last seen information

The for-human-comsumption output is pretty self-evident, but the raw
output needs some explanation.  The output for normal Quake servers
has not changed.

QWM server status fields
	server address, number of QW servers
	[the uid and password are removed before display, no rules or
	 player info is output]

QW server status
	server address, server name, map name, max players,
	current players, avg response time, number of retries
	[If -R is specified, a line of server rules is output.  The
	 format is the same as for normal servers: key1=value1,key2=value2]
	[If -P is specified, one line is output for each player.]
	player uid, player name, frags, connect time, shirt color,
	pants color, ping, skin

QWU
	key1, value1, key2, value2, ...
	[The first seven keys will always be the same; name, userid,
	 skill, efficiency, rank, frags, deaths.  But I would not count
	 on that as I'm a fickle programmer and may change my mind.]

QWE
	seen-info
	[qstat just displays the string returned by the master.  The
	 user name is embedded in there, but you'll have to parse it
	 out.]

All the existing display options apply to QW servers.

Run qstat by hand to better understand the new output before trying to
incorporate it into your web page.


Errors
------

QStat has a variety of ways of reporting errors such as time outs
and server errors.  If you see something between angle brackets,
<like this>, that's an error message directly from a server or
master.

Some day I'll document how errors are displayed in the raw format.
But for now I trust you web masters can figure it out


Final words
-----------

This version is very beta.  If you would like qstat to work differently
let me know.  And of course, if you have problems or questions, please
let me know.

Known bugs
----------

qstat often fails to get all the QW server lists if multiple QW masters
are specified.  You'll see a TIMEOUT or "no response" from the QWM when
this happens.  I have a fix in mind, but I'm tired and there's beer
waiting for me at home.

An error is not displayed if qstat times out getting user or last seen
information.


Steve Jankowski
steve@activesw.com


---

Version 1.5 adds player info, server rules, response times, and
performance improvements.  A large number of flags were added to support
different output formatting options.  Web masters should check out
the -raw option which displays all server info with your choice
of delimiter.  Updated copywrite to be more specific about allowable
use.  Updated the web page with links to Quake protocol pages.

Version 1.4 includes a number of new features and bug fixes.  There is
now support for Linux, flags to set retry timeout and interval, flags
to limit output to running or not full servers.  A bug was fixed which
caused qstat to have a long delay the first time it was run on Windows
95/NT.

Version 1.3 fixes a bug introduced in 1.2 and adds a Windows 95/NT
executable.  The bug caused DOWN servers to be reported multiple
times.

Version 1.2 fixes the bug with running out of file descriptors.
