Calculation of current_age with missing Client-Date.
[libwww-perl-eserte.git] / Changes
blob1489668043fa37b7c08e240f2ef67b0729b3bc52
1 _______________________________________________________________________________
2 2008-10-20  Release 5.819
4 Release 5.815 to 5.818 had a severe bug that sometimes made LWP not
5 collect all data for the responses it received.  This release is
6 strongly recommended as an upgrade for those releases.
9 Gisle Aas (2):
10       Don't override $Net::HTTPS::SSL_SOCKET_CLASS if it's already set.
11       Wrong content handlers would sometimes be skipped [RT#40187]
14 _______________________________________________________________________________
15 2008-10-16  Release 5.818
17 Main news in this release is the addition of the dump() method to the
18 request and response objects.  If found that I often ended up printing
19 $resp->as_string for debugging and then regretting after the terminal
20 got into a strange mode or just kept on scrolling for the longest
21 time.
24 Gisle Aas (8):
25       Use deflate compression instead of gzip for the test
26       Simplify; Get rid of the $USE_STORABLE_DCLONE configuration
27       Add dump method to HTTP::Message.
28       Use $res->dump instead of rolling our own.
29       Layout change; move headers() methods to a more logical place.
30       Add support for x-bzip2 encoding; fix bzip2 decoding.
31       Add send_header method to HTTP::Daemon
32       Make the lwp-request User-Agent string include the LWP version.
34 Slaven Rezic (1):
35       clone implemented in terms of Storable::dclone [RT#39611]
38 _______________________________________________________________________________
39 2008-10-10  Release 5.817
41 This is the release where I played around with Devel::NYTProf to
42 figure where time was actually spent during the processing of requests
43 with LWP.  The methods that manipulated header objects stood out, so
44 this release contains a few tweaks to make those parts faster.
46 I also figured a few convenience methods to encode and decode the
47 content of request/response objects would be in order.
50 Gisle Aas (16):
51       Should store "wire" headers field names with _ without translation.
52       Test HTTP::Request->parse().
53       Restore pre-5.815 behaviour of returning "400 Bad Request" [RT#39694]
54       Rename the HTTP::Status constants to have HTTP_ prefix
55       Detection of unsupported schemes was broken [RT#37637]
56       Allow tainted methods to be forwarded to HTTP::Headers [RT#38736]
57       Add strict mode to HTML::Form
58       Fix test now that less warnings are generated.
59       Add content_is_xml method
60       Make split_header_words() lower case returned tokens/keys
61       Avoid invoking AUTOLOAD on object destruction [RT#39852]
62       Add decode() method to HTTP::Message
63       Add encode() method to HTTP::Message
64       Allow multiple fields to be set with push_header().
65       Make content_type and content_is_xhtml methods faster
66       Faster push_header()
69 _______________________________________________________________________________
70 2008-09-29  Release 5.816
72 Oops, release 5.815 broke download-to-file on Windows.
75 Gisle Aas (2):
76       Add missing binmode() [RT#39668]
77       Doc tweaks
80 _______________________________________________________________________________
81 2008-09-24  Release 5.815
83 The main change this time is the introduction of handlers to drive the
84 processing of requests in LWP::UserAgent.  You can also register your
85 own handlers for modifying and processing requests or responses on
86 their way, which I think is a much more flexible approach that trying
87 to subclass LWP::UserAgent to customize it.  If we have had these
88 early on then the LWP::UserAgent API could have been so much simpler
89 as the effect of most current attributes can easily be set up with
90 trivial handlers.
92 Also thanks to contributions by Bron Gondwana LWP's Basic/Digest
93 authenticate modules now registers handlers which allow them to
94 automatically fill in the Authorization headers without first taking
95 the round-trip of a 401 response when LWP knows the credentials for a
96 given realm.
99 Gisle Aas (23):
100       We don't need to build the docs to run the tests.
101       Style tweaks.
102       The jigsaw service isn't up to much good these days.
103       HTTP::Cookies produces warnings for undefined cookie param names [RT#38480]
104       Typo fix; HTTP::Message will never include x-bzip2 in Accept-Encoding [RT#38617]
105       Added HTTP::Config module
106       Add methods to configure processing handlers.
107       100 Continue response not complete.
108       Use 3-arg open when response content to files.
109       Make the show_progress attribute official (by documenting it).
110       Start using handlers for driving the inner logic of LWP::UserAgent.
111       Expose the content_is_html and content_is_xhtml methods from HTTP::Headers.
112       Make credentials method able to get/set values.
113       An auth handler per realm.
114       Match proxy setting for request.
115       Set up separate handler for adding proxy authentication.
116       Add request_preprepare to be able to initialize proxy early enough.
117       Smarter get_my_handler() that can also create handlers.
118       Refactor; introduce run_handlers method
119       Pass in handler hash to the handler callback.
120       Don't let version=1 override behaviour if specified with a plan Set-Cookie header.
121       Remove handler when we don't have a username/password for the realm.
122       Make tests use Test.pm
124 Bron Gondwana (2):
125       Double-check that username or password has changed after a failed login.
126       Update Digest Authen to subclass Basic.
128 Ondrej Hanak (1):
129       Avoid running out of filehandles with DYNAMIC_FILE_UPLOAD.
131 Todd Lipcon (1):
132       Fixed parsing of header values starting with ':' [RT#39367]
134 amire80 (1):
135       Documentation typo fixes [RT#38203]
138 _______________________________________________________________________________
139 2008-07-25  Release 5.814
141 Gisle Aas (13):
142       Typo fix.
143       Add HTTP::Message::decodable()
144       Use decoded_content in the synposis
145       Avoid adding an empty first part in $mess->add_part()
146       Get rid of all the manual dependency tests.
147       Simplify the Makefile.PL (no interactivity)
148       Provide DELETE method in HTTP::Request::Common [RT#37481]
149       Checkbox picks up nearby text in description of alternates [RT#36771]
150       HTML::Form::possible_values() should not returned disabled values [RT#35248]
151       File::Listing documentation claimed only 'unix' format was supported [RT#22021]
152       File::Listing only support English locales [RT#28879]
153       Make common-req.t use Test.pm
154       Typo; CAN_TALK_TO_OUTSELF
156 Bill Mann (1):
157       Fix up File::Listings fallback to dosftp [RT#23540]
159 Hans-H. Froehlich (1):
160       File::Listing parse failure on BSD Linux based systems [RT#26724]
163 _______________________________________________________________________________
164 2008-06-17  Release 5.813
166 Ville Skytta (3):
167       RobotUA constructor ignores delay, use_sleep [RT#35456]
168       Spelling fixes [RT#35457]
169       Add HTTP::Response->filename [RT#35458]
171 Mark Stosberg (2):
172       Better diagnostics when the HTML::TokeParser constructor fails [RT#35607]
173       Multiple forms with same-named <select> parse wrongly [RT#35607]
175 Gisle Aas (1):
176       Provide a progress method that does something that might be useful.
178 Spiros Denaxas (1):
179       Documentation typo fix [RT#36132]
182 _______________________________________________________________________________
183 2008-04-16  Release 5.812
185 Gisle Aas (6):
186       Typo fix.
187       Simplified Net::HTTP::Methods constructor call.
188       Croak if Net::HTTP constructor called with no argument.
189       Avoid calling $self->peerport to figure out what the port is.
190       5.811 breaks SSL requests [RT#35090]
191       Make test suite compatible with perl-5.6.1.
193 Toru Yamaguchi (1):
194       Wrong treatment of qop value in Digest Authentication [RT#35055]
197 _______________________________________________________________________________
198 2008-04-14  Release 5.811
200 Gisle Aas (6):
201       Avoid "used only once" warning for $Config::Config.
202       Make HTTP::Request::Common::PUT set Content-Length header [RT#34772]
203       Added the add_content_utf8 method to HTTP::Message.
204       Typo fix.
205       Retry syscalls when they fail with EINTR or EAGAIN [RT#34093,32356]
206       Allow HTTP::Content content that can be downgraded to bytes.
208 Gavin Peters (1):
209       HTML::Form does not recognise multiple select items with same name [RT#18993]
211 Mark Stosberg (1):
212       Document how HTTP::Status codes correspond to the classification functions [RT#20819]
214 Robert Stone (1):
215       Allow 100, 204, 304 responses to have content [RT#17907]
217 sasao (1):
218       HTTP::Request::Common::POST suppressed filename="0" in Content-Disposition [RT#18887]
221 _______________________________________________________________________________
222 2008-04-08  Release 5.810
224 Gisle Aas (10):
225       Small documentation issues [RT#31346]
226       Explain $netloc argument to $ua->credentials [RT#31969]
227       Make lwp-request honour option -b while dumping links [RT#31347]
228       Ignore params for date convenience methods [RT#30579]
229       Get rid of all the old CVS $Keyword:...$ templates.  Set $VERSION to 5.810.
230       Update Copyright year.
231       Drop some sample URLs that were failing.
232       Complement the HTTP::Status codes [RT#29619]
233       Don't allow HTTP::Message content to be set to Unicode strings.
234       Refactor test for Encode.pm
236 Ville Skytta (3):
237       Spelling fixes [RT#33272]
238       Trigger HTML::HeadParser for XHTML [RT#33271]
239       Escape status line in error_as_HTML, convert to lowercase [RT#33270]
241 Alexey Tourbin (2):
242       Typo fix [RT#33843]
243       Protocol/file.pm: postpone load of URI::Escape and HTML::Entities [RT#33842]
245 Daniel Hedlund (1):
246       HTML::Form Module and <button> element clicks
248 Adam Kennedy (1):
249       HTTP::Cookies handle malformed empty Set-Cookie badly [RT#29401]
251 Jacob J (1):
252       [HTTP::Request::Common] Does not handle filenames containing " [RT#30538]
254 Rolf Grossmann (1):
255       Allow malformed chars in $mess->decoded_content [RT#17368]
257 FWILES (1):
258       Croak if LWP::UserAgent is constructed with hash ref as argument [RT#28597]
260 Adam Sjogren (1):
261       Disabled, checked radiobutton being submitted [RT#33512]
263 DAVIDRW (1):
264       warn if TextInput's maxlength exceeded [RT#32239]
267 _______________________________________________________________________________
268 2007-08-05   Gisle Aas <gisle@ActiveState.com>
270     Release 5.808
271      
272     Get rid of t/live/validator test.  Too much JavaScript madness
273     for it to be a sane LWP test.
277 2007-07-31   Gisle Aas <gisle@ActiveState.com>
279     Release 5.807
280      
281     Apply patch correction from CPAN RT #26152
283     More laxed t/live/validator test.
287 2007-07-19   Gisle Aas <gisle@ActiveState.com>
289     Release 5.806
291     Added progress callback to LWP::UserAgent.
292      
293     HTTP::Daemon didn't avoid content in responses to HEAD requests
295     Add support for HTTP Expect header to HTTP::Daemon (CPAN RT #27933)
297     Fix t/base/message.t so tests are skipped if Encode is not
298     installed.  (CPAN RT #25286)
300     Add HTML::Tagset as a prerequisite to Makefile.PL
302     Do not clobber $_ in LWP::Protocol::nntp (CPAN RT #25132)
304     Fix lwp-download so it can download files with an "_" in the filename
305         (CPAN RT#26207)
307     Quiet complaints from HTML::HeadParser when dealing with undecoded
308     UTF-8 data.  (CPAN RT#20274)
310     When both IO::Socket::SSL and Net::SSL are loaded, use the latter
311         (CPAN RT #26152)
313     Allows SSL to work much more reliably:
314         (CPAN RT #23372)
316     Allow text/vnd.wap.wml and application/vnd.oasis.opendocument.text
317         in content-type field in lwp-request (CPAN RT #26151)
319     Add default media type for XML in LWP::MediaTypes (CPAN RT #21093)
320      
321     Added chunked test by Andreas J. Koenig
325 2005-12-08   Gisle Aas <gisle@ActiveState.com>
327     Release 5.805
329     HTTP::Date: The str2time function returned wrong values for
330     years in the early 20th century, because timelocal() actually
331     expects the year to be provided on a different scale than what
332     localtime() returns.
334     HTTP::Headers can now be constructed with field names that repeat.
335     The $h->header function now also accept repeating field
336     names and can also remove headers if passed undef as value.
338     HTML::Form: The parse method now takes hash style optional
339     arguments and the old verbose behaviour is now off by default.
340     
341     HTML::Form: Accept <select multiple=""> for compatibilty with
342     other browsers.  Patch by Josh Rai <josh@rai.name>.
344     HTML::Form: Sane handling of 'disabled' for ListInput.
345     Based on patch by Joao Lopes <developer@st3tailor.com.br>.
347     HTTP::Negotiate: Fixed matching of partial language tags.
348     Patch contributed by Dan Kubb.
350     HTTP::Response: The as_string method now returns a status line
351     that doesn't add the "official" code name in the message
352     field.  This improves the ability to round-trip response objects
353     via HTTP::Response->parse($res->as_string) and makes the first
354     line of the string returned agree with $res->status_line.
356     Net::HTTP: The host attribute can now be set undef in
357     order to suppress this header for HTTP/1.0 requests.
359     Net::HTTP: The default Host: header does not include the
360     port number if it is the default (80 for plain HTTP). Some
361     servers get confused by this.
363     Net::HTTP: Ignore bogus Content-Length headers. Don't get
364     confused by leading or trailing whitespace.
366     LWP::Protocol::http: More efficient sending of small PUT/POST
367     requests by trying harder to pass off the whole request in a
368     single call to syswrite.
370     lwp-request now give better error messages if you used the 
371     -o option without having the HTML-Tree distribution installed.
372     Also document this dependency.
376 2005-12-06   Gisle Aas <gisle@ActiveState.com>
378     Release 5.804
380     HTTP::Message->parse did not work when the first line of the body
381     was something that looked like a header.
383     HTTP::Header::Auth needs HTTP::Headers to be loaded before
384     it replace its functions.
386     LWP::Protocol::nntp improvements by Ville Skyttä <ville.skytta@iki.fi>:
387      - Support the nntp: scheme.
388      - Support hostname in news: and nntp: URIs.
389      - Close connection and preserve headers also in non-OK responses.
390      - HEAD support for URIs identifying a newsgroup.
391      - Comment spelling fixes.
393     Fix quotes in Net::HTTP example.
394     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=283916
396     Detect EOF when expecting a chunk header.  Should address the
397     warnings shown in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286775
399     WWW::RobotRules: Improved parsing of not strictly valid robots.txt files
400     contributed by <Matthew.van.Eerde@hbinc.com>.
402     Makefile.PL: Set name to LWP so that the .packlist ends up in the
403     expected place.
407 2004-12-11   Gisle Aas <gisle@ActiveState.com>
409     Release 5.803
411     HTTP::Message: $mess->decoded_content sometimes had the side
412     effect of destroying $mess->content.
414     HTTP::Message: $mess->decoded_content failed for
415     "Content-Encoding: deflate" if the content was not in the
416     zlib-format as specified for the HTTP protocol.  Microsoft got
417     this wrong, so we have to support raw deflate bytes as well.
419     HTTP::Response->parse don't require the protocol to be
420     specified any more.  This allows HTTP::Response->parse($resp->as_string)
421     to round-trip.  Patch by Harald Joerg <haj@oook.m.uunet.de>.
423     HTTP::Response: $resp->base might now return undef.  Previously
424     it would croak if there was no associated request.  Based on
425     patch by Harald Joerg <haj@oook.m.uunet.de>.
427     HTML::Form now support <label> for check- and radio boxes.
428     Patch contributed by Dan Kubb <dan.kubb@onautopilot.com>.
430     Make HTTP::Daemon subclassable, patch by Kees Cook <kees@osdl.org>.
432     lwp-download allow directory to save into to be specified.
433     Patch by Radoslaw Zielinski <radek@karnet.pl>.
435     lwp-download will validate filename derived from server
436     controlled data and will fail if something looks not
437     quite right.
439   
441 2004-11-30   Gisle Aas <gisle@ActiveState.com>
443     Release 5.802
445     The HTTP::Message object now have a decoded_content() method.
446     This will return the content after any Content-Encodings and
447     charsets has been decoded.
449     Compress::Zlib is now a prerequisite module.
451     HTTP::Request::Common: The POST() function created an invalid
452     Content-Type header for file uploads with no parameters.
454     Net::HTTP: Allow Transfer-Encoding with trailing whitespace.
455     <http://rt.cpan.org/Ticket/Display.html?id=3929>
457     Net::HTTP: Don't allow empty content to be treated as a valid
458     HTTP/0.9 response.
459     <http://rt.cpan.org/Ticket/Display.html?id=4581>
460     <http://rt.cpan.org/Ticket/Display.html?id=6883>
462     File::Protocol::file: Fixup directory links in HTML generated
463     for directories.  Patch by Moshe Kaminsky <kaminsky@math.huji.ac.il>.
465     Makefile.PL will try to discover misconfigured systems that
466     can't talk to themselves and disable tests that depend on this.
468     Makefile.PL will now default to 'n' when asking about whether
469     to install the "GET", "HEAD", "POST" programs.  There has been
470     too many name clashes with these common names.
474 2004-11-12   Gisle Aas <gisle@ActiveState.com>
476     Release 5.801
478     HTTP::Message improved content/content_ref interaction.  Fixes
479     DYNAMIC_FILE_UPLOAD and other uses of code content in requests.
481     HTML::Form:
482       - Handle clicking on nameless image.
483       - Don't let $form->click invoke a disabled submit button.
485     HTTP::Cookies could not handle a "old-style" cookie named
486     "Expires".
488     HTTP::Headers work-around for thread safety issue in perl <= 5.8.4.
490     HTTP::Request::Common improved documentation.
492     LWP::Protocol: Check that we can write to the file specified in
493     $ua->request(..., $file) or $ua->mirror.
495     LWP::UserAgent clone() dies if proxy was not set.  Patch by
496     Andy Lester <andy@petdance.com>
498     HTTP::Methods now avoid "use of uninitialized"-warning when server
499     replies with incomplete status line.
501     lwp-download will now actually tell you why it aborts if it runs
502     out of disk space of fails to write some other way.
504     WWW::RobotRules: only display warning when running under 'perl -w'
505     and show which robots.txt file they correspond to.  Based on
506     patch by Bill Moseley.
508     WWW::RobotRules: Don't empty cache when agent() is called if the
509     agent name does not change.  Patch by Ville Skyttä <ville.skytta@iki.fi>.
513 2004-06-16   Gisle Aas <gisle@ActiveState.com>
515     Release 5.800
517     HTML::Form will allow individual menu entries to be disabled.
518     This was needed to support <input type=radio disabled value=foo>
519     and <select><option disabled>foo.
521     HTML::Form now avoids name clashes between the <select> and
522     <option> attributes.
524     HTML::Form now implicitly close <select> elements when it sees
525     another input or </form>.  This is closer to the MSIE behaviour.
527     HTML::Form will now "support" keygen-inputs.  It will not
528     calculate a key by itself.  The user will have to set its
529     value for it to be returned by the form.
531     HTTP::Headers now special case field names that start with a
532     ':'.   This is used as an escape mechanism when you need the
533     header names to not go through canonicalization.  It means
534     that you can force LWP to use a specific casing and even
535     underscores in header names.  The ugly $TRANSLATE_UNDERSCORE
536     global has been undocumented as a result of this.
538     HTTP::Message will now allow an external 'content_ref'
539     to be set.  This can for instance be used to let HTTP::Request
540     objects pick up content data from some scalar variable without
541     having to copy it.
543     HTTP::Request::Common.  The individual parts will no longer
544     have a Content-Length header for file uploads.  This improves
545     compatibility with "normal" browsers.
547     LWP::Simple doc patch for getprint.
548     Contributed by Yitzchak Scott-Thoennes <sthoenna@efn.org>.
550     LWP::UserAgent: New methods default_header() and
551     default_headers().  These can be used to set up headers that
552     are automatically added to requests as they are sent.  This
553     can for instance be used to initialize various Accept headers.
555     Various typo fixes by Ville Skyttä <ville.skytta@iki.fi>.
557     Fixed test failure under perl-5.005.
558     
559     LWP::Protocol::loopback:  This is a new protocol handler that
560     works like the HTTP TRACE method, it will return the request
561     provided to it.  This is sometimes useful for testing.  It can
562     for instance be invoked by setting the 'http_proxy' environment
563     variable to 'loopback:'.
567 2004-04-13   Gisle Aas <gisle@ActiveState.com>
569     Release 5.79
571     HTML::Form now exposes the 'readonly' and 'disabled'
572     attribute for inputs.  This allows your program to simulate
573     JavaScript code that modifies these attributes.
575     RFC 2616 says that http: referer should not be sent with
576     https: requests.  The lwp-rget program, the $req->referer method
577     and the redirect handling code now try to enforce this.
578     Patch by Ville Skyttä <ville.skytta@iki.fi>.
580     WWW::RobotRules now look for the string found in
581     robots.txt as a case insensitive substring from its own
582     User-Agent string, not the other way around.
583     Patch by Ville Skyttä <ville.skytta@iki.fi>.
585     HTTP::Headers: New method 'header_field_names' that
586     return a list of names as suggested by its name.
588     HTTP::Headers: $h->remove_content_headers will now
589     also remove the headers "Allow", "Expires" and
590     "Last-Modified".  These are also part of the set
591     that RFC 2616 denote as Entity Header Fields.
593     HTTP::Headers: $h->content_type is now more careful
594     in removing embedded space in the returned value.
595     It also now returns all the parameters as the second
596     return value as documented.
598     HTTP::Headers: $h->header() now croaks.  It used to
599     silently do nothing.
601     HTTP::Headers: Documentation tweaks.  Documented a
602     few bugs discovered during testing.
604     Typo fixes to the documentation all over the place
605     by Ville Skyttä <ville.skytta@iki.fi>.
607     Updated tests.
611 2004-04-07   Gisle Aas <gisle@ActiveState.com>
613     Release 5.78
615     Removed stray Data::Dump reference from test suite.
616     
617     Added the parse(), clear(), parts() and add_part() methods to
618     HTTP::Message.  The HTTP::MessageParts module of 5.77 is no more.
620     Added clear() and remove_content_headers() methods to
621     HTTP::Headers.
623     The as_string() method of HTTP::Message now appends a newline
624     if called without arguments and the non-empty content does
625     not end with a newline.  This ensures better compatibility with
626     5.76 and older versions of libwww-perl.
628     Use case insensitive lookup of hostname in $ua->credentials.
629     Patch by Andrew Pimlott <andrew@pimlott.net>.
633 2004-04-06   Gisle Aas <gisle@ActiveState.com>
635     Release 5.77
637     LWP::Simple did not handle redirects properly when the "Location"
638     header used uncommon letter casing.
639     Patch by Ward Vandewege <ward@pong.be>.
641     LWP::UserAgent passed the wrong request to redirect_ok().
642     Patch by Ville Skyttä <ville.skytta@iki.fi>.
643     https://rt.cpan.org/Ticket/Display.html?id=5828
645     LWP did not handle URLs like http://www.example.com?foo=bar
646     properly.
648     LWP::RobotUA construct now accept key/value arguments in the
649     same way as LWP::UserAgent.
650     Based on patch by Andy Lester <andy@petdance.com>.
652     LWP::RobotUA did not parse robots.txt files that contained
653     "Disallow:" using uncommon letter casing.
654     Patch by Liam Quinn <liam@htmlhelp.com>.
656     WWW::RobotRules now allow leading space when parsing robots.txt
657     file as suggested by Craig Macdonald <craig@freeasphost.co.uk>.
658     We now also allow space before the colon.
660     WWW::RobotRules did not handle User-Agent names that use complex
661     version numbers.  Patch by Liam Quinn <liam@htmlhelp.com>.
663     Case insensitive handling of hosts and domain names
664     in HTTP::Cookies.
665     https://rt.cpan.org/Ticket/Display.html?id=4530
667     The bundled media.types file now match video/quicktime
668     with the .mov extension, as suggested by Michel Koppelaar
669     <Michel.Koppelaar@kb.nl>.
671     Experimental support for composite messages, currently
672     implemented by the HTTP::MessageParts module.  Based on
673     ideas from Joshua Hoblitt <jhoblitt@ifa.hawaii.edu>.
675     Fixed libscan in Makefile.PL.
676     Patch by Andy Lester <andy@petdance.com>.
678     The HTTP::Message constructor now accept a plain array reference
679     as its $headers argument.
681     The return value of the HTTP::Message as_string() method now
682     better conforms to the HTTP wire layout.  No additional "\n"
683     are appended to the as_string value for HTTP::Request and
684     HTTP::Response.  The HTTP::Request as_string now replace missing
685     method or URI with "-" instead of "[NO METHOD]" and "[NO URI]".
686     We don't want values with spaces in them, because it makes it
687     harder to parse.
691 2003-11-21   Gisle Aas <gisle@ActiveState.com>
693     Release 5.76
694     
695     Revised handling of redirects.
696        - clear our content and content headers if we
697          rewrite request as GET based on patch by
698          Steven Butler <stevenb@kjross.com.au>.
699        - pass $response to redirect_ok()
701     Support cpan:-URLs.  Try 'lwp-download cpan:src/latest.tar.gz' :)
703     Fix test failure in 't/html/form.t' for perl5.005.
707 2003-10-26   Gisle Aas <gisle@ActiveState.com>
709     Release 5.75
710     
711     Reworked LWP::UserAgent, HTTP::Request and HTTP::Response
712     documentation.  Also other documentation tweaks.
716 2003-10-23   Gisle Aas <gisle@ActiveState.com>
718     Release 5.74
720     Improved lwp-download program:
721       - set mtime if Last-Modified header reported by server
722       - better prompts
723       - avoid warnings when aborted at the wrong time
725     Collected all contributions in the AUTHORS file and
726     also added an AUTHORS section to the LWP manpage.
728     Style tweaks to all modules.  Move POD after __END__
729     and uncuddled elses.
733 2003-10-19   Gisle Aas <gisle@ActiveState.com>
735     Release 5.73
736     
737     Takanori Ugai <ugai@jp.fujitsu.com> found that 'max_redirect'
738     introduced in 5.72 was broken and provided a patch for that.
740     Not all ftp servers return 550 responses when trying to
741     to RETR a directory.  Microsofts IIS is one of those.
742     Patch provided by Thomas Lotterer <thl@dev.de.cw.com>.
743     
744     Some documentation tweaks.
748 2003-10-15   Gisle Aas <gisle@ActiveState.com>
750     Release 5.72
752     Requests for some non-HTTP URLs would fail if the cookie_jar
753     was enabled.  The HTTP::Cookies::add_cookie_header now ignore
754     non-HTTP requests.
756     The new local/http test failed on Windows because of a missing
757     binmode().
759     Suppress Client-SSL-Warning warning header when Crypt::SSLeay
760     is able to verify the peer certificate.   Patch contributed by
761     Joshua Chamas <joshua@chamas.com>.
763     HTTP::Request::Common::POST did not add a 'Content-Length' header
764     when the content ended up empty.  Fixed by a patch contributed
765     by Brian J. Murrell.
767     Internally generated responses now contain a text/plain part
768     that repeats the status line.  They also have a "Client-Warning"
769     header that can be used to differentiate these responses from
770     real server responses.
772     LWP::UserAgent now deals with 303 and 307 redirects.  The behaviour
773     of 302 redirects has also changed to be like 303; i.e. change the
774     method to be "GET".  This is what most browsers do.  Based on
775     a patch contributed by Tom Hughes <thh@cyberscience.com>.
777     LWP::UserAgent now implements a 'max_redirect' attribute with a
778     default value of 7.  This should also fix the problem where
779     redirects to the same URL to get a cookie set did not work.
780     Based on a patch by Sean M. Burke <sburke@cpan.org>.
782     NTML authentication should continue to fail if the Authen::NTLM
783     module can't be loaded.  LWP used to think the scheme was
784     available as soon as the module stash showed up.  Not it looks
785     for the authenticate method to be defined.  Patch by Jan Dubois.
787     lwp-download will not try to rename *.tbz and *.tar.bz2 to
788     match the reported content type.  Patch contributed by
789     Robin Barker <Robin.Barker@npl.co.uk>.
791     HTTP::Cookies::Netscape documentation fix by Sean M. Burke.
793     HTTP::Cookies::Microsoft documentation fix by Johnny Lee.
795     The code that tries to avoid installing 'HEAD' on top of
796     'head' on systems like Mac OS was further improved to look
797     in $Config{installscript} instead of $Config{sitebin}.
798     Patch provided by Ken Williams <ken@mathforum.org>.
802 2003-10-14   Gisle Aas <gisle@ActiveState.com>
804     Release 5.71
806     Support open-ended Range: header for ftp requests.
807     Patch by Matthew Eldridge <eldridge@Graphics.Stanford.EDU>.
809     lwp-request now prints unsuccessful responses in the same way
810     as successsful ones.  The status will still indicate failures.
811     Based on a patch by Steve Hay <steve.hay@uk.radan.com>.
813     HTML::Form's dump now also print alternative value names.
815     HTML::Form will now pick up the phrase after a <input type=radio>
816     or <input type=checkbox> and use that as the name of the checked
817     value.
819     HTML::Form's find_input now returns all inputs that match in
820     array context.  Based on patch by Mark Stosberg <markstos@cpan.org>
821     in <http://rt.cpan.org/Ticket/Display.html?id=3320>.
823     HTTP::Daemon's send_file() method did not work when given
824     a file name.  Patch by Dave W. Smith <dws@postcognitive.com>.
826     HTTP::Daemon is less strict about field names in the request
827     headers is received.  The Norton Internet Security firewall
828     apparently likes to send requests with a header called
829     '~~~~~~~~~~~~~~~'.   Further details in
830     <http://rt.cpan.org/Ticket/Display.html?id=2531>.
832     LWP::Protocol::http assumed $1 would be meaningful without
833     testing the outcome of the match.  This sometimes produced
834     an extra garbage Authentication header.
835     Based on the patch by <bai@dreamarts.co.jp> in
836     <http://rt.cpan.org/Ticket/Display.html?id=1994>.
838     LWP::Protocol::mailto will try harder to locate the sendmail
839     program as suggested in <http://rt.cpan.org/Ticket/Display.html?id=2363>.
840     Also let $ENV{SENDMAIL} override the search.
842     Patch to enable OS/2 build by Ilya Zakharevich.
846 2003-10-13   Gisle Aas <gisle@ActiveState.com>
848     Release 5.70
850     File::Listing::apache by Slaven Rezic <slaven@rezic.de>
852     HEAD requests now work properly for ftp: URLs.
853     Patch by Ville Skyttä <ville.skytta@iki.fi>.
855     LWP::UserAgent: The protocols_allowed() and protocols_forbidden()
856     methods are now case insensitive.  Patch by Ville Skyttä
857     <ville.skytta@iki.fi>.
859     Avoid warning from HTTP::Date on certain invalid dates.
860     Patch by David Dick <david_dick@iprimus.com.au>.
862     HTML::Form::param() is an alternative interface for inspecting
863     and modifying the form values.  It resembles the interface
864     of CGI.
866     HTML::Form documentation updated.  Lots of typo fixes and improves
867     by Martin Thurn <mthurn@northropgrumman.com>.
869     HTML::Form will treat any unknown input types as text input.
870     This appears to be what most browsers do.
872     HTML::Form::parse() can now take a HTTP::Response object
873     as argument.
875     The "checkbox" and "option" inputs of HTML::Form can now be
876     turned on with the new check() method.
878     The inputs of HTML::Form can now track alternative value
879     names and allow values to be set by these names as well.
880     Currently this is only supported for "option" inputs.
882     HTML::Form's dump() method now print the name of the form if
883     present.
887 2003-01-24   Gisle Aas <gisle@ActiveState.com>
889     Release 5.69
891     Include lwptut.pod contributed by Sean M. Burke C<sburke@cpan.org>.
893     The lwp-request aliases GET, HEAD, POST where installed when
894     no program should be.  Fixed by David Miller <dave@justdave.net>.
896     lwp-rget --help don't print double usage any more.
898     HTTP::Header::Util is now more reluctant to put quotes around
899     token values.
901     Net::HTTP: Avoid warning on unexpected EOF when reading chunk
902     header.
906 2003-01-02   Gisle Aas <gisle@ActiveState.com>
908     Release 5.68
910     Fix test failure for t/html/form.t when running under
911     perl-5.8.0.
915 2003-01-01   Gisle Aas <gisle@ActiveState.com>
917     Release 5.67
919     HTTP::Cookies::Microsoft contributed by Johnny Lee <typo_pl@hotmail.com>.
920     This module makes it possible for LWP to share MSIE's cookies.
922     HTML::Form supports file upload better now.  There are some
923     new methods on that kind of input; file(), filename(), content()
924     and headers().
926     Removed unfinished test that depended on Data::Dump.
928     Net::HTTP avoids exceptions in read_response_headers() with
929     laxed option.  It now always assumes HTTP/0.9 on unexpected
930     responses.
932     HTML::Form documentation reworked.
936 2002-12-20   Gisle Aas <gisle@ActiveState.com>
938     Release 5.66
940     Various patches from Sean M. Burke.  Most of them to
941     match up LWP with the "Perl & LWP" book.
943     LWP::DebugFile module contributed by Sean.
945     LWP::Authen::Ntml contributed by James Tillman.
947     HTTP::Daemon patch for Alpha by <shildreth@emsphone.com>
949     The format_chunk() and write_chunk() methods of Net::HTTP
950     did not work.  Bug spotted by Yale Huang <yale@sdf-eu.org>.
952     The Client-Peer response header is back.
956 2002-05-31   Gisle Aas <gisle@ActiveState.com>
958     Release 5.65
960     Make HTTP::Date compatible with perl 5.8.
962     Try to avoid to default to overwriting /usr/bin/head 
963     on MacOS X when the perl install prefix is /usr/bin.
965     HTTP::Cookies fix for parsing of Netscape cookies file
966     on MS Windows. Patch by by Sean M. Burke <sburke@cpan.org>.
968     HTTP::Negotiate doc patch from Edward Avis <epa98@doc.ic.ac.uk>.
972 2002-02-09   Gisle Aas <gisle@ActiveState.com>
974     Release 5.64
976     Simplified the Makefile.PL:
977        - the scripts are not longer *.PL files
979        - don't try to make symlinks for GET, HEAD, POST
980          as that has not worked for a long time
982        - the GET, HEAD, POST aliases for lwp-request should
983          now work on Windows.
984     
985     HTTP::Cookies:
986        - added 'clear_temporary_cookies' method;
987          patch by Mike Schilli <schilli1@pacbell.net>.
989        - trailing space in old cookie parameters not ignored;
990          patch by Ivan Panchenko
992        - protect against $SIG{__DIE__} handlers;
993          patch by Adam Newby <adam@NewsNow.co.uk>.
995     LWP::Authen::Digest:
996        - abort digest auth session if we fail repeatedly with
997          the same username/password.
999     MacOS portability patches to the test suite by
1000     Chris Nandor <pudge@pobox.com>.
1004 2001-12-14   Gisle Aas <gisle@ActiveState.com>
1006     Release 5.63
1008     HTTP::Negotiate: Deal with parameter names in a case
1009     insensitive way.  Put a little weight on the order of features
1010     in the Accept headers.
1012     LWP::UserAgent: make sure that the 'request' attribute is
1013     always set on the returned response.
1015     LWP::Protocol::http will now allow certain bad headers
1016     in the responses it reads.  The bad headers end up in the
1017     header 'Client-Junk'.
1019     Net::HTTP new options to the 'read_response_headers'
1020     method.  The option 'laxed' will make it ignore bad header
1021     lines.  The option 'junk_out' can be used to pass in an
1022     array reference.  Junk header lines are pushed onto it.
1024     Net::HTTP::Methods: fixed the internal zlib_ok() to also
1025     return the correct value the first time.
1027     LWP::Protocol::http: Ensure that we don't read until
1028     select has said it is ok since we have put the socket
1029     in non-blocking mode.  Previously this could happen if
1030     you set the 'timeout' attribute of the user agent to 0.
1032     LWP::Authen::Digest now use Digest::MD5 instead of MD5.
1034     Some adjustments to Makefile.PL to figure out if
1035     Compress::Zlib is available and adjust the test suite
1036     accordingly.
1040 2001-11-21   Gisle Aas <gisle@ActiveState.com>
1042     Release 5.62
1044     The $VERSION of LWP::UserAgent wrapped around.  This confused the
1045     CPAN indexer.  Bumped the major number to 2 to fix this.
1047     Net::HTTP did not work well on perl5.003.  The PeerHost argument
1048     to IO::Socket::INET was not recognized, so we had to use PeerAddr
1049     instead.  The syswrite() method also required a length argument.
1051     Net::HTTP did not deal with transfer encoding tokens in a
1052     case-insensitive way.  Patch by Blair Zajac <blair@orcaware.com>.
1054     The jigsaw-chunk test failed on MacOS because "\n" is different.
1055     Patch by Chris Nandor <pudge@pobox.com>.
1059 2001-11-16   Gisle Aas <gisle@ActiveState.com>
1061     Release 5.61
1063     LWP::Protocol::http did not invoke its _fixup_header method.
1064     The result was that the 'Host' header got completely wrong
1065     when talking through a proxy server.
1067     The live Google test is gone.  They blocked us.
1069     The guts of Net::HTTP has moved to Net::HTTP::Methods.
1071     Net::HTTP now has limits on the size of the header which are
1072     set by default.
1074     New module Net::HTTPS.
1076     Documentation tweaks.
1078     HTTP::Headers: The 'remove_header' method now return the values
1079     of the fields removed as suggested by Blair Zajac <blair@orcaware.com>.
1080     Also a typo fix by Blair.
1082     HTTP::Message: The delegation via &AUTOLOAD should be slightly
1083     faster now.  It will install a real forwarding function the
1084     first time it is called for each HTTP::Headers method.
1086     LWP::UserAgent: Don't forward 'Cookie' headers on redirect.
1087     Patch by Steve A Fink <steve@fink.com>.
1089     LWP::Protocol::http has been reorganized to make it simpler
1090     to subclass it. Other minor changes to it include:
1091        - Client-Warning is gone
1092        - Client-Request-Num renamed to Client-Response-Num
1093        - A 'Transfer-Encoding' header is rewritten into a
1094          'Client-Transfer-Encoding' header.
1096     LWP::Protocol::https is completely redone.
1100 2001-10-26   Gisle Aas <gisle@ActiveState.com>
1102     Release 5.60
1104     Made HTTP/1.1 the default.  The old HTTP/1.0 module has been
1105     renamed as LWP::Protocol::http10.  There is an environment
1106     variable; PERL_LWP_USE_HTTP_10 that can be set to have LWP
1107     still pick up the old drivers.
1109     Deal with "100 continue" responses even when not requested by
1110     and Expect header in the request.  MS IIS seems to eager to send
1111     this kind of response.
1113     For HTTP/1.1 over SSL there was a problem with the underlying
1114     SSL libraries if the socket was configured to non-blocking mode.
1115     Disable this for https.
1116     Based on a patch from Michael Thompson <mickey@berkeley.innomedia.com>
1118     Support the Range header for ftp:// requests.
1119     Patch by David Coppit <david@coppit.org>.
1121     Rearrange Bundle::LWP on request from Chris Nandor.
1123     HTTP::Cookies: Allow a domain like .foo.com match host "foo.com".
1124     Patch by Alexandre Duret-Lutz <duret_g@lrde.epita.fr>
1126     For redirects make sure Host header is not copied to the new
1127     request.
1129     The HTML::HeadParser is not loaded until actually needed.
1131     Net::HTTP should now work with perl5.005 by a simple tweak
1132     to 'require IO::Socket::INET'.
1134     WWW::RobotRules::AnyDBM: Explicitly clear database on open.
1135     Some DBM implementations doesn't support the O_TRUNC flag
1136     properly.  Patch by Radu Greab <radu@netsoft.ro>.
1140 2001-09-19   Gisle Aas <gisle@ActiveState.com>
1142     Release 5.53_97
1144     LWP::Protocol::http11: fix socket leak.  Because we managed
1145     to set up a circular reference within the sockets objects they
1146     stayed around forever.
1148     LWP::UserAgent: Split up simple_request into prepare_request
1149     and send_request. Patch contributed by Keiichiro Nagano <knagano@sodan.org>
1151     LWP::Protocol::http: Pass all header data to LWP::Debug::conns.
1152     Based on patch by Martijn.
1154     LWP::UserAgent: Sean fixed a Cut&Paste error.
1156     HTTP::Cookies: avoid pack("c",...) warning from bleadperl.
1160 2001-08-27   Gisle Aas <gisle@ActiveState.com>
1162     Release 5.53_96
1164     HTTP/1.1 support also for https.
1165     Contributed by Doug MacEachern <dougm@covalent.net>
1167     The HTTP/1.1 modules are now enabled by default.  Hope that will give
1168     them more testing than they otherwise would have gotten.
1170     HTTP::Daemon's accept now has same behaviour as IO::Socket's
1171     accept in list context.  Fixed by Blair Zajac <blair@gps.caltech.edu>.
1173     More argument sanity checking in HTTP::Request->uri and
1174     LWP::UserAgent->simple_request.  Patch by Sean M. Burke.
1176     HTTP::Protocol::http.  Deal with short writes.
1177     Patch by Norton Allen <allen@huarp.harvard.edu>
1179     HTTP::Protocol::http11:  Deal with newlines in header values.
1181     Net::HTTP: call sysread (instead of xread) when more data is required.
1185 2001-08-06   Gisle Aas <gisle@ActiveState.com>
1187     Release 5.53_95
1189     Fix HTTP::Cookies where there is a mix of Set-Cookie and
1190     Set-Cookie2 headers.  In that case we used to ignore all Set-Cookie
1191     headers.  Now we only ignore those Set-Cookie headers that reference
1192     the same cookie as a Set-Cookie2 header.
1194     HTTP::Request, HTTP::Response will by default now use "URI" class,
1195     instead of "URI::URL", when constructing its URI objects.  This
1196     has a potential for breaking existing code as URI::URL objects had
1197     some extra methods that external code might depend upon.
1199     Patches by Sean M. Burke:
1200        - Fix treatment of language tags in HTTP::Negotiate 
1201        - Avoid trailing newline in $response->message
1202        - HTTP::Response clarifications
1204     LWP::Simple deals with non-absolute redirects "correctly" now.
1206     Net::HTTP does not try to load Compress::Zlib until it is needed.
1208     Net::HTTP documentation has been updated.
1212 2001-05-05   Gisle Aas <gisle@ActiveState.com>
1214     Release 5.53_94
1216     Sean M. Burke's update to LWP::UserAgent:
1217        - updated redirect_ok behaviour
1218        - new convenience methods: get/head/post/put
1219        - protocols_allowed/protocols_forbidden
1220        - LWP::Protocol::nogo (new module)
1222     Added digest auth test against Jigsaw
1224     Fixed a 'use of uninitialized'-warning in the handling of
1225     digest authentication.
1227     Net::HTTP updates:
1228       - new option: SendTE
1229       - support transfer-encoding 'deflate' and 'gzip' (when Compress::Zlib
1230         is available).
1231       - new methods: format_chunk, format_chunk_eof
1232       - use -1 (instead of "0E0" as signal that no data was available,
1233         but this was not EOF).
1237 2001-04-28   Gisle Aas <gisle@ActiveState.com>
1239     Release 5.53_93
1241     Makefile.PL now asks some questions
1243     Added live tests for the new HTTP/1.1 support
1245     LWP::MemberMixin: make it possible to set a value to the 'undef' value.
1247     Net::HTTP:
1248         - transparent support for 'deflate' and 'gzip' transfer encodings
1249           (need to have the Compress::Zlib module installed for this to work).
1253 2001-04-25   Gisle Aas <gisle@ActiveState.com>
1255     Release 5.53_92
1257     LWP::Protocol::ftp now support keep-alives too.  The command
1258     connection will stay open if keep-alives are enabled.
1260     LWP::Protocol::http11 various fixes:
1261         - chunked request content did not work
1262         - monitor connection while sending request content
1263         - deal with Expect: 100-continue
1265     LWP::RobotUA: Protect host_port call.  Not all URIs have this method.
1269 2001-04-20   Gisle Aas <gisle@ActiveState.com>
1271     Release 5.53_91
1273     Introduced LWP::ConnCache module.  Works similar to HTTP::Cookies,
1274     it that it takes effect if associated with the $ua.
1276     The handling of $ua->max_size changed to make 0 mean 0
1277     (not unlimited).  An value of undef means no limit.
1278     The X-Content-Base header is gone.  I hope nobody relies on
1279     it.  It might come back if people start to scream.  There
1280     is a new Client-Aborted header instead.
1282     The Range header generated for $ua->max_size had a off-by-one
1283     error.  A range of "0-1" means 2 bytes.
1285     The LWP::UserAgent constructor now takes configuration arguments.
1287     Keep-alive and the new HTTP/1.1 module can now be simply
1288     enabled with something like:
1290           LWP::UserAgent->new(keep_alive => 1);
1292     New method $ua->conn_cache to set up and access the associated
1293     connection manager.
1295     If the string passed to $ua->agent() ends with space then
1296     the "libwww-perl/#.##" string is automatically appended.
1298     New method $ua->_agent
1300     Passing a plain hash to $ua->cookie_jar automatically loads
1301     HTTP::Cookies and initialise an object using the hash content
1302     as constructor arguments.
1304     LWP::Protocol::http11 now use the conn_cache of the $ua.
1306     LWP::Protocol::http11 now added a few new Client- headers.
1308     LWP::Protocol avoid keeping the connection alive if $ua->max_size
1309     limit prevents the whole body content from being read.
1311     Net::HTTP updates:
1312        - new methods: write_chunk(), write_chunk_eof()
1313        - reset state properly when a new body is read.
1314        - always set read buffer empty on eof
1315        - doc update
1317     WWW::RobotRules patch by Liam Quinn <liam@htmlhelp.com>:
1318        - Always qualify netloc with port.
1319        - Reverse User-Agent substring matching.
1323 2001-04-18   Gisle Aas <gisle@ActiveState.com>
1325     Release 5.53_90
1327     Note: This is a developer only release.  Not for production use.
1329     LWP::Protocol::http11 now does keep-alives by default.  Still need
1330     to figure out what interface to provide at the $ua level.
1332     LWP::Protocol::http11 deals with CODE content in request.
1334     Net::HTTP updated:
1335         - added format_request() method
1336         - added _rbuf and _rbuf_length methods
1337         - read_response_headers does not return protocol version
1338           any more.
1339         - peer_http_version method did not work because of typo.
1340         - documentation added
1342     New module Net::HTTP::NB.  This is a Net::HTTP subclass that
1343     is better suited for multiplexing as it is able to do no-blocking
1344     reads of headers and entity body chunks.
1346     HTTP::Request: Protect $request->uri against evil $SIG{__DIE__} handlers.
1348     Some reorganisation in how stuff is passed from $ua to protocol object.
1349     The $ua is now passed in so protocol objects might store start in it.
1351     The $ua->max_size default is now 0.
1353     The $ua->clone method avoids sharing of proxy settings between
1354     the old and the new.
1356     This file is renamed to 'Changes' (used to be 'ChangeLog').
1360 2001-04-10   Gisle Aas <gisle@ActiveState.com>
1362     Release 5.53
1364     LWP::Simple::get() could sometimes return nothing on failure in
1365     list context.  Now it always returns 'undef'.
1367     HTTP::Cookies does not request 2 dots on domain names any more.
1368     New option to hide the Cookie2 header.  Cookie2 header now quote
1369     the version number. Updated reference to RFC 2965.
1371     Support for embedded userinfo in http proxy URIs.  It means that
1372     you know can set up your proxy with things like:
1373         http_proxy="http://proxyuser:proxypass@proxyhost:port"
1374     Patch by John Klar <j.klar@xpedite.com>.
1376     Experimental HTTP/1.1 support.  New module called Net::HTTP that
1377     provide the lower level interface and a LWP::Protocol::http11
1378     module that builds on it.  The HTTP/1.1 protocol module must be
1379     loaded and registered explicitly, otherwise the old and trustworthy
1380     HTTP/1.0 module will be used.
1382     LWP::Protocol::GHTTP will try to use the get_headers() methods
1383     so that it can actually extract all the headers.
1387 2001-03-29   Gisle Aas <gisle@ActiveState.com>
1389     Release 5.52
1391     HTTP::Header: new method $h->init_header() that will only
1392     set the header if it is not already set.  Some shuffling
1393     around in the code.
1395     LWP::UserAgent will not override 'User-Agent', 'From'
1396     or 'Range' headers if they are explicitly set in the
1397     request passed in.
1399     HTML::Form tries to optimize parsing be restricting the
1400     tags that are reported by HTML::Parser.  Will need
1401     HTML::Parser v3.19_93 or better for this to actually
1402     have any effect.
1404     LWP::Protocol::ftp now deals with path parameters again.
1405     It means that you can append ";type=a" to ftp-URI and
1406     it will download the document in ASCII mode.
1408     If the server output multiple Location headers on a redirect,
1409     ignore all but the first one.
1411     Extract cookies failed on request URIs with empty paths.
1412     This was only triggered if you used URI objects directly in
1413     scripts.
1415     This change was actually part of 5.51:  Fix qop="auth"
1416     handling for Digest authentication.
1417     Patch by Dave Dunkin <dave_dunkin@hotmail.com>.
1421 2001-03-14   Gisle Aas <gisle@ActiveState.com>
1423     Release 5.51
1425     SECURITY FIX: If LWP::UserAgent::env_proxy is called in a CGI
1426     environment, the case-insensitivity when looking for "http_proxy"
1427     permits "HTTP_PROXY" to be found, but this can be trivially set by the
1428     web client using the "Proxy:" header.  The fix applied is that
1429     $ENV{HTTP_PROXY} is not longer honored for CGI scripts.
1430     The CGI_HTTP_PROXY environment variable can be used instead.
1431     Problem reported by Randal L. Schwartz.
1433     NOTE: It is recommended that everybody that use LWP::UserAgent
1434           (including LWP::Simple) in CGI scripts upgrade to this release.
1436     Explicit setting of action on HTML::Form had no effect because
1437     of a code typo.  Patch by BooK <book@netcourrier.com>.
1439     HTTP::Daemon: The CONNECT method need special treatment because
1440     it does not provide a URI as argument (just a "hostname:port").
1441     The non-upward compatibility warning is that you must now call
1442     $request->url->host_port to get the host/port string for CONNECT,
1443     rather than calling $request->url and using the entire string.
1444     Based on patch from Randal L. Schwartz <merlyn@stonehenge.com>
1446     HTTP::Daemon: Create self URL based on $self->sockaddr.  This works
1447     better when LocalAddr is used to specify the port number.  Based on
1448     patch from Ben Low <ben@snrc.uow.edu.au>. 
1450     Avoid potential '<FILE> chunk 1' messages at the end of the response
1451     'message'.
1455 2001-01-12   Gisle Aas <gisle@ActiveState.com>
1457     Release 5.50
1459     Fix for test cases that failed because of URI-1.10 now encode
1460     space as '+' instead of '%20. Patch by Christian Gilmore
1461     <cgilmore@tivoli.com>.
1463     Makefile.PL: Require URI-1.10.
1465     HTTP::Daemon now accepts any non-space character as method name
1466     on the request line.  It used to fail on methods like "M-POST"
1467     because it only allowed \w-chars.
1469     HTTP::Date now allow fractional seconds in ISO date formats.
1470     Based on patch from Mark D. Anderson <mda@discerning.com>
1472     HTTP::Request::Common will now calculate Content-length
1473     even if $DYNAMIC_FILE_UPLOAD is set.  Patch provided by
1474     Lindley, Lee T <Lee.Lindley@viasystems.com>.
1478 2000-12-31   Gisle Aas <gisle@ActiveState.com>
1480     Release 5.49
1482     HTML::Form: Use croak() instead of die.  Implement
1483     $f->possible_values.  Avoid use of undef value warnings.
1485     HTTP::Cookies: fix epath issue.  Make it work for URI::http
1486     as the uri-attribute of HTTP::Request object
1488     HTTP::Date: Allow ignored timezone info in parenthesis. Patch
1489     by Sander van Zoest <sander@covalent.net>.
1490     Fix calculation of non-GMT timezones (wrong sign).  Patch by
1491     KONISHI Katsuhiro <konishi@din.or.jp>.
1493     HTTP::Response: Let $res->base() absolutize the URI.  Based on
1494     bug report from Hans de Graaff <hans@degraaff.org>.
1496     Fixed minor doc typos in HTTP::Headers::Util and LWP::UserAgent.
1498     HTTP::Request::Common: Support boundary spec from client.
1500     LWP::Simple: Avoid trivial_http_get when @ appears in authority
1501     part of URI
1503     LWP::Authen::Digest: Need to have query in URI param. 
1504     Spotted by <ronald@innovation.ch>.
1506     LWP::Protocol::http: unescape username/password if they are
1507     specified in the URI.
1509     Added LWP::Protocol::GHTTP.  This allow LWP to use the HTTP::GHTTP
1510     module as the low level HTTP driver.
1514 2000-04-09   Gisle Aas <gisle@aas.no>
1516     Release 5.48
1518     README.SSL update by Marko Asplund <aspa@hip.fi>
1520     Added cookie example to lwpcook.pod
1522     HTTP::Date::str2time returns undef on failure instead
1523     of an empty list as suggested by Markus B Krüger <markusk@pvv.org>
1525     $request->uri($uri) will now always store a copy of the $uri.
1527     HTTP::Status: Added status codes from RFC 2616 and RFC 2518 (WebDAV)
1529     LWP::RobotUA will not parse robots.txt unless content type and
1530     content sample looks right.
1532     LWP::UserAgent: Deal with multiple WWW-Authenticate headers.
1533     Patch by Hugo <hv@crypt.compulink.co.uk>
1535     $ua->proxy can now return the old proxy settings without
1536     destroying the old one.
1537     Based on patch by Benjamin Low <ben@snrc.uow.edu.au>
1539     LWP::Protocol::http update
1541         - don't terminate header parsing on bad headers
1542         - extra_sock_opts
1543         - preparations for keep alive support
1544         - method CONNECT
1546    WWW::RobotRules deal with various absolute URIs in the
1547    disallow lines.
1549    Makefile.PL: Make sure we have HTML::TokeParser
1551    Clean test on VMS.
1552    Patch by Charles Lane <lane@ DUPHY4.Physics.Drexel.Edu>.
1556 1999-11-16   Gisle Aas <gisle@aas.no>
1558  o  Release 5.47
1560  o  Added HTML::Form to the distribution.
1562  o  LWP::Protocol::ftp: Make it URI.pm compatible.  We broke it in 5.45.
1564  o  LWP::Protocol::http: Kill any Connection header
1566  o  LWP::MediaTypes: Fixed builtin html/text mapping.
1567     Added bz2 to suffixEncoding
1571 1999-10-28   Gisle Aas <gisle@aas.no>
1573  o  Release 5.46
1575  o  Updated mailing list address
1577  o  Avoid warnings for lwp-request -t
1579  o  referrer as alternative spelling for referer as suggested by tchrist.
1581  o  More conservative selection of boundary for multipart messages
1582     in &HTTP::Request::Common::POST.
1584  o  LWP::MediaTypes can now export &read_media_types.
1586  o  Spelling corrections from Ben Tilly <Ben_Tilly@trepp.com>
1590 1999-09-20   Gisle Aas <gisle@aas.no>
1592  o  Release 5.45
1594  o  The LWP SSL support better explained.  Documentation in README.SSL
1595     and lwpcook.pod contributed by Marko Asplund <aspa@hip.fi>.
1597  o  LWP::Protocol::https: Try loading IO::Socket::SSL if Net::SSL is
1598     not available.
1600  o  lwp-mirror -t option did not work.
1602  o  defined(@ISA) eliminated. Patch by Nathan Torkington <gnat@frii.com>
1604  o  LWP::Protocol::ftp: Protect against empty path_segments
1608 1999-06-25   Gisle Aas <gisle@aas.no>
1610  o  Release 5.44
1612  o  We require URI-1.03, since this fix some query quoting stuff
1613     that HTTP::Request::Common rely upon.
1615  o  'lwp-request -HUser-Agent:foo' can now be used to set this
1616     header too.
1618  o  Localize $/ to ensure standard record separator a few places
1619     in HTTP::Cookies
1621  o  LWP::UserAgent will now set the Range header in requests if
1622     the $ua->max_size attribute is set.
1626 1999-05-09   Gisle Aas <gisle@aas.no>
1628  o  Release 5.43
1630  o  New lwp-request command line option that allow you to put any
1631     header into the request (-H).
1633  o  New HTTP::Date because of Y2K-problems with the old one.
1634     It refused to parse the ftp-listing (ls -l) dates missing year.
1635     Additional entry point is parse_date().  This function avoid any
1636     limitations caused by the time-representation (seconds since
1637     epoch).
1639  o  Y2K fix to t/base/cookies.t.  Netscape's original cookie
1640     example expires at 09-Nov-99.
1642  o  Added another binmode() to LWP::Protocol::file as suggested
1643     by Matt Sergeant <matt-news@sergeant.org>
1647 1999-03-20   Gisle Aas <gisle@aas.no>
1649  o  Release 5.42
1650         
1651  o  MacOS patches from Paul J. Schinder <schinder@leprss.gsfc.nasa.gov>
1653  o  Documentation patch from Michael A. Chase <mchase@ix.netcom.com>
1655  o  PREREQ_PM patch from Andreas Koenig <andreas.koenig@anima.de>
1657  o  LWP::Simple::head fix by Richard Chen <richard@lexitech.com>
1659  o  "LWP fails with PerlEXE"-patch from Gurusamy Sarathy
1661  o  Allow "." in HTTP header names.  Patch by Marc Langheinrich
1662     <marc@ccm.cl.nec.co.jp>
1664  o  Fixed reference to $uri->netloc in lwp-request
1666  o  Cute animation in lwp-download
1670 Mon Nov 19 1998   Gisle Aas <aas@sn.no>
1672  o  Release 5.41
1674  o  HTTP::Cookies provide better Netscape cookies compliance.
1675     Send back cookies to any port, and allow origin host name to
1676     be specified as domain, and still be treated as a domain.
1677     Patch from Andreas Gustafsson <gson@araneus.fi>.
1679  o  HTTP::Cookies now ignore the Expires field in Set-Cookie, if the
1680     date provided can't be parsed by HTTP::Date.
1682  o  HTTP::Daemon will lowercase the hostname returned from
1683     Sys::Hostname::hostname().  This avoid some test failures in
1684     the test suite for people with upper- or mixed-cased hostnames.
1686  o  LWP::Protocol::gopher: IO::Socket::INET ctor did not specify
1687     Proto => 'tcp'.  This made it less portable to older IO::Socket
1688     versions.
1690  o  No programs installed when you build the Makefile with
1691     'perl Makefile.PL LIB=/my/lib'
1693  o  LWP bundle mention Digest::MD5 instead of MD5
1695  o  headers-auth.t test suite bug triggered by perl5.005_5x.
1696     Patch by Albert Dvornik <bert@genscan.com>
1698  o  The local/http.t test actually did try to unlink(".").  This was
1699     very confusing on systems where it succeed.
1703 Mon Oct 12 1998   Gisle Aas <aas@sn.no>
1705  o  Release 5.40_01
1707  o  Unbundled URI::URL modules.  You now have to install the
1708     URI.pm module in order to get libwww-perl working.
1710  o  Made library URI.pm compatible.  Made all URI object instantiations
1711     based on $HTTP::URI_CLASS variable.
1713  o  New lwp-rget option: --referer.
1714     Patch by INOUE Yoshinari <inoue@kusm.kyoto-u.ac.jp>.
1716  o  One more binmode() to HTTP::Daemon as suggested by
1717     Markus Laker <mlaker@contax.co.uk>.
1721 Tue Aug  4 1998   Gisle Aas <aas@sn.no>
1723  o  Release 5.36
1725  o  The lwp-download script will call $ua->env_proxy now.
1727  o  The lwp-request script allows content types (specified with the -c
1728     option) with optional parameters like: multipart/mixed; boundary="--".
1730  o  LWP::UserAgent will lowercase all authentication parameter names
1731     before passing it to the authentication module.  Previous releases
1732     ignored parameters like; Realm="Foo" (bacause Realm contained
1733     upper case letters).
1735  o  LWP::Protocol::ftp test for If-Modified-Since was wrong.
1737  o  How the $url->abs method works can now be configured with the global
1738     variables $URI::URL::ABS_ALLOW_RELATIVE_SCHEME and
1739     $URI::URL::ABS_REMOTE_LEADING_DOTS.
1741  o  The anonymous password guesser for ftp URLs will now call the external
1742     `whoami` program any more.  Patch by Charles C. Fu <ccwf@bacchus.com>.
1744  o  LWP::Protocol::http now allow dynamic requests without any
1745     Content-Length specified when Content-Type is multipart/*
1747  o  HTTP::Request::Common can now upload infinite files.
1748     (Controlled by the $DYNAMIC_FILE_UPLOAD configuration variable.)
1752 Fri Jul 10 1998   Gisle Aas <aas@sn.no>
1754  o  Release 5.35
1756  o  More lwp-rget patches from David D. Kilzer <ddkilzer@madison.dseg.ti.com>.
1757     Adds the following new options: --iis, --keepext, --tolower
1759  o  LWP::MediaTypes patches from MacEachern <dougm@pobox.com>.  Adds new
1760     functions: add_type(), add_encoding(), read_media_types()
1764 Tue Jul  7 1998   Gisle Aas <aas@sn.no>
1766  o  Release 5.34
1768  o  LWP::Protocol::ftp now try to use the MDTM command to support
1769     the Last-Modified response header as well as
1770     If-Modified-Since in requests.  Original and final patch by
1771     Charles C. Fu <ccwf@bacchus.com>
1773  o  $url->path_components will not escape "." any more.
1775  o  WWW::RobotRules will now work for Mac text files too (lines delimited
1776     by CR only).  Patch by Olly Betts <olly@muscat.co.uk>
1778  o  lwp-rget support <area ..> links too.
1782 Thu May  7 1998   Gisle Aas <aas@sn.no>
1784  o  Release 5.33
1786  o  LWP::Simple::get() did try to handle too many of the 3xx
1787     codes as redirect when it bypasses full LWP.
1789  o  LWP::UserAgent->mirror will now use utime(2) to set the
1790     file modification time corresponding to the Last-Modified
1791     header.
1793  o  LWP::Protocol::http will not modify the HTTP::Request that
1794     it is processing.  This avoids sticky Host header for
1795     redirects.
1797  o  URI::Heuristic and lwp-download documentation update.
1801 Wed Apr 15 1998   Gisle Aas <aas@sn.no>
1803  o  Release 5.32
1805  o  Much improved HTTP::Daemon class. We now support persistent
1806     connections.  Changes include:
1807        - $c->get_request can be told to return after reading and
1808          parsing headers only.
1809        - $c->reason (new method)
1810        - $c->read_buffer (new method)
1811        - $c->proto_ge (new method)
1812        - $c->force_last_request (new method)
1813        - $c->send_response now support CODE reference content
1814          and will use chunked transfer encoding for HTTP/1.1 clients.
1815        - expanded the documentation.
1819 Fri Apr 10 1998   Gisle Aas <aas@sn.no>
1821  o  Release 5.31
1823  o  Makefile.PL now checks that HTML::HeadParser is present.
1825  o  Updated HTTP::Cookies according to draft-ietf-http-state-man-mec-08.txt
1826     It now supports the .local domain and value less 'port' attribute in
1827     the Set-Cookie2 header.
1829  o  HTTP::Headers update:
1830        - $h->content_type now always return a defined value
1831        - $h->header($field) will now concatenate multi-valued header
1832          fields with "," as separator in scalar context.
1834  o  HTTP::Request::Common update:
1835        - used to destroy the content of the  hash/array arguments
1836          passed to its constructor functions.
1837        - allow a hash reference to specify form-data content.
1838        - you can override Content-Disposition for form-data now.
1839        - set content-encoding for files if applicable
1840        - default boundary string is now always "--000"
1842  o  LWP::UserAgent will not follow more than 13 redirects
1843     automatically.
1847 Wed Apr  1 1998   Gisle Aas <aas@sn.no>
1849  o  Release 5.30
1851  o  Unbundled the following modules:
1853        * HTML-Parser  (HTML::Parser, HTML::Entites, HTML::LinkExtor,...)
1854        * HTML-Tree    (HTML::Element, HTML::TreeBuilder,...)
1855        * Font-AFM     (Font::AFM, Font::Metrics::*)
1856        * File-CounterFile
1858  o  Simplified internal structure of HTTP::Headers.  Hopefully,
1859     nobody will notice.
1861  o  New modules HTTP::Headers::Auth,  HTTP::Headers::ETag that adds
1862     additional convenience methods to the HTTP::Headers class.
1864  o  Removed split_etag_list() from HTTP::Headers::Util, in the hope
1865     that nobody had starting using it.
1869 Tue Mar 24 1998   Gisle Aas <aas@sn.no>
1871  o  Release 5.22
1873  o  HTTP::Cookies made more compatible with Netscape cookies.  Allow
1874     the domain to match host, allow dots in the part of the hostname
1875     not covered by domain.  Don't quote the cookie value even when it
1876     contains non-token chars.  Based on patch from Kartik Subbarao
1877     <subbarao@computer.org>.
1879  o  Updated HTTP::Status to reflect <draft-ietf-http-v11-spec-rev-03>.
1880     RC_MOVED_TEMPORARILY renamed to RC_FOUND.  Added codes
1881     RC_TEMPORARY_REDIRECT (307) and RC_EXPECTATION_FAILED (417).
1882     Slightly more documentation too.
1884  o  The split_header_words() function HTTP::Headers::Util could go
1885     into infinite loop on some header values.  Implemented split_etag_list()
1886     too.  Added more documentation and test script for this module.
1888  o  LWP::Simple now switch to full LWP implementation even for systems
1889     that force all environment keys to be upper case.  Modification
1890     suggested by Dale Couch <dcouch@training.orl.lmco.com>.
1892  o  LWP::UserAgent allows redirects to a relative URL with scheme to be
1893     made.  Suggested by Chris W. Unger <cunger@cas.org>.
1895  o  Applied dtd2pm.pl patches from <peterm@zeta.org.au>.  It can now
1896     extract information from the HTML40.dtd
1900 Thu Mar 12 1998   Gisle Aas <aas@sn.no>
1902  o  Release 5.21
1904  o  lwp-rget patches from David D. Kilzer <ddkilzer@madison.dseg.ti.com>
1905     (modified by Gisle).  Support the --hier  and the --auth options
1906     and <frame>s.
1908  o  File::CounterFile protect against bad $/ and $\ as suggested
1909     by Frank Hoehne.
1911  o  File::Listing used "next" when return was more appropriate.
1912     Patch by erik@mediator.uni-c.dk.
1914  o  HTML::Element support for multiple boolean attributes for a single
1915     element.  Patch by Philip Guenther.
1917  o  Can set $HTTP::Headers::TRANSLATE_UNDERSCORE to FALSE value to
1918     suppress tr/_/-/ of header keys.
1920  o  LWP::Protocol::http will not initialize the Host header if it is
1921     already set.
1923  o  LWP::Protocol::http did not handle responses with no header lines
1924     correctly.  Patch by Daniel Buenzli <buenzli@rzu.unizh.ch>
1926  o  $url->rel() handles path segments without leading "/" better.
1930 Fri Feb 13 1998   Gisle Aas <aas@sn.no>
1932  o  Release 5.20
1934  o  Fixed the "500 Offset outside string" bug that affected perl
1935     5.004_03 and older version of Perl.
1937  o  Fixed a documentation typo spotted by Michael Quaranta
1938     <quaranta@vnet.IBM.COM>
1940  o  HTTP::Date: Protect against croaking from timegm/timelocal.
1944 Mon Jan 26 1998   Gisle Aas <aas@sn.no>
1946  o  Release 5.19
1948  o  HTML::Parser does not call $self->text() callback for empty text
1949     any more.
1951  o  LWP::Protocol::https was noisy when connections failed and the
1952     script was running with '-w' (noise inherited from IO::Socket::INET)
1954  o  $ua->use_alarm(BOOL) now gives a warning if running with -w
1958 Tue Jan 20 1998   Gisle Aas <aas@sn.no>
1960  o  Developer release 5.18_05
1962  o  HTTPS support based on my Crypt-SSLeay module.  The Net-SSLeay module
1963     is not supported any more.
1965  o  lwp-request documentation typo spotted Martijn Koster.
1967  o  Removed superfluous \\ in the URI::Escape regex. This was also
1968     spotted by Martijn.
1970  o  File::Listing now handles timezones correctly.
1972  o  Added $VERSION to modules that was missing it.
1974  o  Added 'use strict' to several modules that was missing it.
1976  o  LWP::Protocol::http now adds the Client-Peer header to responses and
1977     has hooks for more callbacks.
1979  o  LWP::Protocol::https adds Client-SSL-Cipher, Client-SSL-Cert-Subject
1980     and Client-SSL-Cert-Issuer headers to the response.  The requests can
1981     also be made conditional based on the peer certificate using the
1982     If-SSL-Cert-Subject header in requests.
1984  o  HTML::Parse is back.  (It was even used in lwpcook.pod)
1988 Wed Dec 17 1997   Gisle Aas <aas@sn.no>
1990  o  Developer release 5.18_04
1992  o  Makefile.PL fix based on report from Pon Hwa Lin <koala@fragment.com>
1994  o  lwp-request will now print the response code message with -s and -S
1995     options.
1997  o  Hide IO::Socket::INET noise when running under -w
1999  o  Don't set 'Content-Length: 0' in HTTP requests.
2001  o  LWP::Protocol::http now calls LWP::Debug::conns again
2005 Tue Dec 16 1997   Gisle Aas <aas@sn.no>
2007  o  Developer release 5.18_03
2009  o  Got rid of alarms() and replaced LWP::Socket with IO::Socket::INET.
2010     New protocol implementations for http, https, gopher, nntp.
2011     $ua->use_alarm() is now a noop.
2013  o  LWP::Protocol::ftp patch from  Tony Finch <fanf@demon.net>.
2015  o  Removed depreciated modules from the distibution; HTML::Parse,
2016     LWP::Socket, LWP::SecureSocket, LWP::IO, LWP::TkIO.
2020 Fri Dec 12 1997   Gisle Aas <aas@sn.no>
2022  o  Release 5.18
2024  o  HTTP authorization patches from Tony Finch <fanf@demon.net>.
2025     Allows "user:pass@" in HTTP URLs.
2027  o  HTML::Parser patch by Brian McCauley <B.A.McCauley@bham.ac.uk>.
2028     Pass original text to end() method.
2030  o  The HTML::Parser->netscape_buggy_comment method is depreciated.
2031     Use HTML::Parser->strict_comment instead.  The default value
2032     has changed with the name.
2034  o  Some HTML::Parser optimization tweaks.
2036  o  New module named HTML::Filter
2038  o  Updated HTTP::Headers to the latest HTTP spec.  Added knowledge
2039     about the "Trailer", "Expect", "TE", "Accept-Range" headers.
2040     "Public" header is gone.
2042  o  Added some more header convenience methods: if_unmodified_since,
2043     content_language, and proxy_authorization methods.
2045  o  HTTP::{Request,Response}->clone can handle subclasses now.
2047  o  HTTP::Request->url() can now undefine the URL.
2049  o  HTTP::{Request,Response}->as_string format looks more like
2050     the HTTP protocol formatting now.  Dashed lines above and
2051     below is gone.
2053  o  Documented HTTP::Response->status_line method
2055  o  Compressed HTML::Response->error_as_HTML output
2057  o  HTTP::Status updated to latest HTTP spec.  Added 
2058     RC_REQUEST_RANGE_NOT_SATISFIABLE (416)
2062 Tue Dec  2 1997   Gisle Aas <aas@sn.no>
2064  o  Release 5.17
2066  o  All authentication handling moved out of LWP::UserAgent and into
2067     LWP::Authen::Basic and LWP::Authen::Digest.  We now also support
2068     PROXY_AUTHENTICATION_REQUIRED responses.
2070  o  HTML::Formatter will always add a blank line for <br>.
2072  o  Avoid use of uninitialized value in HTTP::Daemon.
2074  o  HTTP::Date allows seconds when recognizing 'ls -l' dates.  This
2075     allows us to parse syslog time stamps.
2077  o  HTTP::Request::Common::POST allows a hash reference as second
2078     argument (in addition to an array reference).
2080  o  LWP::Simple will initialize the $ua if it is exported.
2082  o  Various documentation updates.
2086 Fri Nov 21 1997   Gisle Aas <aas@sn.no>
2088  o  Release 5.16
2090  o  LWP::Simple::head() would die in array context because str2time
2091     was not imported any more.
2093  o  HTTP::Daemon->accept now takes an optional package argument like
2094     IO::Socket->accept does.
2096  o  Made HTTP::Request and HTTP::Response subclassable.
2098  o  Added Proxy-Authorization example to lwpcook.
2102 Thu Nov  6 1997   Gisle Aas <aas@sn.no>
2104  o  Release 5.15
2106  o  New module URI::Heuristic
2108  o  The lwp-request script now use URI::Heuristic for it's URL arguments.
2109     It means that 'lwp-request perl' will not get a file called "./perl"
2110     but will fetch the page "http://www.perl.com" or something similar.
2111     If you want to get the file you have to prefix it with "./".  Full
2112     URLs are never affected by this.
2114  o  LWP::Simple::get() will bypass LWP for simple HTTP requests.  This
2115     should make it somewhat faster.
2117  o  LWP::RobotUA has a new method called $ua->use_sleep() that
2118     controls how niceness towards the servers are enforced.
2119     Previously $ua->use_alarm() used to control this, but this did
2120     not work well on Win32 systems.
2122  o  URI::URL::rel() will handle URLs to a fragment within the same
2123     document better. Initial patch from Nicolai Langfeldt
2124     <janl@math.uio.no>.
2126  o  HTML::Element don't consider </th>, </tr> and </td> optional any
2127     more.  I wonder how Netscape managed to not implement this
2128     correctly all this time.
2130  o  Added lots of modern tags to HTML::AsSubs.
2132  o  HTTP::Request::Common will read uploaded files in binmode().
2133     This should be better for Win32 systems.  Contributed by
2134     <Steve_Kilbane@cegelecproj.co.uk>.
2138 Sun Oct 12 1997   Gisle Aas <aas@sn.no>
2140  o  Release 5.14
2142  o  HTML::Formatter patches from Andreas Gustafsson <gson@araneus.fi>.
2143     The formatters handling of whitespace is much better now.  Thanks!
2145  o  HTML::FormatText: can specify margins in the constructor.
2147  o  URI::URL: the base will be absolutized internally now.
2149  o  URI::URL will take advantage of void context provided by perl5.004.
2150     This means that using $u->path and $u->query should be safer now.
2152  o  URI::URL->print_on defaults to STDERR now (used to be STDOUT).
2154  o  URI::URL: removed version 3 compatibility stuff ($COMPAT_VER_3).
2156  o  $ua->mirror should work better on dosish systems (can not
2157     rename when target file exists).
2159  o  Typo in lwp-download prevented it from compiling.
2161  o  Some minor documentations typos corrected.
2165 Sat Sep 20 1997   Gisle Aas <aas@sn.no>
2167  o  Release 5.13
2169  o  Brand new module called HTTP::Cookies.  It stores cookies
2170     (Set-Cookie and Set-Cookie2 headers) from responses and can
2171     create appropriate Cookie headers for requests.  It can also
2172     share cookie files with Netscape.
2174  o  LWP::UserAgent now support the cookie_jar() attribute.  When
2175     set to an HTTP::Cookies object, it will automatically manage
2176     the cookies sent to the servers.  Off by default.
2178  o  New header utility functions in HTTP::Headers::Util.
2180  o  Win32 and OS/2 patches for the lwp-xxx utilities.  Turn on
2181     binary mode by default (option to turn it off), avoid modifying $0,
2182     and don't be confused about suffixes in the script names.
2183     Contributed by Ben Coleman <bcoleman@mindspring.com>
2185  o  OpenVMS patch for Font:AFM by Brad Hughes <brad@tmc.naecker.com>
2189 Fri Sep  5 1997   Gisle Aas <aas@sn.no>
2191  o  Release 5.12
2193  o  decode_entities() would sometimes introduce ";" after
2194     things that looked like they were entities.
2196  o  HTML::LinkExtor knows about <applet code="...">
2198  o  Patch from Gary Shea <shea@gtsdesign.com> that makes the
2199     tests work even if perl is not called "perl"
2201  o  HTTP::Date handles 12:00PM correctly now. Patch from
2202     William York <william@mathworks.com>
2204  o  HTTP::Request::Common don't quote the boundary string for
2205     multipart/form-data messages any more.
2207  o  Font::AFM works for encodings where .notdef is defined to
2208     have some size.  Documentation and efficiency update.
2212 Wed Aug  6 1997   Gisle Aas <aas@sn.no>
2214  o  Release 5.11
2216  o  Perl version 5.004 is now required for libwww-perl.
2218  o  Win32 patches from Gurusamy Sarathy <gsar@engin.umich.edu>.
2219     Now passes all tests on that platform.
2221  o  HTTPS support contributed by Josh Kronengold <mneme@mcny.com>
2223  o  Support hex entities &#xFF;  HTML::Entities::(en|de)code only
2224     modify their argument in void context.
2226  o  Fixed formatter bug with <font> tags which did not specify size.
2228  o  Better HTML::HeadParser documentation
2230  o  Fixed HTML::LinkExtor documentation typo spotted by Martijn.
2232  o  HTTP::Request::Common now use CRLF for multipart/form-data
2236 Fri Jun 20 1997   Gisle Aas <aas@sn.no>
2238  o  Release 5.10
2240  o  Make '+' a reserved URL character.  Decode unescaped '+' as
2241     space in $url->query_form().
2243  o  Use $Config{d_alarm} to determine default for $ua->use_alarm()
2247 Tue Jun 10 1997   Gisle Aas <aas@sn.no>
2249  o  Release 5.09
2251  o  Removed the MIME modules from the distribution.  They are distributed
2252     separately now.
2254  o  Added a new module called HTTP::Request::Common
2256  o  Improved HTTP::Status documentation.  It is now also possible
2257     to import the is_client_error/is_server_error functions.
2259  o  LWP::MediaTypes::guess_media_type() can now take an optional
2260     HTTP::Header parameter.
2262  o  LWP::Protocol ensures that scheme is legal as module name.
2264  o  LWP::Protocol::http is not as strict when trying to verify the
2265     method name.  It now also accepts responses without a message
2266     on the status line.
2268  o  WWW::RobotRules::AnyDBM_File: Some DBMs fail to allow multiple
2269     opens of the same file.  Patch from Mark James <jamesm@skate.org>
2271  o  Created Bundle::LWP
2275 Sat Apr  5 1997   Gisle Aas <aas@sn.no>
2277  o  Release 5.08
2279  o  Made libwww-perl warning compatible with upcoming perl5.004beta2
2280     (aka 5.003_98)
2282  o  encode_base64() did not work properly if pos() of the string to
2283     encode was different from 0.
2285  o  HTML::Parser was confused about "</" when it did not start an end tag.
2287  o  HTML::FormatPS will provide ISOLatin1Encoding in its output.
2289  o  Calling HTML::LinkExtor->links will clear out old links.
2291  o  url()->rel($base) would ignore the $base argument.
2293  o  Don't croak() when setting url()->path().
2297 Tue Feb 11 1997   Gisle Aas <aas@sn.no>
2299  o  Release 5.07
2301  o  Can limit the size of the response content with $ua->max_size()
2303  o  Added time2iso() functions to HTTP::Date.
2305  o  Made LWP::Protocol::http more portable to the MacPerl. /./ match
2306     different things on MacPerl.
2310 Mon Jan 27 1997   Gisle Aas <aas@sn.no>
2312  o  Release 5.06
2314  o  URI::URL is now compatible with perl5.004 overloading.
2316  o  HTML::HeadParser makes X-Meta-Name headers for <meta> elements
2317     that does not specify an 'http-equiv' attribute.
2319  o  URI::URL::ftp does not die if Net::Domain is not installed and
2320     you ask for an anonymous username or password.
2322  o  WWW::RobotRules:  The robots.txt parser did not ignore comment lines
2323     as it should.
2325  o  LWP::Protocol::http is more forgiving towards servers that return
2326     bad responses.
2328  o  Allow "?" before search string in gopher URLs.
2330  o  LWP::Protocol::file did not escape funny filenames when generating
2331     HTML directory listings.
2333  o  LWP::Protocol::ftp now gets the Content-Encoding correct. 'CODE'
2334     content in PUT requests also work now.
2336  o  Relative locations in redirects did not work with URI::URL::strict.
2338  o  OS/2 portability patches from Ilya Zakharevich
2340  o  LWP::Authen::* patch from Doug MacEachern
2342  o  Support experimental data:- URLs
2344  o  Some tests (those using HTTP::Daemon) now die more gracefully if
2345     IO::* modules is not installed.
2349 Wed Dec  4 1996   Gisle Aas <aas@sn.no>
2351  o  Release 5.05
2353  o  LWP::UserAgent::simple_request: local($SIG{__DIE__}) protects us
2354     against user defined die handlers.
2355         
2356  o  Use Net::Domain (instead of Sys::Hostname) to determine FQDN.  It
2357     is used by URI::URL when it determines anonymous ftp login address.
2358         
2359  o  lwp-download: New program in the bin directory
2361  o  HTML::Parser: Allow '_' in attribute names.  This makes it possible
2362     to parse Netscape's bookmarks.html file.
2364  o  HTTP::Daemon: Fixed chunked transfer encoding and multipart content
2365     in get_request().  Support HTTP/0.9 clients.
2367  o  Don't clobber regex variables when HTTP::Message delegates methods
2368     to the header.
2370  o  Base64::decode_base64 now checks that the length input string to
2371     decode is a multiple of 4.
2373  o  t/robot/rules-dbm.t clean up better and will use AnyDBM for dumping
2375  o  File::CounterFile: $/ strikes again by Andreas König
2377  o  File::Listing updates from William York <william@mathworks.com>. We
2378     can now parse the MS-Windows ftp server listings.
2380  o  HTTP::Date now supports the MS-Windows 'dir' date format.  Patch by
2381     William York.
2383  o  LWP::MediaTypes::media_suffix will return first type in scalar context.
2387 Tue Oct 22 1996   Gisle Aas <aas@sn.no>
2389  o  Release 5.04
2391  o  Added HTTP::Daemon.  This is a HTTP/1.1 server class.  This means
2392     that libwww-perl no longer is a client library only.  The HTTP::Daemon
2393     is also used in the new test suite.
2395  o  HTTP::Message support the protocol() method.  Used by HTTP::Daemon.
2397  o  HTTP::Response can be constructed with a header and content as
2398     argument.
2400  o  Typo corrections in the documentation.
2402  o  File::Listing::parse_dir accepts "GMT" as timezone now.
2404  o  HTML::Parser will call the start() method with two new parameters;
2405     $attrseq, $origtext.
2407  o  Integrated HTML::FormatPS patches from
2408     Jim Stern <jstern@world.northgrum.com>
2410  o  Class modules don't inherit from AutoLoader any more.  They just
2411     import the AUTOLOAD method.
2413  o  LWP::Protocol will untaints scheme before loading protocol module.
2415  o  Digest does not send "opaque" if it was not present in the request.
2416     The "Extension" header is not returned any more.
2418  o  New method: $url->crack that will return a list of the various
2419     elements in a URI::URL.
2421  o  WWW::RobotRules did not use the agent() method when determining
2422     who we are.  This affected WWW::RobotRules::AnyDBM_File parsing
2423     for robots.txt.  Visit count did not increment for
2424     WWW::RobotRules::InCore.
2428 Tue Oct  1 1996   Gisle Aas <aas@sn.no>
2430  o  Release 5.03
2432  o  Hakan Ardo's persistent robot rules is now part of the standard
2433     distribution.  This is still experimental and might change in the
2434     future.  It includes the new WWW::RobotRules::AnyDBM_File class
2435     and updates to LWP::RobotUA.
2437  o  HTML::Parser now supports buggy Netscape comment parsing.  Enable
2438     it by calling $p->netscape_buggy_comment(1).  The previous version
2439     of the parser could also (under very unlucky and unlikely
2440     circumstances) call the $self->comment() method several times for
2441     the same comment text.
2443  o  HTML::Parser: Use new $p->eof to signal end of document instead of
2444     $p->parse(undef).
2446  o  HTML::Element::starttag() is now smarter about which quotes it
2447     use around attribute values.
2449  o  New HTTP::Response methods: current_age(), freshness_lifetime(),
2450     is_fresh(), fresh_until().
2452  o  HTTP::Message:  New method ($mess->content_ref) which will return
2453     a reference to the current content.
2455  o  URI::URL:  New method ($url->rel) which does the opposite of abs().
2456     Example: url("http://host/a/b/c", "http://host/c/d/e")->rel would
2457     return url("../../a/b/c", "http://host/c/d/e").  This was
2458     suggested by Nicolai Langfeldt <janl@ifi.uio.no>
2460  o  URI::URL:  $url->query_form can now take array references as value
2461     specification.  For instance: $url->query_form(foo => ['bar', 'baz']
2463  o  Avoid '"my" variable $var masks earlier declaration in same scope'
2464     warnings in perl5.003_05.
2468 Wed Sep 11 1996   Gisle Aas <aas@sn.no>
2470  o  Release 5.02
2472  o  lwp-rget:  Initialize proxy settings from envirionment
2474  o  HTML::Entities::encode_entities: Don't encode $ and %
2476  o  HTML::LinkExtor::links: Now works when no links were found.
2478  o  HTTP::Headers::as_string: Allow \n in header value
2482 Tue Aug  1 1996   Gisle Aas <aas@sn.no>
2484  o  Release 5.01.
2486  o  Updated ftp protocol module to be compatible with Net::FTP 
2487     version 2.00 (the version found in libnet-1.00)
2489  o  New HTML parser module called HTML::LinkExtor
2491  o  Various documentation typo corrections.  Most of these contributed
2492     by Bob Dalgleish.
2494  o  HTML::HeadParser updates 'Content-Base' instead of 'Base'.  It also
2495     updates the 'Link' header based on <link ...>
2497  o  HTTP::Headers and HTTP::Status updated according to
2498     draft-ietf-http-v11-spec-06
2500  o  HTTP::Headers can now use "_" as alternative to "-" in field names.
2502  o  HTTP::Response::base now looks for 'Content-Base',
2503     'Content-Location' and 'Base' headers.
2505  o  Avoid warning in LWP::MediaTypes if $ENV{HOME} is not defined.
2507  o  The new $ua->parse_head() method can be used to turn off
2508     automatic initialization of response headers from the <HEAD>
2509     section of HTML documents.
2511  o  Added eq() method for URI::URL objects
2513  o  The HTML::Formatter recovers even if a handle method is not defined
2514     for all tags found during traversal
2518 Sun May 26 1996   Gisle Aas <aas@sn.no>
2520  o  Release 5.00.
2522  o  LWP::Simple::head() now return something useful in scalar context.
2524  o  Rewritten the HTML::Parse stuff.  Introduced the HTML::Parser class
2525     that will tokenize a HTML document.  The rest of the old
2526     HTML::Parse functionality has moved to HTML::TreeBuilder class.
2527     Note, that the HTML stuff is still alpha.
2529  o  Implemented HTML::HeadParser.  This is a lightweight parser for
2530     the <HEAD> section of a HTML document.
2532  o  HTML::Element had problem with presenting things like <foo
2533     bar="bar">.
2535  o  HTML::Entities: Included additional ISO-8859/1 entities listed in
2536     RFC1866.
2538  o  HTML::AsSubs exported 'header' instead of 'head'
2540  o  We know about a few more of the HTML 3.2 element.
2542  o  HTTP::Date had problems with years before 1970, because Time::Local
2543     went into an infinite loop.  Check for this.
2545  o  Added $header->title method.
2547  o  Made $header->authorization_basic return "uname:passwd" in scalar
2548     context
2550  o  LWP::Protocol::collect() will let the HTML::HeadParser look at the
2551     document content as it arrives.  This will initialize headers from
2552     elements like <base href="...">, <title>...</title> and <meta
2553     http-equiv="..." ...>.
2555  o  Simplified $response->base implementation, because we don't have
2556     to look into the content any more.
2558  o  Added -quiet option to lwp-rget
2560  o  Typo fixes and some documentation additions.
2564 Thu May  9 1996   Gisle Aas <aas@sn.no>
2566  o  Release 5b13
2568  o  Made URI::URL::strict(0) the default.  I got tired of all this
2569     eval { } stuff just to recover.  The URI::URL::strict'ness also
2570     determine if calling some standard method that happens to be
2571     illegal for some protocol scheme will croak or just be ignored.
2573  o  Ensure correct $INPUT_RECORD_SEPARATOR and $OUTPUT_RECORD_SEPARATOR
2574     at places where we <> or print.
2576  o  Always localize $_ before any 'while(<FILE>) {}'-loops
2578  o  Implemented $protocol->collect_once() and simplified several
2579     of the protocol implementations by using it.
2581  o  The HTML parser used to get it wrong if you were unlucky about the
2582     breakup of the text. An example of broken behaviour was this:
2584         $html = parse_html "<!-- A comment -";
2585         $html = parse_html "-> and some text.";
2587  o  The HTML parser does not ignore whitespace-only text any more.
2589  o  HTML::Parse warnings are now optional and turned off by default.
2591  o  New start for $html->as_HTML().
2593  o  Fixed some typos
2597 Wed Apr 24 1996   Gisle Aas <aas@sn.no>
2599  o  Release 5b12
2601  o  New utility program called 'lwp-rget'.
2603  o  $response->base was broken for HTML documents
2605  o  New fancy LWP::Debug import() method.  Can now turn on debugging with
2606     "use LWP::Debug '+';"
2608  o  Trap exceptions (die) from the response callback routine
2610  o  The RobotUA now requires an e-mail address of the person reponsible
2611     for the robot.
2613  o  New $ua->from() method.
2615  o  Support for gopher Index-Search (gopher type '7' requests).
2616     Contributed by Harry Bochner <bochner@das.harvard.edu>
2618  o  Cleaned up white-space usage in the source.
2622 Wed Apr  3 1996   Gisle Aas <aas@sn.no>
2624  o  Release 5b11
2626  o  Implemented a NNTP protocol module.  The library can now fetch and
2627     post news articles.
2629  o  More documentation
2631  o  Don't look at the URI header for redirects
2633  o  New $res->base() method for HTTP::Responses
2635  o  Graham Barr's patch to File::Listing to make it more OO internally
2637  o  content_type() return value is canonicalized
2639  o  $ua->request() does not die on bad URLs any more
2641  o  LWP::MediaTypes merge all media.types files that if finds
2643  o  FTP request with content to file or callback did not work
2645  o  The value of HTTP Host: header is now $url->netloc;
2647  o  The URI::URL constructor now accept URLs wrapped up in "<>"
2649  o  $url->abs() now has a second optional argument that makes it accept
2650     that relative URLs can have scheme, i.e. treat "http:img.gif" as a
2651     relative URL.
2653  o  Added prototypes to the HTTP::Status::is_xxx() functions
2655  o  Added prototypes to the MIME:: encoding/decoding functions
2657  o  Always return scheme for mailto and news URLs (as_string)
2659  o  RobotRules patches from Henry A Rowley.
2661  o  More tests
2663  o  <SMALL> and <BIG> again
2667 Thu Mar 14 1996   Gisle Aas <aas@sn.no>
2669  o  Release 5b10
2671  o  GET ftp://host/doc was never successful for normal files.
2673  o  LWP::Socket: read_until() did not notice EOF condidtion.  I.e. if
2674     a HTTP server closed the connection before any output was generated,
2675     the we continued to read 0 bytes in a busy loop until the alarm()
2676     killed us.
2678  o  Added support for Digest Access Authentication.  Contributed by
2679     Doug MacEachern <dougm@osf.org>.
2681  o  Makefile.PL: check for MD5 library
2683  o  No longer print message content in HTTP::Response::error_as_HTML()
2685  o  Access to "file:/path" gave warning when the envirionment variable
2686     no_proxy was set.
2688  o  The http-post test sends a Content-Type header.  Some servers hang
2689     if this header is missing.
2691  o  HTML::Parse:
2692      -   allow <SMALL> and <BIG> tags
2693      -   allow empty attribute values
2697 Tue Mar  5 1996   Gisle Aas <aas@sn.no>
2699  o  Release 5b9
2701  o  Started to write on the libwww-perl cookbook (lwpcook.pod)
2703  o  The URI::URL module now exports the function url().  This is an
2704     alternative (easy to use) constructor function.
2706  o  Expanding relative file URLs starting with "#" did not work.
2708  o  Fixed autoloaded DESTROY problem by adding empty DESTROY routine
2709     to URI::URL.
2711  o  Does not try generate password for ftp-URLs unless the username is
2712     "anonymous" or "ftp"
2714  o  The LWP::Simple user agent proxy settings are intialized from
2715     the proxy environment variables. 
2717  o  LWP::Protocol::ftp: Use the Net::FTP library to access ftp servers.
2718     Convert directories to HTML on request (Accept: text/html).
2720  o  New module HTTP::Negotiate
2722  o  New module File::Listing
2724  o  HTTP::Date::str2time can parse a few more formats, like the 'ls -l'
2725     format and ISO 8601.  The function now also takes an optional second
2726     parameter which specify a default time zone.
2728  o  Added prototypes to the HTTP::Date functions.
2730  o  The library adds a timestamp to responses ("Client-Date")
2732  o  HTTP::Status:  Updated to proposed HTTP/1.1
2734  o  HTTP::Headers: Updated to proposed HTTP/1.1
2736  o  LWP::Protocol::http:  Updated to HTTP/1.1 methods
2738  o  Took out stringify overloading in HTML::Element.
2742 Mon Feb 26 1996   Gisle Aas <aas@sn.no>
2744  o  Release 5b8
2746  o  Renamed functions using thisStyleOfNames to this_style_of_names.
2747     Provided a script called 'update_from_5b7'
2749  o  Renamed the 'request' and 'mirror' scripts to 'lwp-request' and
2750     'lwp-mirror'.  The GET, POST, HEAD aliases for 'lwp-request' are
2751     the same.
2753  o  Implemented LWP::RobotUA
2755  o  Class name for RobotRules did not match the file name
2757  o  URI::URL
2758       - perl5.002gamma is required (because use vars).
2759       - The leading slash in now part of the path if it is present.
2760       - More documentation
2761       - Use AutoLoader to speed things up.
2762       - New class URI::URL::_login and made telnet, rlogin, tn3270
2763         subclasses from this one.
2764       - URI::URL::wais is better supported.
2765       - URI::URL::news is better supported.
2766       - New URI::URL::mailto methods: user/host
2768  o  HTTP::Date::time2str now works correctly with '0' as argument
2770  o  HTTP::Message delegates unknown methods to the headers.
2772  o  HTTP::Request::uri is an alias for HTTP::Request::url.  Can set
2773     the URL to undef.
2775  o  Added convenience methods to HTTP::Headers for easy access to
2776     frequently used headers.
2778  o  Simplified LWP::Debug
2780  o  Use standard AutoLoader for LWP::IO functions.
2782  o  Played with the profiler (Devel::DProf) and made some things
2783     go quicker.
2785  o  Included the File::CounterFile module.  Excluded Mail::Cap module
2786     as it is also part of the MailTools package.
2790 Mon Feb  5 1996   Gisle Aas <aas@sn.no>
2792  o  Release 5b7
2794  o  Perl5.002 is required now
2796  o  Rewrite of the URI::URL module (version 4.00)
2797       - escaping/unsafe stuff redone (and removed)
2798       - URI::URL::_generic moved out of URL.pm
2799       - netloc, path, params, query is now stored internally in escaped form
2800       - new methods for URI::URL::_generic are:
2801            epath
2802            eparams
2803            equery
2804            path_components
2805            absolute_path
2806       - new methods for URI::URL::http are:
2807            keywords
2808            query_form
2809       - new methods for URI::URL::file are:
2810            newlocal
2811            local_path
2812            unix_path
2813            dos_path
2814            mac_path
2815            vms_path
2817  o  URI::Escape now semi-compile regular expressions (by evaling an
2818     anonymous sub).  Same techinque is also used in HTML::Entities.
2820  o  HTTP::Date parser rewritten using regular expressions.
2822  o  HTTP::Headers->as_string() now croaks if any field values
2823     contain newline.
2825  o  HTTP::Status constants use empty prototype.
2827  o  Font metrics moved to a new subdirectory (lib/Font/Metrics)
2829  o  Don't use the VERSION script any more (even if it was very clever)
2831  o  HTML::Entities will now export the names decode_entities() and
2832     encode_entities().
2834  o  Andreas Koenig's black patch to HTML::Element.
2836  o  The HTML::Formatter now knows about <menu> and <dir> tags
2838  o  The construct "defined ref($arg)" did not work on perl5.002
2839     becase ref now always return something defined.
2841  o  LWP::UserAgent sends by default an 'User-Agent' header.
2843  o  LWP::Simple sends 'User-Agent' header to servers.
2845  o  Updated the LWP::Socket module to use the new Socket.pm interface.
2847  o  LWP::Protocol::http sends the new HTTP/1.1 'Host' header.
2849  o  LWP::Protocol::file use $url->local_path to get a file to open.
2850     It also inserts a <BASE> tag in directories instead of a redirect.
2852  o  MIME::Base64 routines can be called as MIME::Base64::encode() and
2853     MIME::Base64::decode().  Same kind of thing for QuotedPrint.
2857 Mon Nov  6 1995   Gisle Aas <aas@oslonett.no>
2859  o  Release 5b6
2861  o  Installation should work better for those that still runs
2862     perl4 as 'perl'.  The mirror script is not installed by
2863     default.
2865  o  LWP::Socket::_getaddress() Numerical IP adresses did not work.
2867  o  LWP::Socket::pushback() did not work.  This also avoids the bad
2868     pp_select() core dump from perl.
2870  o  LWP::IO now also selects on socket exceptions.
2872  o  HTML::Parse:  Ignore <!DOCTYPE ...> regardless for case.  Some
2873     bad insertElement() calls made infinite loops.
2875  o  The uri.t test works better for places where /tmp is a sym-link.
2879 Sat Sep 16 1995   Gisle Aas <aas@oslonett.no>
2881  o  Release 5b5
2883  o  newlocal URI::URL does not put "//localhost" into the URLs any
2884     longer.
2886  o  The request program: New -o option to reformat the HTML code
2887     New -C option to provide credentials on the command line.
2888     The -b option never worked.
2890  o  LWP::Protocol::file now returns redirect for access to directories
2891     where the trailing slash is missing.
2895 Thu Sep 14 1995   Gisle Aas <aas@oslonett.no>
2897  o  Speedups and bug fixes in the HTML parser.  The parser now
2898     understands some more depreciated tags (like <xmp> and <listing>).
2900  o  HTML::Elements are now stingified using perl overloading.
2901     The interface to the traverse() callback has changed.
2903  o  Implemented HTML formatters for plain text and Postscript.
2905  o  Added lib/Font stuff to support the Postscript formatter.
2907  o  Inspired by Tim Bunce, I implemented the HTML::AsSubs module.
2908     Don't know if it is really useful.
2910  o  The local/get test does not use /etc/passwd any more.
2914 Thu Sep  7 1995   Gisle Aas <aas@oslonett.no>
2916  o  Changed package name to libwww-perl-5xx
2918  o  Made LWP::Protocol::ftp actually transfer data
2920  o  Implemented methods for LWP::Socket to act as a server:
2921     bind(), listen(), accept(), getsockname(), host(), port()
2925 Wed Sep  6 1995   Gisle Aas <aas@oslonett.no>
2927  o  Release 0.04
2929  o  Implemented modules to parse HTML.
2933 Mon Sep  4 1995   Gisle Aas <aas@oslonett.no>
2935  o  Implemented Mail::Cap which will become part of the MailTools
2936     package.
2938  o  Moved Base64 to MIME::Base64.  Reimplemented MIME::Base64 by using
2939     [un]pack("u",...)   Implemented LWP::MIME::QuotedPrint for
2940     completness sake.  Routine names has changed as suggested by Tim
2941     Bunce.
2943  o  LWP::MediaType reads default types from media.types file.
2944     guessMediaType() now also returns encodings.  New function mediaSuffix()
2946  o  Pass $url to $ua->getBasicCredentials().  This also fixes security
2947     hole with the old implementation of getBasicCredentials().
2949  o  LWP::Protocol::file now sets Content-Encoding headers
2951  o  Allow request content to be provided by a callback routine.
2953  o  Fix bug that prevented response callback to work.  The first parameter
2954     (data) is no longer a reference, because $_[0] is already a reference.
2955     Don't callback unless successful response.  Callbacks during redirects
2956     was confusing.
2958  o  URI::URL.  Remove port from netloc if it is the default port.
2959     Don't use anything, just require.
2961  o  HTTP::Message->addContent() does not need a reference parameter.
2963  o  LWP::Socket->open() has been renamed top LWP::Socket->connect()
2964     LWP::Socket->close has gone.  Implemented new method LWP::Socket->read()
2965     that returns as fast as it has some data to offer.  Implemented
2966     LWP::Socket->pushback().
2968  o  Does not die in LWP::UserAgent->request()
2970  o  LWP::Socket now use LWP::IO for low level IO
2972  o  Implemented LWP::TkIO as a replacement module for LWP::IO when using Tk.
2976 Thu Aug 17 1995   Gisle Aas <aas@oslonett.no>
2978  o  $ua->redirectOK() for checking redirects
2980  o  reorganized tests in the "t" directory.
2984 Fri Aug 11 1995   Gisle Aas <aas@oslonett.no>
2986  o  Release 0.03
2988  o  Included RobotRules.pm from Martijn Koster
2992 Thu Aug 10 1995   Gisle Aas <aas@oslonett.no>
2994  o  New module URI::Escape (URI::URL use this module for default
2995     escaping) that provide the uri_escape() and uri_unescape()
2996     functions.
2998  o  Setting $url->scheme now changes the class of the object.
3000  o  Made $httpurl->user() and $httpurl->password() illegal.
3001     Likewise for other URL schemes.
3006 Wed Aug  9 1995   Gisle Aas <aas@oslonett.no>
3008  o  Reorganisation as discussed on <libwww-perl@ics.uci.edu>
3009        LWP::Date       --> HTTP::Date
3010        LWP::MIMEheader --> HTTP::Headers
3011        LWP::StatusCode --> HTTP::Status
3012        LWP::Message    --> HTTP::Message
3013        LWP::Request    --> HTTP::Request
3014        LWP::Response   --> HTTP::Response
3015        LWP::MIMEtypes  --> LWP::MediaTypes
3017  o  HTTP::Date parses ctime format with missing timezone as suggested
3018     by Roy Fielding <fielding@beach.w3.org>
3020  o  HTTP::Status and LWP::MediaTypes exports their functions by default.
3022  o  Splitted up the URI::URL module.  Schemes are implemented by separate
3023     files that are autoloaded when used.  Self test moved to "t/uri.t".
3026        
3027 Mon Aug  7 1995   Gisle Aas <aas@oslonett.no>
3029  o  Applied patch from Marc Hedlund <hedlund@best.com>
3030        - Update the @header_order according to the August 3rd draft.
3031        - Added Response Header fields: 'Location', 'Public', 'Retry-After',
3032          'Server', and 'WWW-Authenticate'.
3033        - Moved 'unknown header' handling from &scan to &header. The old
3034          implementation was forcing all unknown header-words to begin with
3035          an uppercase (as it should be), but disallowed other uppercase
3036          letters.
3037        - updates the status code messages under the August
3038          3rd HTTP/1.0 draft.  '203' became 'Non-Authoritative Information',
3039          '303' became 'See Other', and a new code,
3040          '411 Authorization Refused', was added.
3042  o  Can remove multiple headers with single removeHeader() call in MIMEheader.
3044  o  Can assign multiple field/value pairs in header() method of MIMEheader.
3046  o  A field with multiple values is printed as separate values in
3047     MIMEheader::as_string().
3049  o  LWP::Response contain new attributes: previous() and request().  These
3050     attributes are updated by the UserAgent.
3052  o  Appended \n to some die statements in Socket so that line numbers are
3053     suppressed in error messages.
3055  o  Made UserAgent::clone work for reference members
3057  o  Check for redirect loops and multiple authorization failures by
3058     examination of the response chain.
3060  o  Use "\015\012" instead of "\r\n" in protocol modules.  Some systems
3061     define \r and \n differently.
3063  o  request program can now handle documents that needs autorization by
3064     prompting the user for username/password. Added new -S option to print
3065     request/response chain.
3068   
3069 Tue Jul 25 1995   Gisle Aas <aas@oslonett.no>
3071  o  Release 0.02
3073  o  Included URI::URL in the release
3077 Mon Jul 24 1995   Gisle Aas <aas@oslonett.no>
3079  o  Incorporated Makemake.PL and VERSION from Andreas Koenig <koenig@mind.de>
3080     As a result of this the following things have changed:
3081        - programs in "bin" are extracted from .PL-files
3082        - reintroduced "lib"
3083        - "test" has been renamed as "t"
3084        - test programs in "t" has been made Test::Harness compatible
3085        - we now have a MANIFEST file
3086        - no more need fro update_version, make-dist, lwp-install
3088  o  Renamed bin/get to bin/request.  Links to it are now all upper case.
3090  o  Proxy support in bin/request (provided by Martijn Koster)
3092  o  UserAgent can now load proxy settings from environment
3094  o  LWP::Protocol::ftp is under way but not really finished
3098 Tue Jul 18 1995   Gisle Aas <aas@oslonett.no>
3100  o  Implemented LWP::Protocol::gopher
3102  o  Implemented LWP::Protocol::mailto
3104  o  Fixed proxy typo
3108 Mon Jul 17 1995   Gisle Aas <aas@oslonett.no>
3110  o  Made release 0.01
3114 Mon Jul 17 1995   Gisle Aas <aas@oslonett.no>
3116  o  Don't loose first line of HTTP/0.9 requests
3118  o  LWP::Socket use syswrite() for writing
3120  o  Added RC_* documentation to LWP::StatusCode
3122  o  LWP::Date now use hash to look up month numbers
3124  o  Added -f option to "get"
3126  o  Untabify
3128  o  Added a "TODO" list
3130  o  Fixed various typos
3134 Fri Jul 14 1995   Gisle Aas <aas@oslonett.no>
3136  o  Reorganized directories.  Moved LWP.pm up.  Moved file.pm and http.pm
3137     into the LWP::Protocol direcotory.  Moved LWP out of the lib directory
3138     and removed lib.
3140  o  Implemented the "get" and "mirror" scripts in the "bin" directory.
3142  o  Implemented "install-lwp", "update_version" and "make-dist".  The library
3143     version number is found in the VERSION file.
3145  o  Always adds 1900 to the year in LWP::Date
3147  o  In LWP::MIMEheader:  Implemented clone(), removeHeader() and scan() 
3148     methods.  Reimplemented asString.  Removed asMIME().  Moved "Good
3149     Practice" into this file, and reimplemented it.
3151  o  Moved "header" and "content" into LWP::Message class.  This change made
3152     LWP::Request and LWP::Response much simpler.  Made clone() method
3153     actually work.
3155  o  LWP::Protocol::implementor does not die if it cannot load package.
3157  o  Moved UserAgent convenience methods into LWP::Simple.  Made LWP::Simple
3158     export LWP::StatusCode symbols and functions.
3160  o  Implemented $ua->isProtocolSupported($scheme) method.
3162  o  Nicer directory listing in LWP::Protocol::file.pm
3164  o  Rely on URI::URL 3.00 behaviour for $url->full_path
3166  o  Library version number now in LWP.pm.  You should be able to say
3167     "use LWP 1.0;" if you need at least this version.
3169  o  Various cleanups and arranging layout as I like it.  Use fooBar-style
3170     (as opposed to foo_bar stype) everywhere.  This means that as_string()
3171     now is called asString().
3173  o  Added more documentation.
3177 Wed Jun 14 1995   Gisle Aas <aas@oslonett.no>
3179  o  Removed lot of rendundant & before function calls.
3181  o  $this --> $self
3183  o  &collector passes content as a reference, don't want to copy so much
3185  o  parameterlist to collect callback has been rearranged
3187  o  Response::addContent gets a reference to the data
3189  o  Added some callback documentation to UserAgent.pm
3191  o  Protocol::file now uses the collector
3193  o  Introduced LWP::Simple
3197 Sun Jun 11 1995   Martijn Koster <m.koster@nexor.co.uk>
3199  o  Added basic authentication support
3201  o  Added mirroring of single documents
3203  o  Change Protocol construction from whacky URL.pm (constructor returns
3204     subclass) to more normal C++'ish way.
3208 Wed June 7 1995   Martijn Koster <m.koster@nexor.co.uk>
3210  o  Minor cleanups from printed code inspection
3214 Wed May 24 1995   Martijn Koster <m.koster@nexor.co.uk>
3216  o  Added redirection resolution
3218  o  Added optional autoloading of protocols
3222 Tue May 23 1995   Martijn Koster <m.koster@nexor.co.uk>
3224  o  Separated socket stuff into separate module
3226  o  Added HTTP proxy support
3228  o  Made alarm handling optional
3230  o  Added a LWP::Message for completeness sake
3232  o  Added LWP::MemberMixin to reduce code duplication
3234  o  Cosmetic changes to LWP::Date
3236  o  Renamed LWP::Error to LWP::StatusCode
3238  o  Renamed LWP::MIME to LWP::MIMEtype
3240  o  Changed the tests to cope with all this
3242 It's getting there...
3246 Mon May 22 1995   Martijn Koster <m.koster@nexor.co.uk>
3248  o  Changed the socket reading to use sysread.  This will have to go
3249     into a module of its own.
3253 Thu 18 May 1995   Martijn Koster <m.koster@nexor.co.uk>
3255  o  Mentioned on libwww-perl that I had changed the classes around lots.