"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 &param.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 &param.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