"Fossies" - the Fresh Open Source Software Archive 
Member "httperf-0.9.0/ChangeLog" (31 Mar 2007, 27839 Bytes) of package /linux/www/old/httperf-0.9.0.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 2007-03-31 Ted Bullock <tbullock@canada.com>
2
3 * *.c and *.h: Adjusted license to explicitly list HP copyright as
4 Copyright 2000-2007 Hewlett-Packard Company
5
6 2007-02-07 Ted Bullock <tbullock@canada.com>
7
8 * AUTHORS: wsseslog crash fix was actually written by David Mosberger
9
10 2007-02-07 Ted Bullock <tbullock@canada.com>
11
12 * AUTHORS: Removed Durval Menezes from AUTHORS file since his fix
13 has been re-written by Theodore Bullock
14
15 2007-02-07 Ted Bullock <tbullock@canada.com>
16
17 * *.c and *.h: Slightly adjusted license to explicitly point out AUTHORS file
18 as official list of authors
19
20 2007-02-07 Ted Bullock <tbullock@canada.com>
21
22 * httperf.1: Added correction to man page to include a missing
23 --wsess identification
24
25 2007-01-26 Ted Bullock <tbullock@canada.com>
26
27 * getopt.c and getopt1.c: Re-Added the to the build process
28 httperf now compiles on Linux, OpenBSD, FreeBSD, Solaris, HP-UX 11i
29 with cc and gcc and (with cc and gcc)
30
31 2007-01-26 Ted Bullock <tbullock@canada.com>
32
33 * Makefile.am: Revised Makefile.am for src directories to explicitly include the
34 .h files to allow make distcheck to pass
35
36 2007-01-26 Ted Bullock <tbullock@canada.com>
37
38 * getopt.c and getopt1.c: Removed from build process
39
40 * httperf.c: Wrapped call to getopt.h in pre-processor checks
41
42 2007-01-25 Ted Bullock <tbullock@canada.com>
43
44 * wsesslog.c: changed a sprintf call to the more secure snprintf
45
46 * getopt.c: changed a sprintf call to the more secure snprintf
47
48 2007-01-20 Ted Bullock <tbullock@canada.com>
49
50 * autogen.sh: Included the shell script autogen.sh to compile the necessary
51 autotool components.
52
53 * autogen.sh: Removed redundant configuration files from CVS, regenerate these
54 with the autogen.sh script (recommend autoconf 2.60 and above)
55
56 * ttest.c: Removed the ttest.c file from CVS
57
58 2007-01-16 Ted Bullock <tbullock@canada.com>
59 * Build System: Updated build system to a more typical directory
60 layout and wrote missing makefile.am files for automake
61
62 * idleconn: Now installed along with the httperf executable
63
64 * ttest: Remove program from build
65
66 2007-01-02 Ted Bullock <tbullock@canada.com>
67
68 *License: Included openssl linking exception
69
70 2006-12-08 Ted Bullock <tbullock@canada.com>
71
72 * Bug Fixes: Added a number of fixes from the mailing lists
73 over the last 6 years.
74
75 * compiler warnings: Compiler warnings in core.c and wsesslog.c
76
77 * configuration: Fixes a problem with the "configure" setup
78 where the "--prefix=" option wasn't being obeyed
79
80 * zero length: Fixes bug in http.c (parse_header)with zero
81 length content
82
83 * Host Header: Identify machine by FQD rather than hostname
84
85 * Persistent Connections: Added Persistent connections to HTTP 1.0
86 requests
87
88 * Robust alloca.h: Robust way to handle the header file that
89 defines the alloca function <alloca.h> for linux and stdlib.h for
90 BSD and others
91
92 * Time Discrepancy: Fixed a discrepancy between the data produced
93 by httperf and the documentation in regards to timing.
94
95 * wsesslog Crash: Fixed a problem with the wsesslog crashing
96 httperf due to an unhandled session failure from a burdened server
97
98 2000-10-31 David Mosberger <davidm@hpl.hp.com>
99
100 * Version 0.8 released.
101
102 * core.c (do_recv) [!HAVE_SSL]: Avoid referncing param.use_ssl.
103 (do_send): Ditto.
104
105 * core.c (core_ssl_connect): Print error message if SSL connect
106 fails. ERR_print_errors_fp() may not print anything if there
107 error is due to, e.g., trying to connect to a non-existent port.
108
109 * httperf.c (main): Initialize port to -1. Once parameters have
110 been processed, port defaults to 443 if SSL is in use, 80
111 otherwise.
112
113 2000-10-30 David Mosberger <davidm@hpl.hp.com>
114
115 * httperf.man: Update man-page with new options (based on Martin's
116 descriptions.
117
118 * httperf.c (usage): Mention --port.
119
120 2000-10-27 David Mosberger <davidm@hpl.hp.com>
121
122 * httperf.man: Mention request summary in description of
123 --print-request.
124
125 * stat/print_reply.c (print_request): Print request header/content
126 summary line.
127
128 * httperf.c (usage): Bring in sync with implemented options
129 (Martin's patch).
130 (longopts): Order in alphabetical order (Martin's patch).
131
132 2000-10-25 David Mosberger <davidm@hpl.hp.com>
133
134 * stat/print_reply.c (flush_print_buf): New.
135 (Call_Private_Data): New.
136 (CALL_PRIVATE_DATA): New.
137 (call_private_data_offset): New.
138 (print_buf): Rewrite to support line-buffering and new output
139 format.
140 (call_destroyed): New.
141 (print_reply_hdr): New (based on Martin's original version).
142 (send_raw_data): Ditto.
143 (recv_raw_data): Ditto.
144 (recv_stop): Print reply summary (based on Martin's version).
145 (init): Update to support the new print options.
146
147 * httperf.c: Replace --print-replies/--print-request with more
148 general versions of these options.
149
150 * httperf.man: Add info on new --print-reply and --print-request
151 options.
152
153 2000-10-24 David Mosberger <davidm@hpl.hp.com>
154
155 * httperf.c (main): Initialize ssl_ctx.
156 (main): Use SSLv3_client_method() instead of SSLv23_client_method().
157 The latter doesn't work.
158
159 * httperf.h (ssl_ctx): New global variable.
160
161 * conn.h [HAVE_SSL]: Drop unnecessary includes of <openssl/rsa.h>,
162 <openssl/crypto.h>, <openssl/x509.h>, and <openssl/pem.h>. Drop
163 per-connect "ctx" member (it's global now).
164
165 * conn.c (conn_init): Create SSL connection info and set cipher
166 list (if necessary).
167
168 * core.c (core_ssl_connect): Don't create SSL connection info
169 here (done in conn.c now). Always tell SSL about the
170 file descriptor of the socket.
171
172 * sess.c (sess_deinit) [HAVE_SSL]: Free SSL info if it exists.
173
174 * gen/session.c (create_conn): If param.ssl_reuse is in effect,
175 re-use SSL session if we have one or update session info with
176 newly created SSL session.
177
178 * httperf.c [HAVE_SSL]: Include <openssl/rand.h>.
179 (main): Call RAND_seed() with a zero buffer.
180
181 2000-10-23 David Mosberger <davidm@hpl.hp.com>
182
183 * conn.c (conn_init): Don't initialize conn->ssl to zero---that
184 has been done by object_new() already.
185
186 * gen/session.c (create_conn): If reusing SSL session ids, create
187 SSL structure and save SSL info in session structure.
188
189 * sess.c (sess_deinit) [HAVE_SSL]: Free SSL session if it's
190 non-NULL.
191
192 * httperf.h: Declare "use_ssl" only if HAVE_SSL is defined.
193 Add ssl_no_reuse and ssl_cipher_list.
194
195 * httperf.c (struct longopts): Add --ssl-no-reuse and ssl-ciphers.
196 (main): Handle --ssl-cipher_list and --ssl-no-reuse options.
197
198 2000-10-19 David Mosberger <davidm@hpl.hp.com>
199
200 * core.c (core_ssl_connect): Bring debug messages in sync with
201 rest of httperf. If s->ssl exists already, skip right to
202 SSL_connect(). If SSL_connect() returns SSL_ERROR_WANT_READ or
203 SSL_ERROR_WANT_WRITE, mark the appropriate fd set as active and
204 return immediately to wait for more data. Use
205 ERR_print_errors_fp() to print SSL-related errors.
206 (core_loop): Check for S_CONNECTING state before doing anything
207 else.
208
209 * README: Document configuration option "--enable-debug".
210
211 * configure.in: Add support for --enable-debug.
212
213 2000-10-16 David Mosberger <davidm@hpl.hp.com>
214
215 * configure.in: Add AC_TYPE_LONG_LONG check (defines u_wide as
216 "unsigned long long" if the compiler can grok it, "unsigned long"
217 otherwise).
218
219 * aclocal.m4: New file.
220
221 * stat/basic.c: Include "config.h".
222 (struct basic): Change type of hdr_bytes_received,
223 reply_bytes_received, and footer_bytes_received from
224 size_t to u_wide.
225 (dump): Change type of total_size to u_wide.
226
227 2000-10-11 David Mosberger <davidm@hpl.hp.com>
228
229 * httperf.h (VERSION): Change to 0.8beta.
230
231 * configure.in: New file.
232 * Makefile.in: Ditto.
233 * stat/Makefile.in: Ditto.
234 * gen/Makefile.in: Ditto.
235 * lib/Makefile.in: Ditto.
236
237 2000-08-29 David Mosberger <davidm@hpl.hp.com>
238
239 * httperf.c (main): Call core_exit() on a SIGINT.
240
241 2000-08-21 David Mosberger <davidm@hpl.hp.com>
242
243 * core.c (core_init): Bound maximum number of open files to
244 FD_SETSIZE.
245
246 2000-04-25 David Mosberger <davidm@hpl.hp.com>
247
248 * httperf.c (main): Add a call to fpsetmask(0) to get non-finite
249 IEEE arithmetic to work on older versions of FreeBSD.
250
251 1998-12-21 David Mosberger <davidm@hpl.hp.com>
252
253 * Version 0.7 released.
254
255 * Makefile (install): New make target.
256
257 * httperf.h (VERSION): Define as "0.7".
258
259 * gen/wsesslog.c (parse_config): Remove blank in sscanf() format
260 since this caused problems on FreeBSD and NetBSD. This bug was
261 reported by Stephane Eranian.
262
263 1998-12-08 David Mosberger <david_mosberger@hp.com>
264
265 * httperf.c (struct longopts): Add option "method".
266 (usage): Document option --method.
267 (main): Handle --method.
268
269 * httperf.h (struct Cmdline_Params): New member "method".
270
271 * gen/misc.c: Renamed from add_header.c. This file now implements
272 both --add-header and --method.
273
274 1998-11-23 David Mosberger <david_mosberger@hp.com>
275
276 * httperf.c (longopts): New option "add-header".
277 (main): Handle --add-header.
278
279 * httperf.h (struct Cmdline_Params): New member
280 "additional_header".
281
282 * gen/add_header.c: New file.
283
284 1998-09-18 David Mosberger <davidm@hpl.hp.com>
285
286 * gen/session.c (call_done):
287 (conn_failed): Call create_conn() instead of sess_failure() in
288 case param.retry_on_failure is set and the connection has not been
289 successful (received at least one good response)
290
291 * gen/wsess.c (call_destroyed): Call sess_dec_ref() only if
292 session didn't fail.
293
294 1998-09-14 David Mosberger <davidm@hpl.hp.com>
295
296 * README: Replace "session" with "connection" and "call" with
297 "request" to reflect current terminology (reported by Christian
298 Petit). Also fixed various other typos and grammatical problems.
299
300 1998-09-11 David Mosberger <davidm@hpl.hp.com>
301
302 * gen/session.c (call_done): When param.retry_on_failure is set,
303 re-issue call instead of causing session to fail.
304
305 * httperf.c (usage): Add --retry-on-failure option.
306 (struct longopts): Ditto.
307
308 * httperf.man: Document --retry-on-failure option.
309
310 1998-07-23 David Mosberger <davidm@hpl.hp.com>
311
312 * stat/sess_stat.c: Use sess->failed instead of maintaining
313 private session-failure flag.
314
315 1998-07-21 David Mosberger <davidm@hpl.hp.com>
316
317 * sess.c (sess_failure): Don't signal EV_SESS_FAILED more than
318 once per session.
319
320 * core.c (do_send): Clear c->recvq_next. This is necessary now
321 because the same call may be issued multiple times (due to
322 connection failures). Hence there is no longer a guarantee that
323 c->recvq_next has been cleared by object_new().
324 (do_send): Rename s to conn and c to call.
325
326 1998-07-20 David Mosberger-Tang <David.Mosberger@acm.org>
327
328 * core.c (do_recv): Set s->state to S_REPLY_DONE when done with an
329 HTTP/1.0 response (mirrors code in http_process_reply_bytes()).
330 (do_recv): No need to check for nread == 0.
331
332 * stat/basic.c (init): Print basic.conn_lifetime_min only if
333 basic.num_lifetimes > 0.
334
335 * core.c (core_close): Fix typo (call -> all).
336
337 1998-07-08 David Mosberger <davidm@hpl.hp.com>
338
339 * core.c (do_send): Set s->state to S_REPLY_STATUS only if this is
340 the first send---we don't want to interfere with the parsing of an
341 in-progress reply.
342
343 1998-06-19 David Mosberger <davidm@hpl.hp.com>
344
345 * Version 0.6 released.
346
347 * gen/wsesslog.c (issue_calls): Limit `to_create' by the number
348 of calls that the session can queue.
349
350 * gen/session.c (session_max_qlen): New function.
351 (session_current_qlen): Ditto.
352 (max_qlen): New variable.
353
354 * httperf.man: Fix typos.
355
356 1998-06-18 David Mosberger <davidm@hpl.hp.com>
357
358 * gen/session.c (MAX_CONN): Up MAX_CONN to 16.
359
360 * object.c (object_new): panic() instead of assert(0) when
361 encountering an unknown object type.
362
363 * gen/wsesslog.c (user_think_time_expired): Remove stale comment.
364
365 * gen/sess_cookie.c (struct Call_Private_Data): New member cookie.
366 (call_recv_hdr): Remove padding bogosity.
367 (call_issue): Copy cookie from session to call object.
368
369 1998-06-17 David Mosberger <davidm@hpl.hp.com>
370
371 * timer.c (timer_cancel): Instead of an assertion failure, print a
372 message on stderr when timer_cancel(t) is called from within a
373 timeout handler t.
374
375 * Feedback from Dick Carter:
376 * gen/wsesslog.c (parse_config): Remove stale comment.
377 * httperf.h: Fix typo in comment for min_iat.
378 * httperf.c (usage): Fix typo in --period args.
379 * call.c (call_append_request_header): Fix typo in debug message.
380
381 1998-06-09 David Mosberger <davidm@hpl.hp.com>
382
383 * stat/print_reply.c: New file.
384 * stat/sess_stat.c: Ditto.
385
386 * stat/wsess_stat.c: Remove.
387
388 * stat/basic.c: Move stats macros into stats.h.
389 (RATE_INTERVAL): Remove.
390 (interval_start): Ditto.
391 (perf_sample): Rename from sample_rate().
392 (conn_fail): Count EPIPE as a `connection reset' error.
393 (init): Register perf_sample as handler for EV_PERF_SAMPLE.
394 Remove scheduling of performance sampling timer.
395 (dump): Print connection lifetime histogram only if verbose > 1.
396 Print average connection length in number of replies/connection.
397
398 * stat/stats.h: New file.
399
400 * stat/basic.c: Add copyright message.
401
402 * stat/Makefile (libstat.a): Mention sess_stat.o and
403 print_reply.o.
404
405 * object.c: New file.
406 * object.h: Ditto.
407 * sess.c: Ditto.
408 * sess.h: Ditto.
409
410 * httperf.h (VERSION): Up version number to 0.6.
411 (object_is_conn): Remove (now in object.h).
412 (object_is_call): Ditto.
413 (enum Object_Type): Ditto.
414 (struct Object): Ditto.
415 (object_type_size): Ditto.
416 (struct Cmdline_Params): New mebers max_piped, max_conns,
417 print_replies, and session_cookies.
418
419 * httperf.c (perf_sample_start): New variable to keep track of
420 when latest sample interval started.
421 (struct longopts): Add entries for max-connections,
422 max-piped-calls, print-replies, and session-cookies.
423 (usage): Update usage() message.
424 (perf_sample): New function.
425 (main): Remove uri_wsesslog generator. Add sess_stat stats
426 collector. Handle --max-connections, --max-piped, --print-replies
427 and --session-cookies. Start performance sampling timer.
428
429 * http.c (get_line): Use sizeof (s->line_buf) instead of
430 s->line_buf_size.
431 (parse_status_line): Do strcmp() to find out whether call
432 was a HEAD request. Ignore `100 Continue' replies.
433
434 * gen/wsesslog.h: Remove.
435
436 * gen/wsess.c: Modify to take advantage of session manager
437 (gen/session.c).
438
439 * gen/wsesslog.c: Modify to take advantage of session manager
440 and merge with uri_wsesslog.c.
441
442 * gen/uri_wlog.c (set_uri): Use call_set_uri().
443 * gen/uri_wset.c (set_uri): Ditto.
444
445 * gen/uri_fixed.c (uri_len): New variable.
446 (set_uri): Use call_set_uri().
447 (init): Initialize uri_len.
448
449 * gen/session.c: New file.
450 * gen/session.h: Ditto.
451
452 * gen/sess_cookie.c: New file (based on wsess.c).
453
454 * gen/conn_rate.c: File renamed from sess_rate.c.
455
456 * gen/call_seq.c: Modify to take advantage of reference counting.
457
458 * gen/Makefile (libgen.a): Remove uri_wsesslog (it's part of
459 wsesslog now).
460
461 * gen/uri_wsesslog.c: Remove.
462 * gen/uri_wsesslog.h: Ditto.
463
464 * event.h (Event_Type): New member EV_PERF_SAMPLE for performance
465 sampling (invoked once every 5 seconds). Rename EV_USER_NEW to
466 EV_SESS_NEW and EV_USER_DESTROYED to EV_SESS_DESTROYED. New
467 member EV_SESS_FAILED that is signalled when a session fails.
468
469 * core.c (do_send): Remove left-over assert()ion.
470 (do_send): Preserve io vector element that is being sent in
471 iov_saved. Call call_dec_ref() when the connection is closing.
472 (recv_done): Rename `c' to `call' and invoke call_dec_ref().
473 (do_recv): Call conn_failure() only if errno != EAGAIN (for Linux).
474 (core_send): Add `conn' argument. Fill in req.iov[IE_HOST] and
475 req.iov[IE_PROTL] only (rest has been filled in by call_set_* macros).
476 Call call_inc_ref() once the call is ready.
477 (core_close): Rename `s' to `conn'. Destroy pending calls calls
478 on the sendq and recvq by calling call_dec_ref(). Call conn_dec_ref()
479 at the end.
480 (core_loop): Obtain a reference to the connection object for the
481 duration of read & write processing.
482
483 * conn.h: Include <object.h>.
484 (MAX_HDR_LINE_LEN): New macro.
485 (struct Conn): Remove member first_owned and line_size. Replace
486 line_buf pointer with line_buf array.
487 (conn_init): Declare.
488 (conn_deinit): Ditto.
489 (conn_new): New macro.
490 (conn_inc_ref): Ditto.
491 (conn_dec_ref): Ditto.
492
493 * conn.c: Remove include of <errno.h> and <event.h>.
494 (conn_new): Remove.
495 (conn_destroy): Ditto.
496 (conn_init): New function.
497 (conn_deinit): Ditto.
498
499 * call.h: (enum HTTP_Method): Remove.
500 Include <object.h>.
501 (struct Call): Remove members loc_len, loc, uri_len, uri,
502 orig_host, extra_hdrs, contents_len, contents. New member:
503 iov_saved.
504 (call_init): Declare.
505 (call_deinit): Ditto.
506 (call_new): New macro.
507 (call_inc_ref): Ditto.
508 (call_dec_ref): Ditto.
509 (call_set_method): Ditto.
510 (call_set_location): Ditto.
511 (call_set_uri): Ditto.
512 (call_set_contents): Ditto.
513
514 * call.c (call_method_name): Remove.
515 (free_call_list): Remove.
516 (call_new): Remove.
517 (call_init): New function.
518 (call_deinit): Ditto.
519 (call_append_request_header): Fill req.iov[IE_FIRST_HEADER +
520 num_hdrs] instead of req.extra_hdrs[num_hdrs].
521
522 * Makefile (HTTPERF): Mention object and sess.
523
524 1998-05-29 David Mosberger <davidm@hpl.hp.com>
525
526 * Version 0.5 released.
527
528 * core.c (core_send): Fix setup of IE_METHOD and insert blank
529 character in IE_BLANK.
530
531 * call.h (enum IOV_Element): Add IE_BLANK.
532
533 1998-05-27 David Mosberger <davidm@hpl.hp.com>
534
535 * timer.c: Rename t_next to t_curr.
536 (timer_tick): Set t_next _after_ invoking the callback. This
537 allows the callback to cancel all other timers (except itself).
538 (timer_cancel): Add assertion to ensure that timer_cancel() is
539 not called from within the handler of a given timer.
540
541 * httperf.h (enum Dist_Type): New type.
542 (struct Rate_Info): Ditto.
543 (struct Cmdline_Params): Change type of RATE member from Time to
544 Rate_Info. New member WSESSLOG.
545 (panic): Declare.
546
547 * httperf.h (VERSION): Up version number to 0.5.
548
549 * httperf.c: Include <ctype.h> and <stdarg.h>. New options:
550 close-with-reset, period, wsesslog.
551 (usage): Add usage message for new options.
552 (panic): New function.
553 (main): Declare wsesslog, uri_wsesslog, and wsesslog_stat.
554 Initialize param.rate.dist with DETERMINISTIC. Handle --period
555 and --wsesslog options. Fix typo: user think time is 3rd, not 4th
556 parameter in wsess parameter list.
557 (main): Call timer_tick() after initializating the statistic
558 collectors and workload generators so our notion of the current
559 time is reasonably accurate.
560
561 * gen/wsess.c (req_create): Use call_append_request_header().
562 (start): Initialize rg_sess.rate with ¶m.rate.
563
564 * gen/uri_wsesslog.h: New file (by Dick Carter).
565 * gen/uri_wsesslog.c: Ditto.
566 * gen/wsesslog.h: Ditto.
567 * gen/wsesslog.c: Ditto.
568
569 * gen/uri_wlog.c: Drop inclusion of <stdarg.h>.
570 Move panic() from here to httperf.c.
571
572 * gen/sess_rate.c (start): Initialize rg.rate with ¶m.rate.
573
574 * gen/rate.h: New member next_interarrival_time. New member
575 xsubi. Replace PERIOD member with RATE member.
576 (rate_generator_stop): Drop second argument (RATE).
577
578 * gen/rate.c: Include <math.h>, <stdio.h>, and <stdlib.h>.
579 (next_arrival_time_det): New function.
580 (next_arrival_time_uniform): Ditto.
581 (next_arrival_time_exp): Ditto.
582 (tick): Invoke (*next_arrival_time)() to determine next delay.
583 (rate_generator_start): Initialize rg->xsubi based on
584 param.client.id. Initialize rg->next_interarrival_time based on
585 desired distribution.
586
587 * gen/Makefile (libgen.a): Mention wsesslog.o and uri_wsesslog.o
588
589 * core.c (core_connect): Don't rely on realloc(0, SIZE) doing the
590 right thing.
591 (core_connect): Clear newly allocated sd_to_conn elements after
592 allocating them.
593 (core_send): Use call_method_name. Copy in defined
594 c->req.extra_hdrs[i] iovecs. Copy in IE_CONTENT iovec.
595
596 * call.h: New value HM_LEN.
597 (MAX_EXTRA_HEADERS): New macro. Replace IE_HEADERS with
598 IE_FIRST_HEADER and IE_LAST_HEADER. Make extra_hdrs an array of
599 `struct iovec'. New member num_extra_hdrs.
600 (call_append_request_header): Declare new function.
601
602 * call.c: New array.
603 (call_append_request_header): New function.
604
605 1998-05-26 David Mosberger <davidm@hpl.hp.com>
606
607 * COPYRIGHT: Add 1998 as copyright year.
608
609 * stat/basic.c (dump): If no connections have been created, print
610 0.0 for minimm connection lifetime. This avoids a core-dump under
611 FreeBSD, which seems to have a problem printing IEEE infinity.
612
613 1998-05-22 David Mosberger <davidm@hpl.hp.com>
614
615 * call.c (method_name): New variable.
616
617 1998-04-27 David Mosberger <davidm@hpl.hp.com>
618
619 * core.c (do_recv): Ignore EAGAIN errors---Linux 2.0.32 sometimes
620 returns EAGAIN on a read() if a previous write() resulted in
621 EAGAIN.
622
623 * AUTHORS: New file.
624
625 1998-03-24 David Mosberger <davidm@hpl.hp.com>
626
627 * gen/wsess.c (call_done): Also fall back to non-persistent
628 session if c->req.version < HTTP/1.1.
629
630 1998-03-18 David Mosberger <davidm@hpl.hp.com>
631
632 * httperf.c (usage): Fix typo: --recv-buffer -> --send-buffer.
633
634 * gen/wsess.c (dump): Rename "Sess" to "Session" in statistics
635 output.
636
637 * core.c (core_connect): Turn on closing with RESET only when
638 param.close_with_reset is set.
639
640 1998-03-17 David Mosberger <davidm@hpl.hp.com>
641
642 * stat/basic.c (dump): In "Total" line, rename "call" to "req".
643
644 * Version 0.41 released.
645
646 * core.c: Include <sys/resource.h> after <sys/types.h> to get it
647 to compile under FreeBSD (which seems to have a broken libc).
648
649 * stat/basic.c (dump): Complete renaming of "session" to "call".
650 Rename "Call" to "Request".
651
652 1998-03-16 David Mosberger <davidm@hpl.hp.com>
653
654 * Version 0.4 released.
655
656 * httperf.h (VERSION): Change version number to 0.4.
657
658 * httperf.c: (longopts): Add --http-version.
659 (main): Initialize param.http_version to HTTP/1. Support parsing
660 of --http-version option. Echo --http-version option if version
661 other than 1.1 is selected.
662
663 * httperf.h (struct Cmdline_Params): New member HTTP_VERSION.
664
665 * core.c (core_send): Support generation of HTTP/1.0 requests.
666
667 * Patches by Stephane Eranian:
668
669 * httperf.man: Mention --wlog parameter.
670
671 * Makefile (clean): Use $(MAKE) instead of make.
672
673 1998-03-12 David Mosberger <davidm@hpl.hp.com>
674
675 * httperf.c: Renamed Session to Conn to avoid confusion between
676 user sessions and TCP connections.
677
678 1998-03-02 David Mosberger <davidm@hpl.hp.com>
679
680 * gen/wsess.c (user_destroy): Signal EV_USER_DESTROYED.
681 (user_create): Signal EV_USER_NEW.
682 (start): Register rate-generator with event EV_USER_DESTROYED
683 instead of EV_SESSION_DESTROYED.
684
685 * event.h: New events EV_USER_NEW and EV_USER_DESTROYED.
686 * event.c: Ditto.
687
688 1998-02-27 David Mosberger <davidm@hpl.hp.com>
689
690 * session.h: Remove unused first_call member.
691
692 1998-02-26 David Mosberger <davidm@hpl.hp.com>
693
694 * gen/wsess.c (call_recv_hdr): Always check for Connection: and
695 Set-Cookie: headers (not just for first call).
696 (req_create): Modify to support bursts.
697 (user_connect): Ditto.
698 (sess_destroyed): Ditto.
699 (call_destroyed): Ditto.
700
701 1998-02-25 David Mosberger <davidm@hpl.hp.com>
702
703 * core.c (lffs): Fix lffs() so it returns 0 when no bits at all
704 are set in a 64 bit long.
705 (set_active): Set recvq timeout if timeout==0.0 (the old code failed
706 to timeout connections that were waiting for replies).
707
708 1998-02-23 David Mosberger <davidm@hpl.hp.com>
709
710 * Version 0.3 released.
711
712 * timer.c (timer_now_forced): New function.
713
714 * httperf.h (Cmdline_params): New member burst_len.
715
716 * httperf.c: New option --burst-length. At present, only
717 gen/call_seq.c supports this (gen/wsess does not).
718
719 * gen/wsess.c (struct User): New members: found_close_hdr,
720 conn_start, call_start, and cookie.
721 (req_create): Insert cookie as extra header if there is one.
722 (call_recv_hdr): New function. Looks for "Connection: close" and
723 "Set-Cookie:" headers.
724
725 * gen/call_seq.c (Sess_Private_Data): New member "num_finished".
726 (issue_calls): Add support for --burst-len parameter.
727 (call_destroyed): Ditto.
728
729 * core.c (SYSCALL): Call timer_now_forced() instead of timer_now().
730 (core_connect): Keep track of longest back-to-back burst.
731 (core_connect): Set SO_LINGER option so that TCP RST is sent when
732 closing the socket. This avoids the client melting down on
733 HP-UX 10.20 due to a large number of TCP connections in TIME_WAIT
734 state (HP-UX is broken as far as bind()/connect() is concerned when
735 there are many TCP control blocks).
736 (core_exit): Print maximum connect burst length.
737
738 * core.c (max_burst_len): New variable to keep track of longest
739 back-to-back burst generated (large bursts are usually a sign of
740 the client being overloaded).
741
742 1998-02-13 David Mosberger <davidm@hpl.hp.com>
743
744 * stat/basic.c (sess_fail): Print one unexpected error number per
745 execution, independent of DBG.
746
747 1998-02-06 David Mosberger <davidm@hpl.hp.com>
748
749 * core.c (do_send): Maintain sendq_tail & recvq_tail.
750 (core_send): Ditto.
751 (recv_done): Ditto.
752
753 * session.h (Session): New members SENDQ_TAIL and RECVQ_TAIL.
754
755 * core.c (set_active): Set watchdog timer to the minimum of the
756 timeout of the request being sent and that being received (if such
757 requests exist).
758 (do_send): Set c->timeout.
759 (core_connect): Ditto.
760 (core_send): Ditto.
761
762 * call.h: Replace (unused) WATCHDOG member with TIMEOUT.
763
764 * timer.c (timer_schedule): Handle negative delays gracefully.
765
766 1998-01-28 David Mosberger <davidm@hpl.hp.com>
767
768 * Version 0.2 released to SixFlags team.
769
770 1998-01-26 David Mosberger <davidm@hpl.hp.com>
771
772 * gen/call_seq.c (sess_closed): New function.
773 (init): Register sess_closed() so we notice when session closes
774 prematurely.
775
776 1998-01-21 David Mosberger <davidm@hpl.hp.com>
777
778 * httperf.c (main): Don't quit after printing version
779 information---it's useful to run a test and have this info as
780 well.
781
782 1998-01-14 David Mosberger <davidm@hpl.hp.com>
783
784 * stat/basic.c (dump): Add num_sock_reset to total error count.
785
786 1998-01-12 David Mosberger <davidm@hpl.hp.com>
787
788 * stat/basic.c (struct basic): New member num_sock_reset.
789 (sess_fail): Increment num_sock_reset for ECONNRESET.
790 (dump): Print num_sock_reset.
791
792 * core.c (do_recv): Call session_failure() when reading < 0 bytes.
793
794 * stat/basic.c (sess_fail): Print error number when getting an
795 unexpected errno and DBG > 0.
796
797 1998-01-09 David Mosberger <davidm@hpl.hp.com>
798
799 * httperf.c (main): Print only one newline (second newline is
800 printed by stat collectors).
801
802 * stat/basic.c (dump): Print session lifetime histogram first
803 (so it goes right after the rate output).
804
805 1998-01-08 David Mosberger <davidm@hpl.hp.com>
806
807 * core.c (port_get): Recode so port numbers are returned in
808 strictly increasing order (until a wraparound after 65535 occurs).
809 This avoids problems with NT 4.0 which disallows reusing the port
810 pair of a properly shut down TCP connection (which creates
811 problems when testing an NT server with clients running on HP-UX
812 or similar platforms).
813
814 1998-01-07 David Mosberger <davidm@hpl.hp.com>
815
816 * gen/sess_rate.c: Adapt to use rate.c.
817
818 * timer.c (timer_schedule): Adjust "delay" if realtime has grown
819 bigger than next_tick (meaning that "spoke" is behind).
820
821 * call.c (call_destroy): prev wasn't updated in the search loop.
822
823 1998-01-06 David Mosberger <davidm@hpl.hp.com>
824
825 * stat/basic.c (dump): Print minmum rate as zero if there are no
826 rate samples.
827
828 1997-12-23 David Mosberger <davidm@hpl.hp.com>
829
830 * stat/basic.c (struct basic): Add members num_reply_rates,
831 reply_rate_sum, reply_rate_sum2, reply_rate_min, and
832 reply_rate_max.
833 (interval_start, num_replies): New vars.
834 (sample_rate): New function to sample reply rate.
835 (init): Schedule rate sampler.
836 (dump): Print min, avg, max, and stddev of sampled reply rate.
837
838 * httperf.c: Add --client and --think-timeout options.
839
840 1997-12-17 David Mosberger <davidm@hpl.hp.com>
841
842 * http.c (parse_data): Return TRUE to indicate that all bytes
843 (of present chunk) have been received (instead of setting
844 state to S_REPLY_DONE).
845
846 * httperf.h (ALIGN): Fix macro (need AND with _complement_...).
847
848 * http.c (xfer_chunked): Fix typo: check for content_bytes >=
849 content_length (not vice versa).
850
851 * uri_wset.c (set_uri): Fix uri_len computation.
852
853 * sess_rate.c (destroyed): Fix typo: test for param.rate <= 0 (not
854 <0).
855