gecko-dev/mstone/src
..
bench.c
bench.h
client.c
errexit.c
http-util.c
http-util.h
http.c
imap4.c
mailclient.dsp
mailclient.mak
main.c
Makefile
parse.c
pish.h
pop3.c
README
smtp.c
sysdep.c
sysdep.h
timefunc.c
wmap.c

To build on a new OS, simply edit the Makefile to reflect your
compilers and options.

Everything currently builds on Linux-2.1/2.2, Solaris-2.5.1/2.6, HPUX-11
IRIX-6.5, AIX-4.2, OSF1-4.0 and NT-4.  Operating systems without
POSIX threads (or NT threads) will be limited.

NT uses ../autobuild.bat, *.dsw, and *.mak.

Perl is imported from a common build area.

Notes on protocol plug in API:


Fundamental data structures:

event_timer_t
	Holds the critical results information.  This gets added up
over all the block in all the threads periodically during the test.

cmd_stats_t
	This holds all the dynamic information including event timers,
and state for sequencing the command block (like next login).

mail_command_t
	This hold all the read only information about a command block.

thread_context_t
	All the information about each thread.  There is one thread
per server connection.

range_t
	Integer range based on a starting number and a length.  This
can be sequentially or randomly returned.  This needs to be adjusted
for each command thread.

protocol_t
	This defines the callbacks and shared information for each protocol.



Adding a new protocol:
	Create all the handler functions.  Look at smtp.c for an example

	Add the entry to g_protocols in main.c

	Add it to the makefiles


Design issues:
	Timing accuracy

	Scalability (current limit is 26000 clients/machine)

	Extendibility

	Memory use (limits scalability)

	Result data efficiency