Log of /httpd/flood/trunk/CHANGES
Parent Directory
|
Revision Log
Revision
699195 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 26 06:53:51 2008 UTC
(15 years, 10 months ago)
by
jerenkrantz
File length: 12359 byte(s)
Diff to
previous 698796
(
colored)
Fix issue with chunked keep-alive responses when the initial chunk content
starts with a NULL byte.
* flood_socket_keepalive.c
(keepalive_read_chunk): Don't inspect resp->chunk with respect to
validity; re-order comparisons to make a bit more sense.
(keepalive_recv_resp): Be sure that chunk_length is always initialized.
Revision
698796 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 25 01:47:23 2008 UTC
(15 years, 10 months ago)
by
jerenkrantz
File length: 12233 byte(s)
Diff to
previous 698391
(
colored)
Fix HTTP keepalives over SSL.
* flood_net_ssl.c
(ssl_check_socket): Implement.
* flood_net_ssl.h
(ssl_check_socket): Declare.
* flood_socket_keepalive.c
(ksock_check_socket, ksock_close_socket): Declare helper macros.
(keepalive_begin_conn): Use helper function to call appropriate checker.
(keepalive_end_conn): Use helper to close socket.
Revision
698391 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 23 23:00:22 2008 UTC
(15 years, 10 months ago)
by
jerenkrantz
File length: 12178 byte(s)
Diff to
previous 697936
(
colored)
Support building against installed Ubuntu APR packages.
* configure.in: Permit usage of installed APR/APR-util if no
--with-apr(-util) arguments specified; override the compiler name
per $apr_config to avoid tag mismatches with APR's bundled GNU
libtool.
* CHANGES: Update.
Revision
697936 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 22 18:34:53 2008 UTC
(15 years, 10 months ago)
by
jerenkrantz
File length: 12097 byte(s)
Diff to
previous 697920
(
colored)
Update relative times report to use appropriate APR format string.
* flood_report_relative_times.c
(relative_times_process_stats): Use %pT extension to emit proper format.
* CHANGES: Update.
Revision
697920 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 22 18:13:46 2008 UTC
(15 years, 10 months ago)
by
jerenkrantz
File length: 12005 byte(s)
Diff to
previous 695998
(
colored)
Protect relative times report output with a mutex to avoid overlap.
* flood_config.h
(config_t): Add thread mutex to config structure.
* flood_farm.c
(run_farm): Create thread mutex when we create farmers structure.
* flood_report_relative_times.c
(relative_report_t): New structure to hold pointer to a config.
(relative_times_report_init): Create report structure and stash config.
(relative_times_process_stats): Use thread mutex to lock printf calls.
* CHANGES: Update.
Revision
695998 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 16 18:28:46 2008 UTC
(15 years, 10 months ago)
by
jerenkrantz
File length: 11912 byte(s)
Diff to
previous 653656
(
colored)
Fix compilation errors with newer gcc versions.
* flood_round_robin.c
(round_robin_profile_init): Give compiler a bigger clue about what to cast.
Submitted by: Ohad Lutzky
Reviewed by: jerenkrantz
Revision
647747 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 14 12:14:03 2008 UTC
(16 years, 4 months ago)
by
wrowe
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 11828 byte(s)
Diff to
previous 394795
(
colored)
Implement a random substitution feature; requires a requesttemplate,
one or more substitution variables of the form ${varname) in the
requesttemplate and a substitution file formatted with one value
per newline delimited line (more than one variable per URL permitted).
The variables and files are referred to as subst variables and subst
files. Each time the URL is sent the subst variable is replaced with
one line randomly selected from the subst file. Any part of the
requesttemplate can be randomly substituted, protocol, host, port, etc.
The algorithm tries to make the creation time of the substitution
independent of the size of the subst file. The randomness of the
selection can be adversely impacted if the sizes of the different
entries in the subst file vary considerably.
Submitted by: Guy Ferraiolo <guyf cnet.com>
Revision
394795 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 17 22:32:59 2006 UTC
(18 years, 3 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 11231 byte(s)
Diff to
previous 394790
(
colored)
Add extraheader, payloadfile attribute to url element; also support custom HTTP
methods.
(This lets flood passably mimic WebDAV requests.)
* flood_round_robin.c
(url_t): Add method_string, extra_headers fields.
(round_robin_create_req): Add short-cut to ->extra_headers field; simplify
request creation based on methods and add in extra headers if present;
(parse_xml_url_info): Set method_string on all variants; support
payloadfile attribute to load the entire payload from a file; include any
extra headers - delimit multiple headers with ; for now.
(round_robin_get_next_url): Fix whitespace.
* flood_profile.h
(method_e): Denote 'other' methods.
* config.h.in
(XML_URLLIST_PAYLOAD_FILE, XML_URLLIST_EXTRA_HEADERS): Define.
Revision
98633 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 12 22:50:59 2003 UTC
(21 years, 6 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 9475 byte(s)
Diff to
previous 98632
(
colored)
Added generic_fullresp_recv_resp() to force full response.
This patch adds a new handler that always retrieves the entire response.
This handler is needed because we currently do not have a way to tell
flood to always retrieve the entire response. We have a "wantresponse"
flag that tells the socket code whether or not to retrieve the entire
response. Handlers such as round_robin_create_req() set this flag based
on varying factors. With the new generic_fullresp_recv_resp() handler,
you can specify it in your <profile> section like this:
<recv_resp>generic_fullresp_recv_resp</recv_resp>
to cause flood to retrieve the entire response.
When used with the handler:
relative_times_process_stats
you can measure the total bytes sent and received with each request
and response.
Submitted by: Phi-Long Tran <ptran@pobox.com>
Reviewed by: Justin Erenkrantz
Revision
98632 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 12 22:44:55 2003 UTC
(21 years, 6 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 9377 byte(s)
Diff to
previous 98529
(
colored)
Fixed compiler warning about signed/unsigned mismatch in generic_recv_resp()
This patch addresses the following compiler warning generated by the
Visual C++ 6 compiler:
flood_socket_generic.c(161) : warning C4018: '>' : signed/unsigned mismatch
We have two local variables declared as integers used in an expression
involving an unsigned type. I changed the variable declarations to
match the unsigned type to address the warning. All three variables
involved deal with memory sizes using apr_size_t, so it's safe to
change the declarations.
Submitted by: Phi-Long Tran <ptran@pobox.com>
Reviewed by: Justin Erenkrantz
Revision
98529 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 29 06:19:20 2003 UTC
(21 years, 6 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 9262 byte(s)
Diff to
previous 98528
(
colored)
(Win32) Fixed link error apr_pstrmemdup in flood_socket_keepalive.c.
This patch addresses a link error. The code invoked apr_pstrmemdup()
in flood_socket_keepalive.c without including the proper declaration.
The compiler generates its own guess, which is incorrect. The code now
includes the file:
apr_strings.h
so that it picks up the proper declaration of apr_pstrmemdup.
Below are examples of the compile-time warning and the
link failures that this patch addresses.
flood_socket_keepalive.c(407) : warning C4013: 'apr_pstrmemdup'
undefined; assuming extern returning int
flood_socket_keepalive.obj : error LNK2001: unresolved external
symbol _apr_pstrmemdup
Submitted by: Phi-Long Tran <ptran@pobox.com>
Reviewed by: Justin Erenkrantz
Revision
98528 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 29 06:16:59 2003 UTC
(21 years, 6 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 9132 byte(s)
Diff to
previous 98527
(
colored)
Fixed PASSTHROUGH collision in flood_round_robin.c.
This patch fixes compile errors in flood_round_robin.c
resulting from the Windows header file wingdi.h. That
header file defines PASSTHROUGH, which is the same
identifier used as an enumerated constant for type
expand_param_e. The enumerated constants now use a
prefix, "EPE_", to help make their names more unique.
Below are the compile errors this patch addresses:
<snip>
Submitted by: Phi-Long Tran <ptran@pobox.com>
Reviewed by: Justin Erenkrantz
Revision
98527 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 29 06:13:27 2003 UTC
(21 years, 6 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 9011 byte(s)
Diff to
previous 98526
(
colored)
Added error handling for failed config-file open.
This patch adds error handling to the code that opens the
configuration file. When you specify an argument to the flood
program, it attempts to open it to read in configuration
information. Previously, there was no error handling, so
the code proceeded to use an invalid file handle when the
file open fails. The code now detects the failure and displays
an error message.
The standard error and output file-opens were moved earlier
in the program in case we need to display error messages
to standard error.
On Windows, using the invalid file handle results in an
access violation. The program now displays a message like
this:
Error opening configuration file: The system cannot find
the file specified. .
Submitted by: Phi-Long Tran <ptran@pobox.com>
Reviewed by: Justin Erenkrantz (minor formatting tweak)
Revision
98526 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 29 06:07:49 2003 UTC
(21 years, 6 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 8922 byte(s)
Diff to
previous 96280
(
colored)
Fixed Win32 crash resulting from strtoll() macro.
This patch addresses a crash caused by the Win32 implementation
of the strtoll() macro in config.h, which is generated from
config.h.in. This patch fixes config.h.in. The change will
affect files using strtoll() on Win32 builds with an "old enough"
Microsoft Visual C/C++ compiler.
The addition operator ("+") has higher precedence than the conditional
operator ("a ? b : c"). The portion of the Win32 implementation of the
strtoll() macro in question is below:
*(e) = (char*)(p) + ((b) == 10) ? strspn((p), "0123456789") : 0
The compiler will evaluate the expression like this:
*(e) = ( (char*)(p) + ((b) == 10) ) ? strspn((p), "0123456789") : 0
The code was meant to evaluate like this:
*(e) = (char*)(p) + ( ((b) == 10) ? strspn((p), "0123456789") : 0 )
The code is effectively pointing "e" to the first nondigit character
starting at where "p" points to. Because of the precendence rules,
the invocation of strtoll() in set_seed() in file flood.c effectively
compiled to this code:
*(e) = strspn((p), "0123456789")
which yields an invalid address.
The above assignment triggers the compiler warning below.
flood.c(105) : warning C4047: '=' : 'char *' differs in levels of
indirection from 'const unsigned int '
The build produces seven occurrences of this warning. After the
code fix, those seven occurrences disappear.
When applying this fix, you should rebuild all files to ensure they
re-evaluate the corrected strtoll() macro from a newly generated
config.h file.
Reviewed by: Will Rowe
Revision
94237 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 27 21:38:03 2002 UTC
(22 years, 4 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 8113 byte(s)
Diff to
previous 94196
(
colored)
Add check_socket call to flood_net.h. This attempts to determine if the
other side has closed on us by doing a poll. From my observations on
Solaris, it seems that when a FIN is received from the other side,
a POLLIN event is generated. Odd. I'd think it should be POLLERR or
POLLHUP, but that doesn't seem to be the case.
Revision
94026 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 20 01:35:11 2002 UTC
(22 years, 4 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 7531 byte(s)
Diff to
previous 93817
(
colored)
* Introduce sequence tag to urllist element. See CHANGES for description.
* Remove shadow declaration of stat in flood_round_robin.c.
* Factor out handling of URI XML fields so that the sequence tag can
function properly.
* Move around handle_parse_elem so that the sequence code can call it.
Note that in order to calculate how many *real* URLs there will be,
we have to parse the sequence tag twice. This isn't a big deal since
this will be done when initializing the profile not during request
processing itself.
Revision
92316 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 4 10:08:30 2001 UTC
(22 years, 8 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 5174 byte(s)
Diff to
previous 92314
(
colored)
Seed OpenSSL from memory instead of from a rnd file when we don't have
random device support.
(Also deprecate --with-randfile as we never need it anymore.)
Submitted by: Doug MacEachern
Reviewed by: Justin Erenkrantz, Aaron Bannert
Revision
92314 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 4 09:38:53 2001 UTC
(22 years, 8 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 5064 byte(s)
Diff to
previous 92312
(
colored)
- Look for certs dir in logical places if not overriden.
- Have knowledge of platforms with /dev/random and /dev/urandom where
OpenSSL will get the entropy on its own anyway. If --with-randfile is
not specified, we'll see if it even matters.
- Don't call RAND_load_file if we are relying on /dev/random.
Revision
90619 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 24 05:59:58 2001 UTC
(22 years, 11 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 4798 byte(s)
Diff to
previous 90534
(
colored)
Okay, here's the "real" commit log for the fork()-based implementation of
flood.
- Remove FLOOD_USE_THREADS as we have no way of determining if we have
threads other than APR. (We'd say that threads were always enabled.)
I feel comfortable using APR's thread detection rather than mucking
with parameters ourselves.
- Add strtoq conversion for FreeBSD that #defines it to strtoll. This
is a tad cheesy. Thoughts? I don't want to have #ifdef HAVE_STRTOLL
and #ifdef HAVE_STRTOQ all over the place. Smells like an APR function.
- Remove forking stuff in flood.c as it doesn't make sense to fork() here
anyway as this is only bootstrap code.
- Make reports output either the current thread id or the pid
- Don't do OpenSSL locking when we aren't threaded
- Not all OpenSSL versions (FreeBSD 4.2 has 0.9.5a) has AUTO_RETRY. So,
only set that option if we have that symbol.
So, we now support FreeBSD. Go forth.
Revision
90534 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 23 01:30:05 2001 UTC
(22 years, 11 months ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 4696 byte(s)
Diff to
previous 90528
(
colored)
Sleep for four minutes (a typical TIME_WAIT period) when we run out of
ports rather than exiting with an error.
We can theroretically cycle through all 32,000+ ports in less than the
TIME_WAIT period, so we should back off for a bit when we receive the
EADDRNOTAVAIL error. (First seen with Sander's pool patch...)
Revision
90164 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 14 20:14:50 2001 UTC
(23 years ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 4285 byte(s)
Diff to
previous 90148
(
colored)
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.
Also, remove some silly XML parameters that we no longer need due to
this commit. Should be a cleaner syntax now.
Revision
89952 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 6 19:44:12 2001 UTC
(23 years ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 3644 byte(s)
Diff to
previous 89918
(
colored)
Merge SSL socket code in with the normal socket calls. Now determined
based on the scheme.
Note that the flood_net.c code may return APR_EGENERAL (there really is
no way to map to APR_EOF or APR_ETIMEUP with OpenSSL's API), so that
must also be checked and treated as an error.
Remove the flood_socket_ssl.c code. We were doing the abstraction twice.
Once at the flood_socket level and the flood_net level, this is cleaner.
Revision
89918 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 4 04:26:21 2001 UTC
(23 years ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 3470 byte(s)
Diff to
previous 89915
(
colored)
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).
This works. Sure. I'm going home now.
Revision
89904 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 3 04:55:53 2001 UTC
(23 years ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 2642 byte(s)
Diff to
previous 89891
(
colored)
Add better resolution timers (connect, write, read, close).
Adjust easy reports to print these timers out.
(Aaron, I did this tonight rather than wait until tomorrow because I
want to capture this info on some long runs that I will be running
overnight. Sorry! Let me know if you have any issues with this
implementation...)
Revision
89888 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 3 00:08:25 2001 UTC
(23 years ago)
by
aaron
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 2407 byte(s)
Diff to
previous 89886
(
colored)
The seed used in the PRNG can now be set in a tag,
so tests based on random values can be reproduced.
The tag is <seed> and is a toplevel tag (ie under
<flood>.. just go look at the examples)
This patch changes more stuff in autoconf files, so
rerun buildconf, ok?
Revision
89886 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 2 22:19:49 2001 UTC
(23 years ago)
by
aaron
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 2282 byte(s)
Diff to
previous 89884
(
colored)
Added pre/post delays, as well as a precision amount for each.
All times are in seconds. The actual delays is calculated as:
actual_delay + (precision * e)
(where e is a number in [-1,1]). I'm using rand() to generate
the 'e' factor, and as this is not threadsafe on some
platforms (I don't really care what the number is, so this
is NBD), I really should change this later to be
something akin to apr_generate_random_bytes().
Also a minor fix to Justin's last update, a symbol wasn't
renamed.
Also moved the place where we increment the current_url to
the next one from get_next_url() to loop_condition(). This
may have side effects later on if someone tries to call
loop_condition() more than once per loop, but right now
I believe it's defined so that we call it only once (and
that can't be overriden).
I updated some autoconf files, so please rerun buildconf.
Revision
89859 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 1 06:52:25 2001 UTC
(23 years ago)
by
jerenkrantz
Original Path:
httpd/test/trunk/flood/CHANGES
File length: 1644 byte(s)
Diff to
previous 89850
(
colored)
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 which specifies
the function names is still valid). If you specify a "group" and a function
name, the function name will override the one defined in the group.
Added a round-robin.xml example that shows this.
I spent way too much time editing the XML files when the silly function
names changed. No more.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.