*******************************************************************************
** Please increment the version if you change anything user-visible.
** See *aserve-version* in main.cl.
** Please leave this at the top of the file.  Thanks.
*******************************************************************************

2009-07-24  Kevin Layer  <layer@gemini.franz.com>
1.2.60
	* decode.cl: uriencode-string: use uppercase hex chars for
	  EC2.  Amazon's EC2 requires that uppercase characters (A-F)
	  be used, otherwise the signing of EC2 requests via the REST
	  API won't match.

2009-07-01    <layer@HOBART128>

	* makefile: dribble test output to "test.out" (mainly for windows)

2009-06-30  Kevin Layer  <layer@gemini.franz.com>

	* load.cl: remove removed files from *aserve-other-files*

2009-05-11  Kevin Layer  <layer@gemini.franz.com>
1.2.59
	* main.cl (request-query): rfe8332: make request-query-value
	  work on PUT requests

2009-05-04  Kevin Layer  <layer@franz.com>

	* test/t-aserve.cl: turn on cgi tests for Windows

2009-02-19  John Foderaro  <jkf@max.verada.com>
1.2.58
	* fix problem introduced in 1.2.57 where the response date 
	is always the zero universal time.

2009-01-23    <jkf@duo.verada.com>
1.2.57
	* proxy.cl - correctly send out the comment after the result
	 code.  Turns out that Microsoft's ISA actually reads it. 

2009-01-13  Kevin Layer  <layer@gemini.franz.com>

	* main.cl (http-request): fix typo (reply-protocol-sring =>
	  reply-protocol-string)

2008-07-08  John Foderaro  <jkf@tiger.franz.com>
1.2.56
	* [from David Cooper] - store in the request object the time at 
	which a request came and and when it was finshed being handled.
	 - when parsing multipart bodies, handle multipart content type 
	 that has additional info as well

2008-07-07  John Foderaro  <jkf@tiger.franz.com>
	* main.cl: fix bug where getting a large request body would
	  fail due to array not being adjustable

2008-05-22  Kevin Layer  <layer@gemini.franz.com>
1.2.55
	* publish.cl: set mime type of dmg files to
	  application/x-apple-diskimage

2008-02-16  Kevin Layer  <layer@gemini.franz.com>

	* makefile: add `tags' rule

2008-02-07  John Foderaro  <jkf@tiger.franz.com>

	* if during the accept loop a sleep is necessary 4 times,
	  a new thread will be created anyway. This will allow
	  the worker threads to grow in more situations.

	* add backlog argument to net.aserve:start

2008-01-28  John Foderaro  <jkf@tiger.franz.com>
1.2.54
	* fix bug where if aserve as a proxy did get-basic-authorization
	it would cause two authorization headers to be sent by the proxy

2007-12-26  John Foderaro  <jkf@tiger.franz.com>
1.2.53
	* to enable zoom on error do (net.aserve::debug-on :zoom-on-error)
	and it will no longer act like you added :notrap as well.

2007-12-13    <jkf@MINI>

	* do-http-request: have timeout apply to the socket connection
	 operation as well.

2007-10-23  Kevin Layer  <layer@gemini.franz.com>
1.2.52

	* main.cl: new debug type for 8.1 or later, :zoom-on-error,
	  allows easier debugging of errors.  Do
	  (push :zoom-on-error net.aserve::*debug-current*)
	  to enable this feature.

2007-09-12  Kevin Layer  <layer@gemini.franz.com>
1.2.51

	* main.cl: incf version
	* makefile: use 8.1
	* publish.cl: update *file-type-to-mime-type*

2007-04-08  Kevin Layer  <layer@gemini.franz.com>

	* client.cl: move httpcopy.cl contents into client.cl
	* (REMOVED) httpcopy.cl
	* load.cl: back out previous change

2007-04-08  Kevin Layer  <layer@gemini.franz.com>

	* (NEW) httpcopy.cl: implements new http-copy-file client
          function
	* load.cl: add httpcopy file
	* makefile: default mlisp to /fi/cl/8.0/bin/mlisp
	* packages.cl: export http-copy-file
	* test/t-aserve.cl: add tests for http-copy-file

2007-04-06  Kevin Layer  <layer@gemini.franz.com>

	* makefile: make default lisp in the presence of ../dcl.dxl be
	  that; add `test' rule
	* test/t-aserve.cl: allow to be run from this directory

2007-03-27  Charles A. Cox  <cox@gemini.franz.com>

	* examples/urian.cl: spr31997 suggestion

2007-03-21  Ahmon Dancy  <dancy@dancy>
1.2.50
	
	* rfe6834: SSL peer verification support.  Also, 'start' function
	now allows the SSL certificate key file to be specified separately
	from the certificate.

	* bug16677: aserve could leak file descriptors if SSL (https)
	connection fails.  

2006-12-22  John Foderaro  <jkf@tiger.franz.com>
1.2.49
	* when response needed a string output stream and 
	 also specified an external format we would 
	 incorrectly add a null to the end of the response

	* ignore body for *response-not-modified* as well

2006-12-20  Kevin Layer  <layer@gemini.franz.com>
1.2.48

    rfe6669: Changes to handle "204 No Content" from Vebjorn Ljosa
    <ljosa-franz-opensource@ljosa.com>.  Handling 204 responses is
    important because some web services (e.g., Amazon.com's "Simple
    Storage Service," S3) use them.
	* packages.cl: export *response-no-content*
	* client.cl: handle *response-no-content*
	* main.cl: define *response-no-content*

2006-07-24  John Foderaro  <jkf@tiger.franz.com>
1.2.47
	* the cookies added by set-cookie-header will now appear in 
	  the same order as the set-cookie-header calls.
	* when cookies are retrieved and processed by do-http-request
	  they will be processed in the same order they appear in the
	  header 

2006-07-14  John Foderaro  <jkf@tiger.franz.com>

	* publish.cl - if process-entity does a redirect then
            set the location to an absoluteURI.   [spr31830]
	

2006-06-29    <jkf@max.verada.com>
1.2.46
	* add content type of "text/html" when sending the
	  response not authorized message

2006-06-07    <jkf@max.verada.com>

	* accept a bogus first response line that doesn't include
	  the space after the response code.

2006-04-19  John Foderaro  <jkf@tiger.franz.com>
1.2.45
	* client.cl: added :proxy-basic-authorization to 
	do-http-request so you can give your basic credentials to a
	proxy

2006-03-29  John Foderaro  <jkf@tiger.franz.com>
1.2.44
	* cgi.cl - add terminate argument to run-cgi-program

2006-03-24    <jkf@max.verada.com>

	* main.cl - handle a client request that includes a chunked body.
	 (not tested yet since I can't find a client making such a request).

	* proxy.cl - create appropriate Host header.

*******************************************************************************
*** ACL 8.0 release
*******************************************************************************

2005-08-05  Gabor Melis  <mega@hotpop.com>

	* main.cl (connection-reset-error): detect sigpipe and
	  "connection reset by peer" on sbcl

	* publish.cl: In http 1.1 keep alive is the default.
	  Client needs to send "Connection: close". In http 1.0
	  non-persistent connection is the default, client
	  needs to send "Connection: keep-alive".

	* main.cl: fixed atomic-{incf,decf} for sbcl

2005-03-06  John Foderaro  <jkf@max.verada.com>

	* client.cl - handle single line set-cookie lines that end in a semicolon

2005-02-21  John Foderaro  <jkf@max.verada.com>
1.2.43
	* add digest-authorization to the aserve client code

2005-01-13 John Foderaro  <jkf@tiger.franz.com>
1.2.42
	* main.cl - track whether characters have been read in a 
          request in order determine whether a "400 Bad Request"
	  response should be made.
	
2005-01-13 John Foderaro  <jkf@tiger.franz.com>
1.2.41
	* htmlgen/htmlgen.cl - fix call to macroexpand for acl7.0
	  where the use of the compiler's environment can cause
	  infinite macroexpansion loops unless you're careful.

2004-12-15  John Foderaro  <jkf@tiger.franz.com>
1.2.40
	*  remove debugging format statement in webactions

2004-12-14  John Foderaro  <jkf@tiger.franz.com>
1.2.39
	* with with-standard-io-syntax to prevent #n= printing.
	
2004-11-18  John Foderaro  <jkf@tiger.franz.com>

	* use &body in macro definitions to help indenters
	* use response code 307 for redirects rather than 301 since
	  browsers are now starting to consider 301 redirects as 
	  permanent (and since browsers now handle 307 correctly).

2004-09-08  John Foderaro  <jkf@tiger.franz.com>

	* publish.cl - handle international characters
	    emitted by a page where aserve's strategy was
	    to use a string output stream as an intermediary
	    storage device.
	    

2004-10-19  John Foderaro  <jkf@tiger.franz.com>
1.2.38
	* cgi.cl (parse-cgi-script-data): fix bug where find
	  was used instead of position.

Thu Jul 22 23:03:43 PDT 2004  Duane Rettig  <duane@gemini>

	* load.cl: Remove streamc dependencies
	* packages.cl: Remove streamc require
	* publish.cl: Remove streamc dependencies
	
2004-06-09  John Foderaro  <jkf@tiger.franz.com>
1.2.37
	* main.cl - return a 400 response if there's an error reading
	    the request.  
	    Use process locks when allocating sresources rather
	    then without-scheduling.

2004-04-29  John Foderaro  <jkf@tiger.franz.com>

	* main.cl - http-worker-thread don't expect the stream
	    to process to be the first and only thing on the
	    run-reasons list.  Acl7.0 will add things as well.

2004-03-04  John Foderaro  <jkf@tiger.franz.com>

	* main.cl - ensure that get-request-body always reads from
	 a stream with the :octets external format so that the
	 content-length header value is meaningful.

2004-03-03    <jkf@main.verada.com>
1.2.36
	* main.cl: add request-variable-value (moved from webactions)

2004-01-09  John Foderaro  <jkf@tiger.franz.com>
1.2.35
	* publish.cl, main.cl, test/t-aserve.cl: add a slot to 
	  all entities holding
	  the extra headers to add to the response.  Add a :headers
	  argument to all publish functions that allows one
	  to store a value in the new headers slot.

2003-12-23  John Foderaro  <jkf@tiger.franz.com>
1.2.34
	*  fix typo in exports wserver-io-timeout

2003-12-12  Kevin Layer  <layer@relay.known.net>

	* makefile: set base version to 6.2
	* proxy.cl: fix typo in proxy-failure-response, include requested
	  uri, too

2003-10-31  John Foderaro  <jkf@tiger.franz.com>

	* cgi.cl - transfer data from script back to http client
	    immediately rather than buffering it up.

2003-10-27  John Foderaro  <jkf@tiger.franz.com>
1.2.33
	* webactions/ files - change headers to include lgpl copyright info

2003-10-22  John Foderaro  <jkf@tiger.franz.com>
1.2.32
	* add webactions subdirectory of code

2003-09-22  John Foderaro  <jkf@tiger.franz.com>
1.2.31
	
	* authorize.cl: send back some text with failed response
	* publish.cl: fix html sent back to with failed responses
	

2003-09-22    <jkf@main.verada.com>

	* decode.cl: fix multiline base64 decoding.

2003-09-12    <layer@HOBART>
1.2.30

	* load.cl: fix problem building on acl 7.0 on windows

2003-09-10  Kevin Layer  <layer@crikey>
1.2.29

	* load.cl,
	* examples/examples.cl,
	* examples/urian.cl: use *load-pathname* instead of
	  *load-truename* since truename in ACL 7.0 goes through symbolic
	  links and this doesn't work in the way aserve is built at franz
	  (via symlinks to source code)

2003-09-04  John Foderaro  <jkf@tiger.franz.com>
1.2.28
	* non-standard http headers are again supported in all
	  functions, including proxying (where they are just passed on
	  or passed back as the case may be).

2003-08-12  John Foderaro  <jkf@tiger.franz.com>

	* move the require of :uri to before the first
	  reference to it in packages.cl

2003-05-09    <jkf@main.verada.com>
1.2.27
	* added a hook argument to most publish functions. documented
	  as 'entity hook function'
	* chat.cl - use cookies to get around security problem
	* add compute-request-headers (an internal fucntion at the
	  moment, I may export it in the future)
	  

2003-05-08  John Foderaro  <jkf@tiger.franz.com>

	* doc/aserve.html - clarify that you can have a list of
	    authorization objects in an entity.

	* main.cl - make the uri-scheme of (request-uri req) correctly
	        reflect if this is an https or http request.

2003-02-26  John Foderaro  <jkf@tiger.franz.com>
1.2.26
	* doc/aserve.html - new get-request-body argument

2003-02-24  Charles A. Cox  <cox@ultra>
	New file: examples/locale.cl.
	
	* load.cl: add locale example.
	* main.cl: add external-format argument to
	get-request-body for spr27296.
	* examples/examples.cl: Minor home page cleanup for ics
	examples.
	* examples/urian.cl: Add extra smarts for determining a
	page's charset.
	* test/t-aserve.cl: Add spr27296 test.

2003-02-06  John Foderaro  <jkf@tiger.franz.com>

	* main.cl  - added (setf request-query-value)

2003-01-10  John Foderaro  <jkf@tiger.franz.com>
1.2.25
	* publish.cl (get-cookie-values): handle case of a cookie parameter
	not having value, i.e  name2;   Pretend it was  name2=;

2003-01-07  John Foderaro  <jkf@tiger.franz.com>

	* client.cl - when sending character data obey external formats
	* main.cl - initialize log stream to *initial-terminal-io* since
	  *standard-output* could be bound to something during the loading
	  process.
	* [htmlgen changes, see it's ChangeLog]

2002-09-06  John Foderaro  <jkf@tiger.franz.com>

	* detect connection reset by peer on the AIX operating system
	* [change made in htmlgen ChangeLog]

2002-08-09  John Foderaro  <jkf@tiger.franz.com>
1.2.24
	* change #\newline to #\linefeed in the source for portability
	* fix :comment in htmlgen
	* put aserve package definitions and exports in new file:
          packages.cl

2002-04-10  John Foderaro  <jkf@tiger.franz.com>

	* main.cl - fix bug in get-multipart-sequence when used
	  in an International Lisp with multibyte character input.
	  In certain rare cases it could get stuck decoding the last
	  bits of a buffer.
	  
	  - add :ssl-password argument to net.aserve:start to 
	   specify the password for decrypting the private key
	   in the file with the ssl certificate. [requires
	   acl feature introduced in acl 6.2]2

	* client.cl - if the content passed to do-http-request
	   is a list of vectors, each vector in the list will
	   be sent to the server.
	  

2002-02-28  John Foderaro  <jkf@tiger.franz.com>
1.2.23
>>>	*  incompatible change:
	    The path part of a uri can't contain certain characters
	    unless they are escaped like %xx.  Even characters that
	    needn't be escaped *can* be escaped.  Thus to canonicalize
	    the uri path and to allow it to be easily mapped to filenames
	    we now decode the uri path (convert %xx to the actual character)
	    before processing it (looking for matches in the published
	    entities).   If you had published a path like "foo%20bar"
	    then you must change it to "foo bar".
	 * cgi.cl - add default for :script-name arg
	 * various - open socket in nodelay mode to maximize performance
	    
	

2002-02-13  John Foderaro  <jkf@tiger.franz.com>
1.2.22
	* authorize.cl - add new authorizer: function-authorizer

	* cgi.cl - run-cgi-program takes a :env arguemnt to allow
	    additional environment variables to be specified.

2002-01-15  John Foderaro  <jkf@tiger.franz.com>
1.2.21
	* main.cl - fix bug where the value of 
	  *default-aserve-external-format* was captured at macroexpansion
	  time rather than run time.  All code using with-http-body
	  should be recompiled.

	* publish.cl - allow mime types to be specified for filenames that
	  don't have a type component (e.g. ReadMe files).
	* publish.cl - set-cookie-header takes an encode-value argument
	 to control whether it does encoding of its argument.

2002-01-07  John Foderaro  <jkf@tiger.franz.com>

	* main.cl - fix problem of restarting aserve in non-ssl mode
	  after starting it is ssl mode.

2002-01-06  John Foderaro  <jkf@tiger.franz.com>

	* add :nofile return code to parse-multipart-header

2002-01-04  John Foderaro  <jkf@tiger.franz.com>
1.2.20
	* main.cl - add two higher level functions to aid retrieving
	  multipart data: parse-multipart-header and get-all-multipart-data.
	  The examples now show using both the low level and higher
	  level functions for retrieving multipart form data.

2001-12-03  John Foderaro  <jkf@tiger.franz.com>
1.2.19
	* main.cl: add ensure-stream-lock function to put a lock object
	  on a stream that the logging functions then can use.

2001-11-30    <jkf@CROW>

	* doc/aserve.html - add documentation on using AllegroServe as 
	  an NT service,  and a description of how to write
	  web pages that handle international characters
	* main.cl - add :external-format argument to request-query-value

2001-11-28  John Foderaro  <jkf@tiger.franz.com>

	* log.cl - use locking around writes to the log if the
	 stream has a lock on it's property list.

2001-11-28    <jkf@main.verada.com>

	* add :binary type to publish-multi
	* chat.cl - add the ability to upload pictures

2001-11-26  John Foderaro  <jkf@tiger.franz.com>
1.2.18
	* decode.cl - handle character set decoding inside uri queries
	* publish.cl - access file caching
	

2001-11-15  John Foderaro  <jkf@tiger.franz.com>
1.2.17
	* added new publish fcn: publish-prefix 
>>>	* incompatible changes:
	  redid the way access files are processed, see the
	  document for the latest spec.
	  notable changes:
	        :ignore is now :deny 
	        :block is gone from :subdirectories but I've added
	             :allow and :deny for fine tuned blocking
	        :inherit now defaults to nil
	        you can have multiple forms of the same kind of 
	        information in a single access file and they will
	        all be used.

2001-11-06  John Foderaro  <jkf@tiger.franz.com>

	* fix bug causing infinite loop when reading truncated form body

2001-11-05  John Foderaro  <jkf@tiger.franz.com>
1.2.16
	* failed request now identifies AllegroServe as the server
	  and gives its version number
	* if AllegroServe isn't setup to proxy it will not match proxy
	  requests with local web pages.

2001-11-05    <jkf@main.verada.com>

	* log.cl - write to log files under the protection of a process
	  lock found on the stream-property-list of the stream associated
	  with the :lock indicator.  If no such lock is found, write
	  to the streame anyway.
	* examples/chat.cl - improve the speed of deleting messages by
	  binary searching the existing messages.

2001-10-31  John Foderaro  <jkf@tiger.franz.com>
1.2.15
	* start now takes a host argument to allow you to bind the server
	  to a specific host
	* publish-multi will not return 304 (not modified) unless the
	  request is a get or a head
	* files published with publish-file will now obey a single
	  range specifier so they will be download accelerator friendly

2001-10-26  John Foderaro  <jkf@tiger.franz.com>

	* add entity-plist slot to entities and use it to link
	  file entities to their parent directory entities with
	  the :parent indicator
	* add map-entities function
	* print vhosts in a why that shows their host names

2001-10-24  John Foderaro  <jkf@tiger.franz.com>
1.2.14
	* added access files for publish-directory.  These allow
	  .htaccess-like controlling of what publish-directory publishes.
>>>	* incompatible change: added an extra argument to the 
	  publish-directory filter function and publisher functions.

2001-10-19  John Foderaro  <jkf@tiger.franz.com>
1.2.13
	* added publish-multi 
	* while debugging (:notrap) we ignore connection reset by peer errors
	  by default since they are frequent and not errors in most 
	  cases. You can have them recognized by setting
	  *debug-connection-reset-by-peer*  to t.
	  

2001-10-18  John Foderaro  <jkf@tiger.franz.com>

	* The initial log stream (which is used then to initialize vhost
	  log streams) is now *initial-terminal-io* and not
	  *standard-output*.
	* random messages (written by logmess) are now sent to the
	  vhost-error-stream of the default-vhost of the server.
	  This allows one to separate these random messages from the
	  the request logs
	* logs of proxy activity is now sent to the vhost-error-stream
	  of the default-vhost of the server.  we may rethink this later.
	* support vhost specific request filters

2001-10-17  John Foderaro  <jkf@tiger.franz.com>

	* cgi.cl: redo cgi so that it doesn't buffer data... also  
	  can now process standard error from scripts

2001-10-16  John Foderaro  <jkf@tiger.franz.com>
1.2.12
	
>>>	* incompatible change:  the format argument to with-http-body
	  has been moved to with-http-response. 
	  The format argument to with-http-body was ignored, but on
	  with-http-response it will be obeyed and will override
	  the format specified in the entity.
	    
	  The internal generic function compute-strategy now takes
	  three arguments.  This function isn't part of the 
	  external interface to AllegroServe but some users have
	  specialized it.

2001-10-15  John Foderaro  <jkf@tiger.franz.com>

	* add timeout value to each entity object to serve as a default
	  that's checked before the wserver-response-timeout.
	* add a timeout argument to publish functions to set this 
	  entity timeout value.
	* add a publisher argument to publish-directory so users can 
	  control what kind of entity is created when the real file is
	  eventually found.

2001-10-12  John Foderaro  <jkf@tiger.franz.com>

	* using socket stream i/o timeouts in acl6.1
	* moved the *http-response-timeout* to a slot in the wserver
	  object so it can be server dependent.
	* documented timeouts in aserve.html
	* added timeout test to t-aserve.cl but disabled running them
	  by default since they take a long time.

2001-10-10  John Foderaro  <jkf@tiger.franz.com>
1.2.11
	* upgraded support for virtual hosts, introducting
	  an object to denote a virtual host so that each
	  virtual host can do its own logging.
	  See aserve.html for details on Virtual Hosts.

2001-10-08  John Foderaro  <jkf@tiger.franz.com>

	* publish.cl - publish-directory must pass on host info
		to the publish-files that it does.
	            - unpublish takes a :server argument

2001-09-29  John Foderaro  <jkf@tiger.franz.com>

	* cgi.cl - fix bug where content-length was specified wrong

2001-09-21  John Foderaro  <jkf@tiger.franz.com>
1.2.10
	* added ability to run cgi programs
	  new file cgi.cl

2001-09-20  John Foderaro  <jkf@tiger.franz.com>

	* examples/examples.cl - add commentary to some of the links
	to make them clearer

2001-09-20  Kevin Layer  <layer@crikey>

	* makefile: split `clean' into `clean' and `cleanall', the latter
	which removes aserve-src.
	* makefile (clean): add `r' to `rm'

2001-09-18  Kevin Layer  <layer@crikey>
1.2.9

	* makefile: add build and srcdist rules; have make clean remove
	aserve-src
	* load.cl: parameterize make-src-distributions's directory name

2001-09-12  John Foderaro  <jkf@tiger.franz.com>
1.2.8
	* client.cl: add :skip-body to do-http-request. add test for this.
	* decode.cl: fix form-urlencoded-to-query so that it can
		handle a non simple string (which can be returned under
	        certain circumstances from get-request-body)

2001-08-28  John Foderaro  <jkf@tiger.franz.com>
1.2.7
	* take the default value for the external-format
	  argument from *default-aserve-external-format*.  
	  net.aserve:start sets the value of *default-aserve-external-foramt*
	  in worker threads.

	* parse.cl (split-string): don't get confused by commas inside
		a double quoted header parameter value.

2001-08-24  John Foderaro  <jkf@tiger.franz.com>

	*  when an error occurs in the worker thread  print the command line
	   for the request that got the error.

2001-08-16  John Foderaro  <jkf@tiger.franz.com>
1.2.6
	* main.cl - try harder to prevent debug output from multiple
	    threads from getting jumbled up on the console
	* publish.cl - do a keep-alive connection if the data is a binary
	    stream as long as we know the content length.
	    Add a new internal entity type so that returns of 
	    "304 - Not Modified" can do keep alives too.

2001-08-15  John Foderaro  <jkf@tiger.franz.com>
1.2.5
	* main.cl - incf version number for new release

2001-08-09  John Foderaro  <jkf@tiger.franz.com>

	*  publish.cl - added :filter functionality to publish-directory
	*  test/t-aserve.cl - test filters in publish-directory

2001-08-08  John Foderaro  <jkf@tiger.franz.com>

	*  publish.cl - allow list of index files to be specified in
		for each directory-entity.
	    - specify a catch-all compute-response-stream method so 
	      users adding new entity type don't have to do so.

2001-08-08  jkf  <jkf@main.verada.com>

	* publish.cl - fix for when no body is given with-http-body
		and thus a string-output-stream is not created.

2001-07-30    <jkf@DEEDEE>
1.2.4
	* main.cl: fix get-multipart-* to correspond to rfc2046
		and thus it will work with the Opera browser which 
		generates legal (but unusual) kinds of boundary markers

2001-07-19  John Foderaro  <jkf@tiger.franz.com>
1.2.3
	* publish.cl 
	  - If publish-file file is changed then invalidate
	    the cached information on it.
	  - remove extraneous slots in classes.
	    
         * test/t-aserve.cl
	    test cache invaldation in publish-file

2001-07-18    <jkf@CROW>

	* doc/publish.html - update publish-file doc for preload and
	        cache-p args
	* doc/htmlgen.html - make first example clearer
	* doc/tutorial.html - add note to help Windows users

2001-07-18  jkf  <jkf@main.verada.com>

	* publish.cl - add cache-p argument to publish-file which will
	    cache the file contents on first use
	* chat.cl - add support for removing selective private messages
	    after a certain amount of time.
	* test/t-aserve.cl - test cache-p argument to publish-file

2001-07-09  John Foderaro  <jkf@tiger.franz.com>

	* example/chat.cl - add chat transcript feature


2001-06-27  jkf  <jkf@main.verada.com>
1.2.2
	* added the ability to filter requests before they get 
	  processed.  see Request-Filters in aserve.html

2001-06-26  John Foderaro  <jkf@tiger.franz.com>
1.2.1
	* main.cl - don't get blocked on a force-output that will
	    never return due to the other side of the connection 
	    going away.
	* examples/chat.cl - support private chats amoung groups of
	    people.  Support deleting messages. Support levels
	    of users. Support redirecting
	    people at certain IP addresses away from the chat if
	    they cause problems.

2001-06-05  John Foderaro  <jkf@tiger.franz.com>
1.2.0
	* main.cl - update version to 1.2.0 to mark acl 6.1 release.

2001-04-04  John Foderaro  <jkf@tiger.franz.com>

	* changed how publish-directory deals with urls that
	  point to directories and not files.  It used to 
	  pretend that you specified an index.html or index.htm
	  file in that directory.  This was bad since relative urls
	  in the index file would not be processed correctly. with
	  the change it now redirects to the index.html or index.htm
	  file so that the browser knows what it's getting.

2001-03-22  John Foderaro  <jkf@tiger.franz.com>
1.1.41
	* add os-processes argument to net.aserve:start 
	 which causes aserve to fork (on unix only) and create
	 multiple operating system processes listening on the
	 same port.
	

2001-02-08  John Foderaro  <jkf@tiger.franz.com>
1.1.40
	* added the proxy-proxy argument to net.aserve:start that
	  permits you to specify that the allegroserve proxy should
	  sent its requests through another proxy. 

2001-02-06  John Foderaro  <jkf@tiger.franz.com>
1.1.39
	* proxy and scanning fixes

2001-01-22  John Foderaro  <jkf@tiger.franz.com>
1.1.38
	* main.cl: incf version.  Also hooks added for links scanning.

2001-01-18  John Foderaro  <jkf@tiger.franz.com>

	* examples/urian.cl - new international character set demo
	    (reachable from the main aserve examples page)

2001-01-02  jkf  <jkf@main.verada.com>
1.1.37
	* main.cl, proxy.cl - add the ability to save and restore
	 the whole state of the proxy cache. (see docs for start
	 and shutdown in the manual).
    
        * ensure that proxy cache threads are killed off when a shutdown
	  is done.
	
>>>     incompatible change: the net.aserve:shutdown function used to
	take an optional argument.  Now it takes keyword arguments.
	
2000-12-27  John Foderaro  <jkf@tiger.franz.com>
1.1.36
	* client.cl: handle illegal set-cookie headers sent by Netscape's
	  v3 web server.  In a client request Split the single large 
	  Cookie line into muliple Cookie lines so that Netscape's v3
	  web server can understand them.
	  Add a redirect-methods argument to do-http-request to support
	  more user control of redirection.
	* proxy.cl - many enhancements including connection caching

2000-11-06  Kevin Layer  <layer@ultra>
1.1.35
	* log.cl: make logmess a method, so I can define an after method
	on it in my own code
	* main.cl: maybe-universal-time-to-date and
	universal-time-to-date: take time-zone optional argument, so my
	redefined version of log-request can specify the local time zone

2000-10-31  John Foderaro  <jkf@tiger.franz.com>
1.1.34
	* add to the list of characters to escape in form-urlencoding
	  those that must be escaped so that the result can be put
	  in the query string of a uri

	* in proxy code write request and headers in one big block
	  to get around bug in IP redirectors (such as found in www.cbs.com)

2000-10-25  jkf  <jkf@main.verada.com>
1.1.33
	* hooks for link checking and experimenting with caching

2000-10-19  John Foderaro  <jkf@tiger.franz.com>
1.1.32
	* add ssl arguments to net.aserve.start and
	  net.aserve.client:do-http-request so that a secure server
	  can be started and secure http requests can be made.
	  Make the aserve test suite test run though the tests using ssl.
	  Note: the ssl module is only present in certain acl6 distributoins.
	
	* add examples/puzzle.cl  - a demo featuring the use of international
	  characters in acl6.
	
2000-10-15  John Foderaro  <jkf@tiger.franz.com>
1.1.31
	* support caching requests with cookies

2000-10-12  John Foderaro  <jkf@tiger.franz.com>
1.1.30
	*  proxy and cache facilty added.

2000-09-22  Charles A. Cox  <cox@pie>

	* decode.cl: Add :external-format to to uriencode-string.
	* publish.cl: Add :external-format to set-cookie-header.
	* test/t-aserve.cl: Add :external-format tests for
	uri{en,de}code-string.

2000-09-07  Charles A. Cox  <cox@delta>
1.1.29
	
>>>	Note: Many of the functions listed in this log entry have had
	the :external-format argument added.  Documentation has been
	updated

	Note 2:  All changes intended to be upward compatible.  Allegro
	specific changes are marked with #+(and allegro (version>= 6 0)).
	
	*  client.cl: make-http-client-request: add/use external-format
	argument.
	*  decode.cl: uridecode-string, query-to-form-urlencoded,
	encode-form-urlencode, form-urlencoded-to-query: add/use
	external-format argument.
	*  main.cl: with-http-body, request-query: add/use external-format
	argument.
	*  publish.cl: get-cookie-values: add/use external-format
	argument.
	*  examples/examples.cl: Add new international character examples.
	*  test/t-aserve.cl: Add tests for external-format additions.


2000-08-28  John Foderaro  <jkf@tiger.franz.com>
1.1.28
	* client.cl - before doing a redirect close down the existing
	    connection.

2000-08-25  John Foderaro  <jkf@tiger.franz.com>

	* fix bug which caused file descriptors to remain open
	  forever if a "connection reset by peer" error occured.
	  Added the ability to track sockets opened by aserve to
	  ensure that they were closed before being gc'ed away.

2000-08-24  John Foderaro  <jkf@tiger.franz.com>
1.1.27
	* rewrote the get-multipart-xxx functions to use an
	  (unsigned-byte 8) buffer since character buffers have
	  issues with international code.   This eliminates the
	  extra <cr><lf> at the end problem with get-multipart-sequence.
	  The file transfer should be faster, especially if you 
	  pass get-multipart-sequence a 4096 byte (unsigned-byte 8) vector.
	
	  !! Eliminte the raw argument from get-multipart-sequence. Now
	  transfers are all 'raw'
	  If a character array is passed to get-multipart-sequence then
	  we just copy into each character the code-char of the 
	  item in the buffer (which corresponds to the latin1-base
	  external format).  We will allow external-format select
	  soon.
	  

2000-08-21  John Foderaro  <jkf@tiger.franz.com>

	*  add :proxy arg to net.aserve:start so you can enable the proxy
	   when you start the server.
	*  fix test suite to report only legit errors

2000-08-20  jkf  <jkf@main.verada.com>
1.1.26
	*  Added a proxy capability.  enable-proxy will turn it on.
	   Currently it acts an http/1.0 client and server since that
	   makes it easier to debug. However this does cause 12 test
	   set errors to be reported since it expects to see http/1.1
	   responses. 

2000-08-17  jkf  <jkf@main.verada.com>

	*  implement generalized cons-free header parsing and use it
	   in both the client and server.

	* change the header info returned by do-http-request to
	  also use keywords to describe headers
	  !! non upward compatiable change !!

2000-08-15  John Foderaro  <jkf@tiger.franz.com>

	*  fix bug where certain headers were sent twice

2000-08-12  John Foderaro  <jkf@tiger.franz.com>

	*  name headers by keyword symbols rather than strings
	  !! this change is not upward compatible !!
	
    
2000-08-10  John Foderaro  <jkf@tiger.franz.com>
1.1.25
	*  decode.cl: request-query will now convert items in query
	    strings without values into ("keyname" . "") in the resulting
	    alist.
	*  doc/aserve.html - update doc of request-query and 
	   request-query-value to reflect what happens with null valued
	   query elements

2000-08-09  jkf  <jkf@main.verada.com>

	*  publish.cl: write the transfer encoding as all lowercase 'chunked'
	   since a bug in Mozilla M17 means it will only understand this form.
	*  htmlgen/htmlgen.cl - add the <caption> tag

2000-08-04  jkf  <jkf@main.verada.com>
1.1.24
	*  examples/chat.cl - add user logins and private messages 
	        between users.

2000-07-31  jkf  <jkf@main.verada.com>

	*  main.cl: if a multipart-mixed body was being sent then
	    note that the request-body has been grabbed.

2000-07-25  jkf  <jkf@main.verada.com>

	*  example/chat.cl - enhanced to support logging into the chat

2000-07-17  John Foderaro  <jkf@tiger.franz.com>
1.1.22
	
	*  main.cl: incf version 

2000-07-15  John Foderaro  <jkf@tiger.franz.com>

	*  examples/chat.cl - sample program that does web based chat

2000-07-14  John Foderaro  <jkf@tiger.franz.com>

	* client.cl - now do-http-request will always return a uri object
	    (previously it would return its uri arg unless a redirect
             was done in which case it would return a uri object)

2000-07-01  John Foderaro  <jkf@tiger.franz.com>

	* client.cl - handle the "100 continue" response we seem to 
	 get from IIS whenever we do a post.

2000-06-25  jkf  <jkf@main.verada.com>

	* keep track all of all ip addresses by which the server
	  is contacted (this is simpler than trying to figure them
	  out in advance).
	* add function to find a response object given the code.
	* keep track of the raw uri by which a request was made
	  (as distinguished from the uri in which we've added the
	  host and port values).  This is necessary to distriguish
	  when we must proxy.
	* in html-print assume that attribute values are already html escaped

2000-06-12  John Foderaro  <jkf@tiger.franz.com>

	* main.cl: add utility function request-query-value to
		combine getting the query info via request query
		and locating the particular value with assoc

2000-06-08  John Foderaro  <jkf@tiger.franz.com>
1.1.21
	* client.cl - do-http-request: 
	        1. give the redirect arg a numeric
		   value to prevent infinite redirect loops.
	        2. handle two other redirect codes
		3. autoredirect only for get and head
		4. return the uri accessed as the fourth value
	* main.cl - add more response codes
		- handle calls to request-query specifying different
		 uri and post values.
	* examples.cl - add redirect test
	* t-aserve.cl - test redirection
	* doc/aserve.html  - update for changes above
	* doc/tutorial.html - don't be so cookie centric

2000-05-30  John Foderaro  <jkf@tiger.franz.com>
1.1.20
	* macs.cl - add note about where to find the if* macro
	* main.cl - cache result of get-request-body so that it can
		    safely be called more than once inside a response
	            function.   Also be sure to call get-request-body 
	            if the connection is keep-alive and there might 
	            be a body following the headers.
	* t-aserve.cl - test enhancment to get-request-body
	* doc/aserve.html - fix do-http-request documentation to
	            reflect change made in 1.1.18
	            

	
Fri May 26 22:42:12 PST 2000  Duane Rettig  <duane@beta>
1.1.19
	* makefile: set SHELL variable
	* main.cl: incf version
	
2000-05-16  John Foderaro  <jkf@tiger.franz.com>
1.1.18	
	* ! Non upward-compatiable change ! - the function
	   do-http-request returns arguments in a different
	   order, it now returns the body value first, then the
	   response code and then the headers.
	* fixed bug in publish-directory (sourceforge bug 105426)
	* added query and content-type arguments to do-http-request
	  and make-http-client-request.  These make it even easier
	  to send form data to web servers
	
	
2000-05-16  John Foderaro  <jkf@tiger.franz.com>
1.1.17


	* in order to make portions of the LGPL license meaningful
	  for a Lisp program we've added a prequel to the license
	  agreement in the file license-allegroserve.txt.

2000-05-16  jkf  <jkf@main.verada.com>

	* client.cl
	  - increase header reading buffer size - but we should
	    make this growable.
	  - handle cookies with = signs embedded
	* decode.cl 
	  - in query-to-form-urlencoded all the values to
	    be non-strings and in that case use ~a format to stringify them
        * parse.cl 
	  - add arg to utility function
	
2000-05-04  John Foderaro  <jkf@tiger.franz.com>
1.1.16
	* request-query can now read from uri and/or post'ed body
	  see doc/aserve.html for details

2000-04-26  John Foderaro  <jkf@tiger.franz.com>
1.1.15
	* ! Non upward-compatible change ! -- the function
	    decode-form-urlencoded has been renamed
	    form-urlencoded-to-query so as to match its new inverse
	    function: query-to-form-urlencoded

	* added query-to-form-urlencoded to allow one to encode
	  query to strings for use by client code.

2000-04-24  John Foderaro  <jkf@tiger.franz.com>
1.1.14
	* verify that it works in acl501 trial (Linux)

2000-04-24    <jkf@CROW>

	* load.cl: make aServe load in acl5.0.1 Lite (Windows) but
	   be advised that it doesn't work very well due to socket
	   problems that can be patched in the Lite version.

	* main.cl: the default timeout for a with-http-response
		now comes from *http-response-timeout* and it
		now defaults to 120 seconds rather than 60.
	
	* some documention updates

2000-04-23  jkf  <jkf@main.verada.com>

	* client.cl - added proxy argument so that client requests
	    can go through a proxy
	* various doc fixes

2000-04-17  John Foderaro  <jkf@tiger.franz.com>
1.1.13
	* rename Allegro iServe to AllegroServe.
	  As a result where iserve was used before we now use aserve.
	  For example the package is now called net.aserve.


2000-04-17  John Foderaro  <jkf@tiger.franz.com>
1.1.12

	* add test/t-iserve.cl to the list of files in the ftp distribution

2000-04-16    <jkf@DEEDEE>

	* debug-on and debug-off are no longer exported symbols.
	  They continue to exist but you have to use
          net.iserve::debug-on and net.iserve::debug-off to reach them.

	* added two new response type symbols to aid in doing redirections:
	    *response-moved-permanently*
	    *response-temporary-redirect*
	  note that netscape 4 doesn't understand *response-temporary-redirect*
          as that's a http/1.1 thing.
	
	* request-query takes a :handle-post keyword arguments.  When true
	  (and that's the default) it will automatically read,
	  extract, parse and cache the query string from the entity body
	  when the request is a post request.
	  
2000-03-28  John Foderaro  <jkf@tiger.franz.com>

	* move htmlgen.html from htmlgen/ to doc/ so that it's in
	  a consistent place regardless of distribution type.

2000-04-08    <jkf@DEEDEE>
1.1.11
	* make the debugging output feature based rather than
	  numeric. see  net.iserve:debug-on
	* properly do client queries
	* use setfable reply-header-slot-value to read and set 
	  headers for the reply that will be sent
	* always send back HTTP/1.1 as our protocol

	
2000-03-27  John Foderaro  <jkf@tiger.franz.com>
1.1.10
	* add headers argument to do-http-request and make-http-client-request
	  to allow you to add headers
	* fix client requests for :head so it doesn't wait for a body
	  to be returned
	* fix debugging output when running inside emacs
	* add client info to documentation.
	
2000-03-27  John Foderaro  <jkf@tiger.franz.com>
1.1.9

	* mainly documentation fixes

2000-03-22  John Foderaro  <jkf@tiger.franz.com>
1.1.8
	* fix http/0.9 processing
	
	* make errors in http worker threads, if uncaught (see below)
	  and if the emacs-lisp interface is running, cause a new
	  emacs window to appear in which you can debug the problem
	
	* add net.iserve::*trap-errors* (default t).  If set to
	  nil then errors in http processing by iserve will result
	  in error break loops.

	* fixed errors in publish-directory.  Also prevent user from
	passing ../ in urls to access above the published directory
	
2000-03-22  John Foderaro  <jkf@tiger.franz.com>
1.1.7
	* make initial lisp listerner of standalone version sleep
	  so that the process can be put in the background.
	* add t-iserve.cl and begin to add automated tests
	* add cookies and authorization to client module
	* load client module into iserve
	
2000-03-20  John Foderaro  <jkf@tiger.franz.com>
1.1.6
	* convert references to neo to iserve
	* minor fixups in tutorial
	
2000-03-20  John Foderaro  <jkf@tiger.franz.com>
1.1.5
	* include iservelogo.gif in the ftp distribution
	* fix problem where the response to a file entity request
	  for a file that doesn't exist would cause browser to hang
	  until the socket was closed

2000-03-17  John Foderaro  <jkf@tiger.franz.com>
1.1.4
	* change source-readme.txt and load.cl so that
	  it will build on Windows without the unix tools

*******************************************************************************
join from acl50 branch
- cvs command: cvs update -d -j acl50
- next merge tag: acl50_merge2
*******************************************************************************

2000-03-15  John Foderaro  <jkf@tiger.franz.com>
1.1.3
	* switch to lgpl license.  
	* add source-readme.txt to describe what to do with
	  the source

2000-03-14  John Foderaro  <jkf@tiger.franz.com>
1.1.2
	* add authorizer objects to support checking for valid
	  access to pages

2000-03-07  John Foderaro  <jkf@tiger.franz.com>
1.1.1
	* load.cl - lisp need not be in the directory containing this
	  file in order to load it (and iserve)
	* main.cl - get-request-body will not get fooled by :get requests
	* publish.cl - make virtual hosts work for prefix handlers
	* doc/iserve.html - update to describe :remove arg to pubilsh
          functions
	* doc/tutorial.html - lots more added
	* examples/tutorial.cl - add sample methods

2000-03-02  jkf  <jkf@main.verada.com>

	*  added setuid, setgid args to start
	*  changed the names of the worker processes
	*  changed the names of the slots and accessors holding the
	   commonly used request header info
	*  allowed the :host arg to publish to be a list of host names
	*  for publish-file compute the content-type automatically if
	   not provided

2000-02-25  John Foderaro  <jkf@tiger.franz.com>

	* added code to the examples so that the pubished url
	 handlers will find the files they reference (if any)
	 no matter what the current directory is when the examples
	 file is loaded.

2000-02-18  John Foderaro  <jkf@tiger.franz.com>

	* moved examples and doc to their own directories

2000-02-08  John Foderaro  <jkf@tiger.franz.com>
1.1.0
	renamed neo to Allegro iServe
	changed neo package to net.iserve
	changed htmlgen package to net.html.generator
	
2000-02-08  John Foderaro  <jkf@tiger.franz.com>
1.0.9

	* main.cl - added exports
	* examples.cl - show how to publish a generated jpg file
	* neo.html - more documentation

2000-01-28  John Foderaro  <jkf@tiger.franz.com>
1.0.8
	* renamed accessors 

2000-01-25  John Foderaro  <jkf@tiger.franz.com>

	* partially added logging

2000-01-25  jkf  <jkf@main.verada.com>

	* use uri package 

2000-01-18  John Foderaro  <jkf@tiger.franz.com>
1.0.7
	* changed :url to :path in the publish functions
	* added a locator class to expose the search for a matching
	  entity

2000-01-11  John Foderaro  <jkf@tiger.franz.com>

	* document accessors.
	  get timedout-response working

1999-12-15  John Foderaro  <jkf@tiger.franz.com>
1.0.6
	* cookie support added and documented

1999-12-14  jkf  <jkf@main.verada.com>

	*  added new file decode.cl to hold all decode/encode functions

1999-12-11  John Foderaro  <jkf@tiger.franz.com>
1.0.5
	*  add shutdown command

1999-12-02  John Foderaro  <jkf@tiger.franz.com>
1.0.4
	*  do case insensitive comparison of mime separation strings.
	   It may not be necessary but it seemed to be for IE.

1999-11-02  John Foderaro  <jkf@tiger.franz.com>
1.0.3
	*  fixed chunking output calls so it works again

1999-10-15  jkf  <jkf@main.verada.com>
1.0.2	

	*  added multipart info grabbing and updated the documentatoin

1999-10-13  John Foderaro  <jkf@tiger.franz.com>
1.0.1
	*  start changelog
