/[Apache-SVN]/httpd/flood/trunk/CHANGES
ViewVC logotype

Contents of /httpd/flood/trunk/CHANGES

Parent Directory Parent Directory | Revision Log Revision Log


Revision 699195 - (show annotations) (download)
Fri Sep 26 06:53:51 2008 UTC (15 years, 10 months ago) by jerenkrantz
File size: 12359 byte(s)
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.

1 Changes since 1.0:
2
3 * Fix issue with chunked keep-alive responses when the initial chunk content
4 starts with a NULL byte. [Justin Erenkrantz]
5
6 * Fix HTTP keepalives over SSL.
7 [Justin Erenkrantz]
8
9 * Support building against installed Ubuntu APR packages.
10 [Justin Erenkrantz]
11
12 * Update relative times report to use appropriate APR format string.
13 [Justin Erenkrantz]
14
15 * Protect relative times report output with a mutex to avoid overlap.
16 [Justin Erenkrantz]
17
18 * Fix compilation error with newer gcc versions.
19 [Ohad Lutzky <ohad lutzky.net>]
20
21 * Implement a random substitution feature; requires a requesttemplate,
22 one or more substitution variables of the form ${varname) in the
23 requesttemplate and a substitution file formatted with one value
24 per newline delimited line (more than one variable per URL permitted).
25 The variables and files are referred to as subst variables and subst
26 files. Each time the URL is sent the subst variable is replaced with
27 one line randomly selected from the subst file. Any part of the
28 requesttemplate can be randomly substituted, protocol, host, port, etc.
29 [Guy Ferraiolo <guyf cnet.com>]
30
31 * Add extraheader attribute to url's to allow custom headers to be set.
32 [Justin Erenkrantz]
33
34 * Add payloadfile attribute to url's to allow the body to be read from a file.
35 [Justin Erenkrantz]
36
37 * Support custom HTTP methods. [Justin Erenkrantz]
38
39 * Fix corruption when we have multiple usefarmer's without a count.
40 [Justin Erenkrantz]
41
42 * Sync with latest find_apr.m4 and find_apu.m4 to detect 1.0 APR and APR-util.
43 [Justin Erenkrantz]
44
45 * Add <proxyurl> child element to <urllist> to request against a proxy.
46 [Justin Erenkrantz]
47
48 * Accept HTTP/1.0 responses to HTTP/1.1 requests. [Justin Erenkrantz]
49
50 * Use APR's bundled mkdir script. [Justin Erenkrantz]
51
52 * Support VPATH builds again. [Justin Erenkrantz]
53
54 * Added the "content-type" parameter for URLs using the POST method.
55 [Philippe Marzouk <phil@ozigo.org>]
56
57 * Remove .deps code that is just broken for now. [Justin Erenkrantz]
58
59 * Added configversion attribute (root element <flood>) which ties config
60 file structure with certain flood version and warns user if there is a
61 conflict. [Jacek Prucia]
62
63 * Added attribute responsescript (element <url>), which allows flood to
64 delegate response processing to external script. [Jacek Prucia]
65
66 * Change open_socket prototype to return errors. [Justin Erenkrantz]
67
68 * Fix HEAD responses with Content-Length specified being handled incorrectly.
69 [Justin Erenkrantz]
70
71 * Flood manual (DocBook based). [Jacek Prucia]
72
73 * Added <baseurl> element. When present, it's contents are copied in front
74 of every <url> element, which makes relative urllist's possible.
75 [Jacek Prucia]
76
77 * Added basic auth support. When user and passowrd attributes of <url>
78 element are present and non-empty, flood sends auth data with request.
79 [Jacek Prucia]
80
81 * Added generic_fullresp_recv_resp() to force full response.
82 [Phi-Long Tran <ptran@pobox.com>]
83
84 * Fixed compiler warning about signed/unsigned mismatch in generic_recv_resp.
85 [Phi-Long Tran <ptran@pobox.com>]
86
87 * Include correct header to import defintion of apr_pstrmemdup in
88 flood_socket_keepalive.c. [Phi-Long Tran <ptran@pobox.com>]
89
90 * Namespace protect expand_param_e enum values to not conflict with Win32
91 headers. [Phi-Long Tran <ptran@pobox.com>]
92
93 * Added error handling for failed config-file open.
94 [Phi-Long Tran <ptran@pobox.com>]
95
96 * Fix Win32 crash resulting from strtoll() macro
97 [Phi-Long Tran <ptran@pobox.com>]
98
99 * Catch some badly formed URLs and exit instead of later crashing.
100 [Jacek Prucia <jacek.prucia@7bulls.com>]
101
102 * Fix tab formatting in some analysis scripts.
103 [Reini Urban <rurban@inode.at>]
104
105 Changes since milestone-03:
106
107 * Revamp keepalive_recv_resp to use the APR table API. This allows true
108 case insensitivity with the response headers. [Justin Erenkrantz]
109
110 * Support autoconf-2.5+. [Justin Erenkrantz]
111
112 * Switch to new apr_poll() API. [Justin Erenkrantz]
113
114 * Stop using the apr_lock.h API and start using apr_thread_mutex.h
115 instead. [Aaron Bannert]
116
117 * Remove the USE_RW_LOCK_FOR_SSL conditional compiles since we
118 didn't have an autoconf feature test for it nor was it really
119 giving us any benefit. [Aaron Bannert]
120
121 * Add ability to detect when the server has closed the connection instead
122 of erroring out (think Keep-Alive). [Justin Erenkrantz]
123
124 * Add chunked support. [Justin Erenkrantz]
125
126 * Add detection of CAPATH variable for RedHat installs.
127 [Justin Erenkrantz]
128
129 * Fix return value in parse_xml_url_info. [Justin Erenkrantz]
130
131 * Fix linking problems due to misordering of libraries on Solaris.
132 [Justin Erenkrantz]
133
134 * Add config.nice support from apr_common.m4. [Justin Erenkrantz]
135
136 * Add apr_common.m4 and fix up building/configuration of source
137 apr/apr-util. [Justin Erenkrantz]
138
139 * Introduce sequence tag to urllist element. This tag has the following
140 form:
141
142 <urllist>
143 <sequence sequencename="myseq" sequencelist="bob, jane, joe">
144 <url requesttemplate="http://www.you.com/~${myseq}/" />
145 <url requesttemplate="http://www.you.com/~${myseq}/index.html" />
146 </sequence>
147 </urllist>
148
149 This will hit:
150 http://www.you.com/~bob/
151 http://www.you.com/~bob/index.html
152 http://www.you.com/~jane/
153 http://www.you.com/~jane/index.html
154 http://www.you.com/~joe/
155 http://www.you.com/~joe/index.html
156
157 This allows certain URL patterns to be simplified. [Justin Erenkrantz]
158
159 * Remove shadow declaration of stat in flood_round_robin.c.
160 [Justin Erenkrantz]
161
162 * Factor out handling of URI XML fields. [Justin Erenkrantz]
163
164 * Properly detect and use APR's libtool. [Justin Erenkrantz]
165
166 * Reworked build system to ease integration with APR/apr-util.
167 [Justin Erenkrantz]
168
169 Changes since milestone-02:
170
171 * Updated apr_lock_create to reflect the API change in APR.
172 [Aaron Bannert]
173
174 * Fix an unterminated string that would produce garbage cookie strings
175 when processing multiple cookies. [Chris Williams <chriwill@cmguc.com>]
176
177 * Allow OpenSSL to seed from memory rather than a file if we don't
178 have random support. [Doug MacEachern]
179
180 * Allow better detection of randfile and capath options when SSL is
181 enabled. [Justin Erenkrantz]
182
183 * Detect when we have a https URL and don't have SSL support built in.
184 [Justin Erenkrantz]
185
186 * Fix longstanding bug that was probably leaking massive file descriptors
187 when SSL was being used. [Aaron Bannert]
188
189 * Always link the runtime library search path into our binary for
190 libararies like APR, APR-UTIL, etc. [Aaron Bannert]
191
192 * Conditionally compile SSL support (set with the --enable-ssl parameter).
193 We no longer require SSL to build flood. [Aaron Bannert]
194
195 * SSL is now disabled by default and must be explicitly enabled.
196 This is to comply with certain legal restrictions. [Aaron Bannert]
197
198 * Require openssl 0.9.6 or greater. (This may be raised to 0.9.6b if
199 rumors of lower versions crashing under load become true.)
200 [Aaron Bannert]
201
202 * If SSL is enabled we now check that we have the appropriate headers
203 and libraries available. [Aaron Bannert]
204
205 * Rework of --with-openssl parameter to work with the new --enable-ssl
206 param. There are three ways to use an installed openssl: if it
207 exists in the default places, if you specify CFLAGS/LDFLAGS to
208 the configure script, or if you specify the path prefix to the
209 installation with this new parameter. [Aaron Bannert]
210
211 * Add new parameter (--enable-ssl). [Aaron Bannert]
212
213 * Display URL that failed when we get an error. [Justin Erenkrantz]
214
215 * Add support for platforms that do not have threads (or are unusable by APR).
216 [Justin Erenkrantz]
217
218 * Sleep for four minutes (typical TIME_WAIT period) when we run out of
219 ports rather than exiting with an error. [Justin Erenkrantz]
220
221 * Fix regex code to work with Linux as well. [Justin Erenkrantz]
222
223 * Add ability to have a staggered startup of threads. By specifying
224 startdelay="X" and startcount="Y", flood will start Y threads every
225 X seconds until the count value is reached. [Justin Erenkrantz]
226
227 * Rewrite the expression/template code to use variable names (backed by a
228 hash table) and allow use of regular expressions for the response
229 template.
230 The new syntax is as follows:
231 ${foo} substitutes foo's value.
232 ${=foo} generates a random number and stores it in foo and substitutes it.
233 ([^>]*) (regex sub-expression) coupled with responsename="foo" allows
234 that subexpression to be stored in foo based on what is in the
235 response from the server. It will only take the first
236 sub-expression in the regex and store it in the value.
237 [Justin Erenkrantz]
238
239 Changes since milestone-01:
240
241 * Merge SSL socket code in with the normal socket calls. flood will
242 now determine (based on the protocol scheme) whether it should use
243 SSL or not. [Justin Erenkrantz]
244
245 * Add ability to retrieve some data from the response and place it in
246 state variables (max of 10). These "state" variables live for the
247 life of the profile (i.e. all elements in the urllist). They may be
248 referred in any template via $[0-9]. Add ability to store the
249 entire response (only active if a response template is present).
250 [Justin Erenkrantz]
251
252 * Added a new report type called "relative_timers". Each
253 of our 4 main timers is printed just as with the "easy"
254 reporting scheme, only they only show elapsed time since
255 the beginning of the request/response test cycle.
256 [Aaron Bannert]
257
258 * Added another timer (begin) that happens immediately before
259 the connect() is made (or would be made). This is necessary
260 if we want to calculate the elapsed time for the rest of
261 our timers. [Aaron Bannert]
262
263 * Add better resolution timers (connect, write, read, close).
264 [Justin Erenkrantz]
265
266 * A farmer may now be run for an arbitrary amount of time (specified in
267 seconds) rather than a specific number of requests. [Justin Erenkrantz]
268
269 * The seed used for the global pseudo-random number generator
270 can now be set with the <seed>n</seed> tag. [Aaron Bannert]
271
272 * Added random pre and post delay. You can also specify a precision
273 amount. This means that the actual delay will be:
274 actual_delay + (precision * e)
275 (where e is a number between -1 and 1).
276 This can be accomplished in the <url> tag, like so:
277 <url predelay="10" predelayprecision="2">http://example.com/</url>
278 <url postdelay="10" postdelayprecision="2">http://example.com/</url>
279 Both types of delays can be used together, and they are all optional.
280 [Aaron Bannert]
281
282 * Add pseudo-random data to a POST payload via the $$ character in the
283 new payloadtemplate parameter for a URL. [Justin Erenkrantz]
284
285 * Add group shortcuts when defining a profile. The following syntaxes are
286 now valid:
287 <report>easy</report>,<report>simple</report>
288 <socket>generic</socket>,<socket>ssl</socket>,<socket>keepalive</socket>
289 <profiletype>round_robin</profiletype>
290 These tags will now setup the functions for this "group." You do not need
291 to know the function names anymore (although the old syntax is still valid).
292 [Justin Erenkrantz]
293
294 * Profile events are now split into logical "groups". A "group"
295 is a bunch of functions that all need to be overriden together
296 to add some new functionality. This logical grouping may
297 become enforced in code at some later time (it will make
298 it easier for users to build configurations). Currently
299 the groupings we have are:
300 profile events, socket events, reporting events, and
301 verification events. [Aaron Bannert]
302
303 * Added delay support for urllist. A urllist entry can now be
304 given a delay (in seconds) that happens each time that URL
305 is used in a request. [Justin Erenkrantz]
306
307 * Changed "simple" and "easy" reporting systems to both print
308 out the URL for each request. [Aaron Bannert]
309
310 * Now using strncasecmp() instead of strncmp() to compare XML
311 identifiers. [Aaron Bannert]
312
313 * There is now limited support for Cookies in a Round Robin profile.
314 [Justin Erenkrantz]
315
316 * A Farm can consist of multiple Farmers now, instead of being
317 restricted to a single Farmer named "Joe". (This is only correct
318 if you have thread support on your system.) [Aaron Bannert]
319
320 * Limited support for Farms has been implemented. There can
321 be one Farm named "Bingo". [Aaron Bannert]
322

Properties

Name Value
svn:eol-style native

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26