1999-04-12   Gisle Aas <gisle@aas.no>

   Release alpha-0.24

   "LWPng patch to work with URI" from Blair Zajac <bzajac@geostaff.com>.

1998-07-07   Gisle Aas <aas@sn.no>

   Release alpha-0.23

   Introduced LWP::Request->new_response method.  This method is
   used to fabricate all new response objects.  It means that a LWP::Request
   subclasses can now override the response class to make.

   LWP::Request->gen_response renamed as LWP::Request->give_response.

   LWP::Conn::_Connect was missing the activate() and stop() methods
   that the manager could invoke.

1998-07-05   Gisle Aas <aas@sn.no>

   Release alpha-0.22

   LWP::Conn::FILE now works on systems where getpwuid() and getgrgid()
   do not (i.e. WinNT).  Patch by Blair Zajac <blair@gps.caltech.edu>.

   LWP::Conn::HTTP and LWP::Conn::FTP now use LWP::Conn::_Connect to
   to the connection establishment.

   LWP::Conn::_Connect really works now (I think!)

   The IO::EINPROGRESS hack is now more forgiving.  This hopefully means
   that we work on WinNT too.

1998-06-27   Gisle Aas <aas@sn.no>

   Release alpha-0.21

   Applied patches by Blair Zajac <blair@gps.caltech.edu>.
   Use the POSIX module to obtain EINPROGRESS unless you have a IO
   module that already support this.  Avoid some undef warnings.

1998-04-29   Gisle Aas <aas@sn.no>

   Release alpha-0.20

   LWP::Conn::FTP should work pretty well by now.  We support HEAD,
   GET, PUT, DELETE and TRACE methods.

   LWP::Authen had not been updated to newest URI::Attr interface

   LWP::EventLoop->activity can be used to avoid having a socket
   time out even when there isn't really any activity going on.
   Needed because the FTP command socket can be non-active for
   long periods of time.

1998-04-28   Gisle Aas <aas@sn.no>

   Release alpha-0.19

   LWP::Conn::FTP implementation started.

1998-04-24   Gisle Aas <aas@sn.no>

   Release alpha-0.18

   lib/LWP/Authen.pm had fallen out of MANIFEST

   Introduced LWP::Version (a single place to obtain the library version
   number from.)

   Fixed some tests that failed.

1998-04-23   Gisle Aas <aas@sn.no>

   Release alpha-0.17

   Splitting LWP::UA => LWP::UA::Cookies, LWP::UA::Proxy, LWP::Authen

   LWP::UA interface update
      - $ua->conn_param gone
      - $ua->response_received only collects now
      - $ua->request method

   Collecting debugging as_string() methods in LWP::Dump

   LWP::Request callback when sending of the request starts

   LWP::Server deregister itself when the last connection is gone.

   All persistent parameters in URI::Attr.  LWP::UA now have methods
   to access it.

   URI::Attr->p_attr method changed name to 'attr_plain'.

   bot/* application

1998-04-20   Gisle Aas <aas@sn.no>

   Release alpha-0.16

   Getting rid of some unconditional debug printouts.

   LWP::EventLoop->one_event and LWP::EventLoop->run now both take
   an optional timeout argument.

   Added some documentation to a few modules: LWP::EventLoop, LWP::MainLoop,
   LWP::Sink, URI::Attr, LWP::Conn

1998-04-07   Gisle Aas <aas@sn.no>

   Release alpha-0.15

   LWP::Conn::HTTP: If a request have a Connection: header with the
   "close" token, then always make it the last request on this

   LWP::Conn::HTTP: If the server sends a "Connection: close" header
   then inhibit further pipelining.

   Automatically retry non-first request on a connection if the server
   closes the connection without sending any response.

   Improved the scheduler.  It could previously create too many
   connections.  It now also tries to activate existing connections
   if we have queued requests.

   LWP::Conn::HTTP: will emulate IO::Handle->blocking if you use
   older versions of the IO modules and you have working fcntl().
   This means that we now always use non-blocking sockets.

1998-04-06   Gisle Aas <aas@sn.no>

   Release alpha-0.14

   Added LWP::Authen::digest, but it still needs some tweaking.

   LWP::Conn::HTTP now supports dynamic request content, which is
   triggered by letting the request->content() be a CODE reference.

   LWP::Conn::HTTP now supports '101 Swithing protocol' responses.
   The socket connection is returned as an (unofficial) attribute
   of the HTTP::Response object.

   Updated the 'News' file some.

1998-04-01   Gisle Aas <aas@sn.no>

   Release alpha-0.13

   Moved redirect handling and authentication handling to separate
   modules:  LWP::Redirect and LWP::Authen

   New interface for specific authentication handlers.  Renamed
   LWP::Authen::BASIC to LWP::Authen::basic.

   Automatic setup of Authorization and Proxy-Authorization headers
   based on earlier logins after 401/407 responses.

   Set Date header in requests that have content.

   term-ua can ask for login information now.  It prints a prompt.
   Command to evaluate perl code.  Help command.

   A response handler can now abort processing of other response
   handlers by returning the string "ABORT".

   The "request" hook in the LWP::UA has been renamed "spool_request"
   and we have inverted the value returned to signal that the request
   has been handeled.

   More compact dumping of the URI::Attr object state.

   LWP::Conn::HTTP now make sure that $req->response_done() is called
   as the last thing in the event handler routine.  This allows it to
   not return immediately, for instance because a handler ask the
   human user about how to proceed.

   The 'authd' test daemon.

1998-03-30   Gisle Aas <aas@sn.no>

   Release alpha-0.12

   Will now copy response_handler hooks when making a clone of a
   LWP::Request object.

   Handle "300 Multiple Choices" as 302 if a Location header is
   found in the response.

   LWP::Server will now automatically create a new connection if
   the last connection is closed and we still have requests to do.

   LWP::UA::setup_proxy returned wrong value when a proxy was already
   set up.

   LWP::Conn::HTTP always overwrite the request TE header now.

   LWP::Sink::_Pipe instead of LWP::Sink::_trans.  push() instead
   of append().

   LWP::Sink::identity can buffer data now.

   Implemented LWP::Sink::Buffer and LWP::Sink::qp.

1998-03-26   Gisle Aas <aas@sn.no>

   Release alpha-0.11

   Added the testd/* daemon that makes it easy to generate various
   responses in order to test HTTP client libraries.

   Support chained transfer encodings.  deflate/base64/rot13/identity.

   We had an infinite loop if a chunk header happened to be divided on
   the wire.

   LWP::Sink::identity should not close its sink if it was a CODE

1998-03-25   Gisle Aas <aas@sn.no>

   Release alpha-0.10

   Added LWP::Sink modules.  Plan is to use them to implement stacked
   transfer encodings and stuff like that.

   LWP::Conn::HTTP beginning to support the TE header.

   LWP::Conn::HTTP skip all 1xx responses.

1998-03-23   Gisle Aas <aas@sn.no>

   Release alpha-0.09

   More experiments with hooks, also for LWP::Requests.  New module
   LWP::Hooks which both LWP::UA and LWP::Request inherit from.
   Both redirect and authentication handled by hooks.
   Renamed $server->status to $server->c_status.
   Implemented $ua->cookie_jar

1998-03-19   Gisle Aas <aas@sn.no>

   Release alpha-0.08

   Updated documentation ('News')

   LWP::Request::clone also copies flags now

   Renamed LWP::Request::done() to LWP::Request::response_done()

   LWP::Server maintains 'created', 'request_count', 'last_request_time'

   LWP::Conn::FILE support the ETag header and corresponding If-headers.

   LWP::Conn::HTTP did not stop after the first successful connect to
   a multihomed site.

   LWP::Conn::HTTP would not honor the protocol version if specified in
   the LWP::Request.  We also add a 'Connection: close' header for the
   last request sent on a connection.

   Allow LWP::Request response_data() to die in order to signal that the
   connection should be broken.

1998-03-18   Gisle Aas <aas@sn.no>

   Release alpha-0.07

   Introduced LWP::StdSched, LWP::Request, URI::Attr classes.

   Implement file:/... access.  (LWP::Conn::FILE)

   Started to write some documentation (the 'News' file).

   Made $ua->spool more robust in case of bad request.  Ensure that
   all requests get a response_done() callback.

   Introduced 'term-ua'

   LWP::EventLoop will protect timer callbacks with eval { ... }

   Various tweaks and additions to LWP::UA/LWP::Server

       - died when gethostbyname() failed
       - did not set $idle_timeout on startup in Idle mode
       - would call pushback with 0 request on error.
       - changed error code (now use 591)
       - zap requests queue if the Connect state result in error
       - callbacks to Mgr when going active/idle
       - introduce Closed state

1998-03-13   Gisle Aas <aas@sn.no>

   Release alpha-0.04

   After a long period of ignoring it I once again started to work
   on LWP-ng.  Made the LWP::UA and LWP::Server class working again.

1997-12-11   Gisle Aas <aas@sn.no>

   Release alpha-0.03

   Minor changes since 0.01.  Some testing scripts.  Renaming
   of connection class to LWP::Conn::HTTP.

1997-11-26   Gisle Aas <aas@sn.no>

   Release alpha-0.01

   The start of this project.  Basic implementation of LWP::EventLoop
   and LWP::HConn finished.