| Changes since milestone-03: |
| |
| * Switch to new apr_poll() API. [Justin Erenkrantz] |
| |
| * Stop using the apr_lock.h API and start using apr_thread_mutex.h |
| instead. [Aaron Bannert] |
| |
| * Remove the USE_RW_LOCK_FOR_SSL conditional compiles since we |
| didn't have an autoconf feature test for it nor was it really |
| giving us any benefit. [Aaron Bannert] |
| |
| * Add ability to detect when the server has closed the connection instead |
| of erroring out (think Keep-Alive). [Justin Erenkrantz] |
| |
| * Add chunked support. [Justin Erenkrantz] |
| |
| * Add detection of CAPATH variable for RedHat installs. |
| [Justin Erenkrantz] |
| |
| * Fix return value in parse_xml_url_info. [Justin Erenkrantz] |
| |
| * Fix linking problems due to misordering of libraries on Solaris. |
| [Justin Erenkrantz] |
| |
| * Add config.nice support from apr_common.m4. [Justin Erenkrantz] |
| |
| * Add apr_common.m4 and fix up building/configuration of source |
| apr/apr-util. [Justin Erenkrantz] |
| |
| * Introduce sequence tag to urllist element. This tag has the following |
| form: |
| |
| <urllist> |
| <sequence sequencename="myseq" sequencelist="bob, jane, joe"> |
| <url requesttemplate="http://www.you.com/~${myseq}/" /> |
| <url requesttemplate="http://www.you.com/~${myseq}/index.html" /> |
| </sequence> |
| </urllist> |
| |
| This will hit: |
| http://www.you.com/~bob/ |
| http://www.you.com/~bob/index.html |
| http://www.you.com/~jane/ |
| http://www.you.com/~jane/index.html |
| http://www.you.com/~joe/ |
| http://www.you.com/~joe/index.html |
| |
| This allows certain URL patterns to be simplified. [Justin Erenkrantz] |
| |
| * Remove shadow declaration of stat in flood_round_robin.c. |
| [Justin Erenkrantz] |
| |
| * Factor out handling of URI XML fields. [Justin Erenkrantz] |
| |
| * Properly detect and use APR's libtool. [Justin Erenkrantz] |
| |
| * Reworked build system to ease integration with APR/apr-util. |
| [Justin Erenkrantz] |
| |
| Changes since milestone-02: |
| |
| * Updated apr_lock_create to reflect the API change in APR. |
| [Aaron Bannert] |
| |
| * Fix an unterminated string that would produce garbage cookie strings |
| when processing multiple cookies. [Chris Williams <chriwill@cmguc.com>] |
| |
| * Allow OpenSSL to seed from memory rather than a file if we don't |
| have random support. [Doug MacEachern] |
| |
| * Allow better detection of randfile and capath options when SSL is |
| enabled. [Justin Erenkrantz] |
| |
| * Detect when we have a https URL and don't have SSL support built in. |
| [Justin Erenkrantz] |
| |
| * Fix longstanding bug that was probably leaking massive file descriptors |
| when SSL was being used. [Aaron Bannert] |
| |
| * Always link the runtime library search path into our binary for |
| libararies like APR, APR-UTIL, etc. [Aaron Bannert] |
| |
| * Conditionally compile SSL support (set with the --enable-ssl parameter). |
| We no longer require SSL to build flood. [Aaron Bannert] |
| |
| * SSL is now disabled by default and must be explicitly enabled. |
| This is to comply with certain legal restrictions. [Aaron Bannert] |
| |
| * Require openssl 0.9.6 or greater. (This may be raised to 0.9.6b if |
| rumors of lower versions crashing under load become true.) |
| [Aaron Bannert] |
| |
| * If SSL is enabled we now check that we have the appropriate headers |
| and libraries available. [Aaron Bannert] |
| |
| * Rework of --with-openssl parameter to work with the new --enable-ssl |
| param. There are three ways to use an installed openssl: if it |
| exists in the default places, if you specify CFLAGS/LDFLAGS to |
| the configure script, or if you specify the path prefix to the |
| installation with this new parameter. [Aaron Bannert] |
| |
| * Add new parameter (--enable-ssl). [Aaron Bannert] |
| |
| * Display URL that failed when we get an error. [Justin Erenkrantz] |
| |
| * Add support for platforms that do not have threads (or are unusable by APR). |
| [Justin Erenkrantz] |
| |
| * Sleep for four minutes (typical TIME_WAIT period) when we run out of |
| ports rather than exiting with an error. [Justin Erenkrantz] |
| |
| * Fix regex code to work with Linux as well. [Justin Erenkrantz] |
| |
| * Add ability to have a staggered startup of threads. By specifying |
| startdelay="X" and startcount="Y", flood will start Y threads every |
| X seconds until the count value is reached. [Justin Erenkrantz] |
| |
| * Rewrite the expression/template code to use variable names (backed by a |
| hash table) and allow use of regular expressions for the response |
| template. |
| The new syntax is as follows: |
| ${foo} substitutes foo's value. |
| ${=foo} generates a random number and stores it in foo and substitutes it. |
| ([^>]*) (regex sub-expression) coupled with responsename="foo" allows |
| that subexpression to be stored in foo based on what is in the |
| response from the server. It will only take the first |
| sub-expression in the regex and store it in the value. |
| [Justin Erenkrantz] |
| |
| Changes since milestone-01: |
| |
| * 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 <seed>n</seed> 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 <url> tag, like so: |
| <url predelay="10" predelayprecision="2">http://example.com/</url> |
| <url postdelay="10" postdelayprecision="2">http://example.com/</url> |
| 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: |
| <report>easy</report>,<report>simple</report> |
| <socket>generic</socket>,<socket>ssl</socket>,<socket>keepalive</socket> |
| <profiletype>round_robin</profiletype> |
| 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] |
| |