Changes since milestone-0-1: * Merge SSL socket code in with the normal socket calls. flood will now determine (based on the protocol scheme) whether it should use SSL or not. [Justin Erenkrantz] * Add ability to retrieve some data from the response and place it in state variables (max of 10). These "state" variables live for the life of the profile (i.e. all elements in the urllist). They may be referred in any template via $[0-9]. Add ability to store the entire response (only active if a response template is present). [Justin Erenkrantz] * Added a new report type called "relative_timers". Each of our 4 main timers is printed just as with the "easy" reporting scheme, only they only show elapsed time since the beginning of the request/response test cycle. [Aaron Bannert] * Added another timer (begin) that happens immediately before the connect() is made (or would be made). This is necessary if we want to calculate the elapsed time for the rest of our timers. [Aaron Bannert] * Add better resolution timers (connect, write, read, close). [Justin Erenkrantz] * A farmer may now be run for an arbitrary amount of time (specified in seconds) rather than a specific number of requests. [Justin Erenkrantz] * The seed used for the global pseudo-random number generator can now be set with the n tag. [Aaron Bannert] * Added random pre and post delay. You can also specify a precision amount. This means that the actual delay will be: actual_delay + (precision * e) (where e is a number between -1 and 1). This can be accomplished in the tag, like so: http://example.com/ http://example.com/ Both types of delays can be used together, and they are all optional. [Aaron Bannert] * Add pseudo-random data to a POST payload via the $$ character in the new payloadtemplate parameter for a URL. [Justin Erenkrantz] * Add group shortcuts when defining a profile. The following syntaxes are now valid: easy,simple generic,ssl,keepalive round_robin These tags will now setup the functions for this "group." You do not need to know the function names anymore (although the old syntax is still valid). [Justin Erenkrantz] * Profile events are now split into logical "groups". A "group" is a bunch of functions that all need to be overriden together to add some new functionality. This logical grouping may become enforced in code at some later time (it will make it easier for users to build configurations). Currently the groupings we have are: profile events, socket events, reporting events, and verification events. [Aaron Bannert] * Added delay support for urllist. A urllist entry can now be given a delay (in seconds) that happens each time that URL is used in a request. [Justin Erenkrantz] * Changed "simple" and "easy" reporting systems to both print out the URL for each request. [Aaron Bannert] * Now using strncasecmp() instead of strncmp() to compare XML identifiers. [Aaron Bannert] * There is now limited support for Cookies in a Round Robin profile. [Justin Erenkrantz] * A Farm can consist of multiple Farmers now, instead of being restricted to a single Farmer named "Joe". (This is only correct if you have thread support on your system.) [Aaron Bannert] * Limited support for Farms has been implemented. There can be one Farm named "Bingo". [Aaron Bannert]