1 _______________________________________________________________________________
2 2008-11-05 Release 5.820
4 Main news is the ability to control the heuristics used to determine
5 the expiry time for response objects.
9 Reformat later parts of Changes
10 Add a paragraph to summarize the motivation for releases since 5.815
13 Calculation of current_age with missing Client-Date.
14 The age/freshness methods now take an optional 'time' argument
15 More correct matching of 'max-age' in freshness_lifetime method
16 The freshness_lifetime method now support options to control its heuristics
19 _______________________________________________________________________________
20 2008-10-20 Release 5.819
22 Release 5.815 to 5.818 had a severe bug that sometimes made LWP not
23 collect all data for the responses it received. This release is
24 strongly recommended as an upgrade for those releases.
28 Don't override $Net::HTTPS::SSL_SOCKET_CLASS if it's already set.
29 Wrong content handlers would sometimes be skipped [RT#40187]
32 _______________________________________________________________________________
33 2008-10-16 Release 5.818
35 Main news in this release is the addition of the dump() method to the
36 request and response objects. If found that I often ended up printing
37 $resp->as_string for debugging and then regretting after the terminal
38 got into a strange mode or just kept on scrolling for the longest
43 Use deflate compression instead of gzip for the test
44 Simplify; Get rid of the $USE_STORABLE_DCLONE configuration
45 Add dump method to HTTP::Message.
46 Use $res->dump instead of rolling our own.
47 Layout change; move headers() methods to a more logical place.
48 Add support for x-bzip2 encoding; fix bzip2 decoding.
49 Add send_header method to HTTP::Daemon
50 Make the lwp-request User-Agent string include the LWP version.
53 clone implemented in terms of Storable::dclone [RT#39611]
56 _______________________________________________________________________________
57 2008-10-10 Release 5.817
59 This is the release where I played around with Devel::NYTProf to
60 figure where time was actually spent during the processing of requests
61 with LWP. The methods that manipulated header objects stood out, so
62 this release contains a few tweaks to make those parts faster.
64 I also figured a few convenience methods to encode and decode the
65 content of request/response objects would be in order.
69 Should store "wire" headers field names with _ without translation.
70 Test HTTP::Request->parse().
71 Restore pre-5.815 behaviour of returning "400 Bad Request" [RT#39694]
72 Rename the HTTP::Status constants to have HTTP_ prefix
73 Detection of unsupported schemes was broken [RT#37637]
74 Allow tainted methods to be forwarded to HTTP::Headers [RT#38736]
75 Add strict mode to HTML::Form
76 Fix test now that less warnings are generated.
77 Add content_is_xml method
78 Make split_header_words() lower case returned tokens/keys
79 Avoid invoking AUTOLOAD on object destruction [RT#39852]
80 Add decode() method to HTTP::Message
81 Add encode() method to HTTP::Message
82 Allow multiple fields to be set with push_header().
83 Make content_type and content_is_xhtml methods faster
87 _______________________________________________________________________________
88 2008-09-29 Release 5.816
90 Oops, release 5.815 broke download-to-file on Windows.
94 Add missing binmode() [RT#39668]
98 _______________________________________________________________________________
99 2008-09-24 Release 5.815
101 The main change this time is the introduction of handlers to drive the
102 processing of requests in LWP::UserAgent. You can also register your
103 own handlers for modifying and processing requests or responses on
104 their way, which I think is a much more flexible approach that trying
105 to subclass LWP::UserAgent to customize it. If we have had these
106 early on then the LWP::UserAgent API could have been so much simpler
107 as the effect of most current attributes can easily be set up with
110 Also thanks to contributions by Bron Gondwana LWP's Basic/Digest
111 authenticate modules now registers handlers which allow them to
112 automatically fill in the Authorization headers without first taking
113 the round-trip of a 401 response when LWP knows the credentials for a
118 We don't need to build the docs to run the tests.
120 The jigsaw service isn't up to much good these days.
121 HTTP::Cookies produces warnings for undefined cookie param names [RT#38480]
122 Typo fix; HTTP::Message will never include x-bzip2 in Accept-Encoding [RT#38617]
123 Added HTTP::Config module
124 Add methods to configure processing handlers.
125 100 Continue response not complete.
126 Use 3-arg open when response content to files.
127 Make the show_progress attribute official (by documenting it).
128 Start using handlers for driving the inner logic of LWP::UserAgent.
129 Expose the content_is_html and content_is_xhtml methods from HTTP::Headers.
130 Make credentials method able to get/set values.
131 An auth handler per realm.
132 Match proxy setting for request.
133 Set up separate handler for adding proxy authentication.
134 Add request_preprepare to be able to initialize proxy early enough.
135 Smarter get_my_handler() that can also create handlers.
136 Refactor; introduce run_handlers method
137 Pass in handler hash to the handler callback.
138 Don't let version=1 override behaviour if specified with a plan Set-Cookie header.
139 Remove handler when we don't have a username/password for the realm.
140 Make tests use Test.pm
143 Double-check that username or password has changed after a failed login.
144 Update Digest Authen to subclass Basic.
147 Avoid running out of filehandles with DYNAMIC_FILE_UPLOAD.
150 Fixed parsing of header values starting with ':' [RT#39367]
153 Documentation typo fixes [RT#38203]
156 _______________________________________________________________________________
157 2008-07-25 Release 5.814
161 Add HTTP::Message::decodable()
162 Use decoded_content in the synposis
163 Avoid adding an empty first part in $mess->add_part()
164 Get rid of all the manual dependency tests.
165 Simplify the Makefile.PL (no interactivity)
166 Provide DELETE method in HTTP::Request::Common [RT#37481]
167 Checkbox picks up nearby text in description of alternates [RT#36771]
168 HTML::Form::possible_values() should not returned disabled values [RT#35248]
169 File::Listing documentation claimed only 'unix' format was supported [RT#22021]
170 File::Listing only support English locales [RT#28879]
171 Make common-req.t use Test.pm
172 Typo; CAN_TALK_TO_OUTSELF
175 Fix up File::Listings fallback to dosftp [RT#23540]
177 Hans-H. Froehlich (1):
178 File::Listing parse failure on BSD Linux based systems [RT#26724]
181 _______________________________________________________________________________
182 2008-06-17 Release 5.813
185 RobotUA constructor ignores delay, use_sleep [RT#35456]
186 Spelling fixes [RT#35457]
187 Add HTTP::Response->filename [RT#35458]
190 Better diagnostics when the HTML::TokeParser constructor fails [RT#35607]
191 Multiple forms with same-named <select> parse wrongly [RT#35607]
194 Provide a progress method that does something that might be useful.
197 Documentation typo fix [RT#36132]
200 _______________________________________________________________________________
201 2008-04-16 Release 5.812
205 Simplified Net::HTTP::Methods constructor call.
206 Croak if Net::HTTP constructor called with no argument.
207 Avoid calling $self->peerport to figure out what the port is.
208 5.811 breaks SSL requests [RT#35090]
209 Make test suite compatible with perl-5.6.1.
212 Wrong treatment of qop value in Digest Authentication [RT#35055]
215 _______________________________________________________________________________
216 2008-04-14 Release 5.811
219 Avoid "used only once" warning for $Config::Config.
220 Make HTTP::Request::Common::PUT set Content-Length header [RT#34772]
221 Added the add_content_utf8 method to HTTP::Message.
223 Retry syscalls when they fail with EINTR or EAGAIN [RT#34093,32356]
224 Allow HTTP::Content content that can be downgraded to bytes.
227 HTML::Form does not recognise multiple select items with same name [RT#18993]
230 Document how HTTP::Status codes correspond to the classification functions [RT#20819]
233 Allow 100, 204, 304 responses to have content [RT#17907]
236 HTTP::Request::Common::POST suppressed filename="0" in Content-Disposition [RT#18887]
239 _______________________________________________________________________________
240 2008-04-08 Release 5.810
243 Small documentation issues [RT#31346]
244 Explain $netloc argument to $ua->credentials [RT#31969]
245 Make lwp-request honour option -b while dumping links [RT#31347]
246 Ignore params for date convenience methods [RT#30579]
247 Get rid of all the old CVS $Keyword:...$ templates. Set $VERSION to 5.810.
248 Update Copyright year.
249 Drop some sample URLs that were failing.
250 Complement the HTTP::Status codes [RT#29619]
251 Don't allow HTTP::Message content to be set to Unicode strings.
252 Refactor test for Encode.pm
255 Spelling fixes [RT#33272]
256 Trigger HTML::HeadParser for XHTML [RT#33271]
257 Escape status line in error_as_HTML, convert to lowercase [RT#33270]
261 Protocol/file.pm: postpone load of URI::Escape and HTML::Entities [RT#33842]
264 HTML::Form Module and <button> element clicks
267 HTTP::Cookies handle malformed empty Set-Cookie badly [RT#29401]
270 [HTTP::Request::Common] Does not handle filenames containing " [RT#30538]
273 Allow malformed chars in $mess->decoded_content [RT#17368]
276 Croak if LWP::UserAgent is constructed with hash ref as argument [RT#28597]
279 Disabled, checked radiobutton being submitted [RT#33512]
282 warn if TextInput's maxlength exceeded [RT#32239]
285 _______________________________________________________________________________
286 2007-08-05 Gisle Aas <gisle@ActiveState.com>
290 Get rid of t/live/validator test. Too much JavaScript madness
291 for it to be a sane LWP test.
295 2007-07-31 Gisle Aas <gisle@ActiveState.com>
299 Apply patch correction from CPAN RT #26152
301 More laxed t/live/validator test.
305 2007-07-19 Gisle Aas <gisle@ActiveState.com>
309 Added progress callback to LWP::UserAgent.
311 HTTP::Daemon didn't avoid content in responses to HEAD requests
313 Add support for HTTP Expect header to HTTP::Daemon (CPAN RT #27933)
315 Fix t/base/message.t so tests are skipped if Encode is not
316 installed. (CPAN RT #25286)
318 Add HTML::Tagset as a prerequisite to Makefile.PL
320 Do not clobber $_ in LWP::Protocol::nntp (CPAN RT #25132)
322 Fix lwp-download so it can download files with an "_" in the filename
325 Quiet complaints from HTML::HeadParser when dealing with undecoded
326 UTF-8 data. (CPAN RT#20274)
328 When both IO::Socket::SSL and Net::SSL are loaded, use the latter
331 Allows SSL to work much more reliably:
334 Allow text/vnd.wap.wml and application/vnd.oasis.opendocument.text
335 in content-type field in lwp-request (CPAN RT #26151)
337 Add default media type for XML in LWP::MediaTypes (CPAN RT #21093)
339 Added chunked test by Andreas J. Koenig
343 2005-12-08 Gisle Aas <gisle@ActiveState.com>
347 HTTP::Date: The str2time function returned wrong values for
348 years in the early 20th century, because timelocal() actually
349 expects the year to be provided on a different scale than what
352 HTTP::Headers can now be constructed with field names that repeat.
353 The $h->header function now also accept repeating field
354 names and can also remove headers if passed undef as value.
356 HTML::Form: The parse method now takes hash style optional
357 arguments and the old verbose behaviour is now off by default.
359 HTML::Form: Accept <select multiple=""> for compatibilty with
360 other browsers. Patch by Josh Rai <josh@rai.name>.
362 HTML::Form: Sane handling of 'disabled' for ListInput.
363 Based on patch by Joao Lopes <developer@st3tailor.com.br>.
365 HTTP::Negotiate: Fixed matching of partial language tags.
366 Patch contributed by Dan Kubb.
368 HTTP::Response: The as_string method now returns a status line
369 that doesn't add the "official" code name in the message
370 field. This improves the ability to round-trip response objects
371 via HTTP::Response->parse($res->as_string) and makes the first
372 line of the string returned agree with $res->status_line.
374 Net::HTTP: The host attribute can now be set undef in
375 order to suppress this header for HTTP/1.0 requests.
377 Net::HTTP: The default Host: header does not include the
378 port number if it is the default (80 for plain HTTP). Some
379 servers get confused by this.
381 Net::HTTP: Ignore bogus Content-Length headers. Don't get
382 confused by leading or trailing whitespace.
384 LWP::Protocol::http: More efficient sending of small PUT/POST
385 requests by trying harder to pass off the whole request in a
386 single call to syswrite.
388 lwp-request now give better error messages if you used the
389 -o option without having the HTML-Tree distribution installed.
390 Also document this dependency.
394 2005-12-06 Gisle Aas <gisle@ActiveState.com>
398 HTTP::Message->parse did not work when the first line of the body
399 was something that looked like a header.
401 HTTP::Header::Auth needs HTTP::Headers to be loaded before
402 it replace its functions.
404 LWP::Protocol::nntp improvements by Ville Skyttä <ville.skytta@iki.fi>:
405 - Support the nntp: scheme.
406 - Support hostname in news: and nntp: URIs.
407 - Close connection and preserve headers also in non-OK responses.
408 - HEAD support for URIs identifying a newsgroup.
409 - Comment spelling fixes.
411 Fix quotes in Net::HTTP example.
412 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=283916
414 Detect EOF when expecting a chunk header. Should address the
415 warnings shown in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286775
417 WWW::RobotRules: Improved parsing of not strictly valid robots.txt files
418 contributed by <Matthew.van.Eerde@hbinc.com>.
420 Makefile.PL: Set name to LWP so that the .packlist ends up in the
425 2004-12-11 Gisle Aas <gisle@ActiveState.com>
429 HTTP::Message: $mess->decoded_content sometimes had the side
430 effect of destroying $mess->content.
432 HTTP::Message: $mess->decoded_content failed for
433 "Content-Encoding: deflate" if the content was not in the
434 zlib-format as specified for the HTTP protocol. Microsoft got
435 this wrong, so we have to support raw deflate bytes as well.
437 HTTP::Response->parse don't require the protocol to be
438 specified any more. This allows HTTP::Response->parse($resp->as_string)
439 to round-trip. Patch by Harald Joerg <haj@oook.m.uunet.de>.
441 HTTP::Response: $resp->base might now return undef. Previously
442 it would croak if there was no associated request. Based on
443 patch by Harald Joerg <haj@oook.m.uunet.de>.
445 HTML::Form now support <label> for check- and radio boxes.
446 Patch contributed by Dan Kubb <dan.kubb@onautopilot.com>.
448 Make HTTP::Daemon subclassable, patch by Kees Cook <kees@osdl.org>.
450 lwp-download allow directory to save into to be specified.
451 Patch by Radoslaw Zielinski <radek@karnet.pl>.
453 lwp-download will validate filename derived from server
454 controlled data and will fail if something looks not
459 2004-11-30 Gisle Aas <gisle@ActiveState.com>
463 The HTTP::Message object now have a decoded_content() method.
464 This will return the content after any Content-Encodings and
465 charsets has been decoded.
467 Compress::Zlib is now a prerequisite module.
469 HTTP::Request::Common: The POST() function created an invalid
470 Content-Type header for file uploads with no parameters.
472 Net::HTTP: Allow Transfer-Encoding with trailing whitespace.
473 <http://rt.cpan.org/Ticket/Display.html?id=3929>
475 Net::HTTP: Don't allow empty content to be treated as a valid
477 <http://rt.cpan.org/Ticket/Display.html?id=4581>
478 <http://rt.cpan.org/Ticket/Display.html?id=6883>
480 File::Protocol::file: Fixup directory links in HTML generated
481 for directories. Patch by Moshe Kaminsky <kaminsky@math.huji.ac.il>.
483 Makefile.PL will try to discover misconfigured systems that
484 can't talk to themselves and disable tests that depend on this.
486 Makefile.PL will now default to 'n' when asking about whether
487 to install the "GET", "HEAD", "POST" programs. There has been
488 too many name clashes with these common names.
492 2004-11-12 Gisle Aas <gisle@ActiveState.com>
496 HTTP::Message improved content/content_ref interaction. Fixes
497 DYNAMIC_FILE_UPLOAD and other uses of code content in requests.
500 - Handle clicking on nameless image.
501 - Don't let $form->click invoke a disabled submit button.
503 HTTP::Cookies could not handle a "old-style" cookie named
506 HTTP::Headers work-around for thread safety issue in perl <= 5.8.4.
508 HTTP::Request::Common improved documentation.
510 LWP::Protocol: Check that we can write to the file specified in
511 $ua->request(..., $file) or $ua->mirror.
513 LWP::UserAgent clone() dies if proxy was not set. Patch by
514 Andy Lester <andy@petdance.com>
516 HTTP::Methods now avoid "use of uninitialized"-warning when server
517 replies with incomplete status line.
519 lwp-download will now actually tell you why it aborts if it runs
520 out of disk space of fails to write some other way.
522 WWW::RobotRules: only display warning when running under 'perl -w'
523 and show which robots.txt file they correspond to. Based on
524 patch by Bill Moseley.
526 WWW::RobotRules: Don't empty cache when agent() is called if the
527 agent name does not change. Patch by Ville Skyttä <ville.skytta@iki.fi>.
531 2004-06-16 Gisle Aas <gisle@ActiveState.com>
535 HTML::Form will allow individual menu entries to be disabled.
536 This was needed to support <input type=radio disabled value=foo>
537 and <select><option disabled>foo.
539 HTML::Form now avoids name clashes between the <select> and
542 HTML::Form now implicitly close <select> elements when it sees
543 another input or </form>. This is closer to the MSIE behaviour.
545 HTML::Form will now "support" keygen-inputs. It will not
546 calculate a key by itself. The user will have to set its
547 value for it to be returned by the form.
549 HTTP::Headers now special case field names that start with a
550 ':'. This is used as an escape mechanism when you need the
551 header names to not go through canonicalization. It means
552 that you can force LWP to use a specific casing and even
553 underscores in header names. The ugly $TRANSLATE_UNDERSCORE
554 global has been undocumented as a result of this.
556 HTTP::Message will now allow an external 'content_ref'
557 to be set. This can for instance be used to let HTTP::Request
558 objects pick up content data from some scalar variable without
561 HTTP::Request::Common. The individual parts will no longer
562 have a Content-Length header for file uploads. This improves
563 compatibility with "normal" browsers.
565 LWP::Simple doc patch for getprint.
566 Contributed by Yitzchak Scott-Thoennes <sthoenna@efn.org>.
568 LWP::UserAgent: New methods default_header() and
569 default_headers(). These can be used to set up headers that
570 are automatically added to requests as they are sent. This
571 can for instance be used to initialize various Accept headers.
573 Various typo fixes by Ville Skyttä <ville.skytta@iki.fi>.
575 Fixed test failure under perl-5.005.
577 LWP::Protocol::loopback: This is a new protocol handler that
578 works like the HTTP TRACE method, it will return the request
579 provided to it. This is sometimes useful for testing. It can
580 for instance be invoked by setting the 'http_proxy' environment
581 variable to 'loopback:'.
585 2004-04-13 Gisle Aas <gisle@ActiveState.com>
589 HTML::Form now exposes the 'readonly' and 'disabled'
590 attribute for inputs. This allows your program to simulate
591 JavaScript code that modifies these attributes.
593 RFC 2616 says that http: referer should not be sent with
594 https: requests. The lwp-rget program, the $req->referer method
595 and the redirect handling code now try to enforce this.
596 Patch by Ville Skyttä <ville.skytta@iki.fi>.
598 WWW::RobotRules now look for the string found in
599 robots.txt as a case insensitive substring from its own
600 User-Agent string, not the other way around.
601 Patch by Ville Skyttä <ville.skytta@iki.fi>.
603 HTTP::Headers: New method 'header_field_names' that
604 return a list of names as suggested by its name.
606 HTTP::Headers: $h->remove_content_headers will now
607 also remove the headers "Allow", "Expires" and
608 "Last-Modified". These are also part of the set
609 that RFC 2616 denote as Entity Header Fields.
611 HTTP::Headers: $h->content_type is now more careful
612 in removing embedded space in the returned value.
613 It also now returns all the parameters as the second
614 return value as documented.
616 HTTP::Headers: $h->header() now croaks. It used to
619 HTTP::Headers: Documentation tweaks. Documented a
620 few bugs discovered during testing.
622 Typo fixes to the documentation all over the place
623 by Ville Skyttä <ville.skytta@iki.fi>.
629 2004-04-07 Gisle Aas <gisle@ActiveState.com>
633 Removed stray Data::Dump reference from test suite.
635 Added the parse(), clear(), parts() and add_part() methods to
636 HTTP::Message. The HTTP::MessageParts module of 5.77 is no more.
638 Added clear() and remove_content_headers() methods to
641 The as_string() method of HTTP::Message now appends a newline
642 if called without arguments and the non-empty content does
643 not end with a newline. This ensures better compatibility with
644 5.76 and older versions of libwww-perl.
646 Use case insensitive lookup of hostname in $ua->credentials.
647 Patch by Andrew Pimlott <andrew@pimlott.net>.
651 2004-04-06 Gisle Aas <gisle@ActiveState.com>
655 LWP::Simple did not handle redirects properly when the "Location"
656 header used uncommon letter casing.
657 Patch by Ward Vandewege <ward@pong.be>.
659 LWP::UserAgent passed the wrong request to redirect_ok().
660 Patch by Ville Skyttä <ville.skytta@iki.fi>.
661 https://rt.cpan.org/Ticket/Display.html?id=5828
663 LWP did not handle URLs like http://www.example.com?foo=bar
666 LWP::RobotUA construct now accept key/value arguments in the
667 same way as LWP::UserAgent.
668 Based on patch by Andy Lester <andy@petdance.com>.
670 LWP::RobotUA did not parse robots.txt files that contained
671 "Disallow:" using uncommon letter casing.
672 Patch by Liam Quinn <liam@htmlhelp.com>.
674 WWW::RobotRules now allow leading space when parsing robots.txt
675 file as suggested by Craig Macdonald <craig@freeasphost.co.uk>.
676 We now also allow space before the colon.
678 WWW::RobotRules did not handle User-Agent names that use complex
679 version numbers. Patch by Liam Quinn <liam@htmlhelp.com>.
681 Case insensitive handling of hosts and domain names
683 https://rt.cpan.org/Ticket/Display.html?id=4530
685 The bundled media.types file now match video/quicktime
686 with the .mov extension, as suggested by Michel Koppelaar
687 <Michel.Koppelaar@kb.nl>.
689 Experimental support for composite messages, currently
690 implemented by the HTTP::MessageParts module. Based on
691 ideas from Joshua Hoblitt <jhoblitt@ifa.hawaii.edu>.
693 Fixed libscan in Makefile.PL.
694 Patch by Andy Lester <andy@petdance.com>.
696 The HTTP::Message constructor now accept a plain array reference
697 as its $headers argument.
699 The return value of the HTTP::Message as_string() method now
700 better conforms to the HTTP wire layout. No additional "\n"
701 are appended to the as_string value for HTTP::Request and
702 HTTP::Response. The HTTP::Request as_string now replace missing
703 method or URI with "-" instead of "[NO METHOD]" and "[NO URI]".
704 We don't want values with spaces in them, because it makes it
709 2003-11-21 Gisle Aas <gisle@ActiveState.com>
713 Revised handling of redirects.
714 - clear our content and content headers if we
715 rewrite request as GET based on patch by
716 Steven Butler <stevenb@kjross.com.au>.
717 - pass $response to redirect_ok()
719 Support cpan:-URLs. Try 'lwp-download cpan:src/latest.tar.gz' :)
721 Fix test failure in 't/html/form.t' for perl5.005.
725 2003-10-26 Gisle Aas <gisle@ActiveState.com>
729 Reworked LWP::UserAgent, HTTP::Request and HTTP::Response
730 documentation. Also other documentation tweaks.
734 2003-10-23 Gisle Aas <gisle@ActiveState.com>
738 Improved lwp-download program:
739 - set mtime if Last-Modified header reported by server
741 - avoid warnings when aborted at the wrong time
743 Collected all contributions in the AUTHORS file and
744 also added an AUTHORS section to the LWP manpage.
746 Style tweaks to all modules. Move POD after __END__
751 2003-10-19 Gisle Aas <gisle@ActiveState.com>
755 Takanori Ugai <ugai@jp.fujitsu.com> found that 'max_redirect'
756 introduced in 5.72 was broken and provided a patch for that.
758 Not all ftp servers return 550 responses when trying to
759 to RETR a directory. Microsofts IIS is one of those.
760 Patch provided by Thomas Lotterer <thl@dev.de.cw.com>.
762 Some documentation tweaks.
766 2003-10-15 Gisle Aas <gisle@ActiveState.com>
770 Requests for some non-HTTP URLs would fail if the cookie_jar
771 was enabled. The HTTP::Cookies::add_cookie_header now ignore
774 The new local/http test failed on Windows because of a missing
777 Suppress Client-SSL-Warning warning header when Crypt::SSLeay
778 is able to verify the peer certificate. Patch contributed by
779 Joshua Chamas <joshua@chamas.com>.
781 HTTP::Request::Common::POST did not add a 'Content-Length' header
782 when the content ended up empty. Fixed by a patch contributed
785 Internally generated responses now contain a text/plain part
786 that repeats the status line. They also have a "Client-Warning"
787 header that can be used to differentiate these responses from
788 real server responses.
790 LWP::UserAgent now deals with 303 and 307 redirects. The behaviour
791 of 302 redirects has also changed to be like 303; i.e. change the
792 method to be "GET". This is what most browsers do. Based on
793 a patch contributed by Tom Hughes <thh@cyberscience.com>.
795 LWP::UserAgent now implements a 'max_redirect' attribute with a
796 default value of 7. This should also fix the problem where
797 redirects to the same URL to get a cookie set did not work.
798 Based on a patch by Sean M. Burke <sburke@cpan.org>.
800 NTML authentication should continue to fail if the Authen::NTLM
801 module can't be loaded. LWP used to think the scheme was
802 available as soon as the module stash showed up. Not it looks
803 for the authenticate method to be defined. Patch by Jan Dubois.
805 lwp-download will not try to rename *.tbz and *.tar.bz2 to
806 match the reported content type. Patch contributed by
807 Robin Barker <Robin.Barker@npl.co.uk>.
809 HTTP::Cookies::Netscape documentation fix by Sean M. Burke.
811 HTTP::Cookies::Microsoft documentation fix by Johnny Lee.
813 The code that tries to avoid installing 'HEAD' on top of
814 'head' on systems like Mac OS was further improved to look
815 in $Config{installscript} instead of $Config{sitebin}.
816 Patch provided by Ken Williams <ken@mathforum.org>.
820 2003-10-14 Gisle Aas <gisle@ActiveState.com>
824 Support open-ended Range: header for ftp requests.
825 Patch by Matthew Eldridge <eldridge@Graphics.Stanford.EDU>.
827 lwp-request now prints unsuccessful responses in the same way
828 as successsful ones. The status will still indicate failures.
829 Based on a patch by Steve Hay <steve.hay@uk.radan.com>.
831 HTML::Form's dump now also print alternative value names.
833 HTML::Form will now pick up the phrase after a <input type=radio>
834 or <input type=checkbox> and use that as the name of the checked
837 HTML::Form's find_input now returns all inputs that match in
838 array context. Based on patch by Mark Stosberg <markstos@cpan.org>
839 in <http://rt.cpan.org/Ticket/Display.html?id=3320>.
841 HTTP::Daemon's send_file() method did not work when given
842 a file name. Patch by Dave W. Smith <dws@postcognitive.com>.
844 HTTP::Daemon is less strict about field names in the request
845 headers is received. The Norton Internet Security firewall
846 apparently likes to send requests with a header called
847 '~~~~~~~~~~~~~~~'. Further details in
848 <http://rt.cpan.org/Ticket/Display.html?id=2531>.
850 LWP::Protocol::http assumed $1 would be meaningful without
851 testing the outcome of the match. This sometimes produced
852 an extra garbage Authentication header.
853 Based on the patch by <bai@dreamarts.co.jp> in
854 <http://rt.cpan.org/Ticket/Display.html?id=1994>.
856 LWP::Protocol::mailto will try harder to locate the sendmail
857 program as suggested in <http://rt.cpan.org/Ticket/Display.html?id=2363>.
858 Also let $ENV{SENDMAIL} override the search.
860 Patch to enable OS/2 build by Ilya Zakharevich.
864 2003-10-13 Gisle Aas <gisle@ActiveState.com>
868 File::Listing::apache by Slaven Rezic <slaven@rezic.de>
870 HEAD requests now work properly for ftp: URLs.
871 Patch by Ville Skyttä <ville.skytta@iki.fi>.
873 LWP::UserAgent: The protocols_allowed() and protocols_forbidden()
874 methods are now case insensitive. Patch by Ville Skyttä
875 <ville.skytta@iki.fi>.
877 Avoid warning from HTTP::Date on certain invalid dates.
878 Patch by David Dick <david_dick@iprimus.com.au>.
880 HTML::Form::param() is an alternative interface for inspecting
881 and modifying the form values. It resembles the interface
884 HTML::Form documentation updated. Lots of typo fixes and improves
885 by Martin Thurn <mthurn@northropgrumman.com>.
887 HTML::Form will treat any unknown input types as text input.
888 This appears to be what most browsers do.
890 HTML::Form::parse() can now take a HTTP::Response object
893 The "checkbox" and "option" inputs of HTML::Form can now be
894 turned on with the new check() method.
896 The inputs of HTML::Form can now track alternative value
897 names and allow values to be set by these names as well.
898 Currently this is only supported for "option" inputs.
900 HTML::Form's dump() method now print the name of the form if
905 2003-01-24 Gisle Aas <gisle@ActiveState.com>
909 Include lwptut.pod contributed by Sean M. Burke C<sburke@cpan.org>.
911 The lwp-request aliases GET, HEAD, POST where installed when
912 no program should be. Fixed by David Miller <dave@justdave.net>.
914 lwp-rget --help don't print double usage any more.
916 HTTP::Header::Util is now more reluctant to put quotes around
919 Net::HTTP: Avoid warning on unexpected EOF when reading chunk
924 2003-01-02 Gisle Aas <gisle@ActiveState.com>
928 Fix test failure for t/html/form.t when running under
933 2003-01-01 Gisle Aas <gisle@ActiveState.com>
937 HTTP::Cookies::Microsoft contributed by Johnny Lee <typo_pl@hotmail.com>.
938 This module makes it possible for LWP to share MSIE's cookies.
940 HTML::Form supports file upload better now. There are some
941 new methods on that kind of input; file(), filename(), content()
944 Removed unfinished test that depended on Data::Dump.
946 Net::HTTP avoids exceptions in read_response_headers() with
947 laxed option. It now always assumes HTTP/0.9 on unexpected
950 HTML::Form documentation reworked.
954 2002-12-20 Gisle Aas <gisle@ActiveState.com>
958 Various patches from Sean M. Burke. Most of them to
959 match up LWP with the "Perl & LWP" book.
961 LWP::DebugFile module contributed by Sean.
963 LWP::Authen::Ntml contributed by James Tillman.
965 HTTP::Daemon patch for Alpha by <shildreth@emsphone.com>
967 The format_chunk() and write_chunk() methods of Net::HTTP
968 did not work. Bug spotted by Yale Huang <yale@sdf-eu.org>.
970 The Client-Peer response header is back.
974 2002-05-31 Gisle Aas <gisle@ActiveState.com>
978 Make HTTP::Date compatible with perl 5.8.
980 Try to avoid to default to overwriting /usr/bin/head
981 on MacOS X when the perl install prefix is /usr/bin.
983 HTTP::Cookies fix for parsing of Netscape cookies file
984 on MS Windows. Patch by by Sean M. Burke <sburke@cpan.org>.
986 HTTP::Negotiate doc patch from Edward Avis <epa98@doc.ic.ac.uk>.
990 2002-02-09 Gisle Aas <gisle@ActiveState.com>
994 Simplified the Makefile.PL:
995 - the scripts are not longer *.PL files
997 - don't try to make symlinks for GET, HEAD, POST
998 as that has not worked for a long time
1000 - the GET, HEAD, POST aliases for lwp-request should
1001 now work on Windows.
1004 - added 'clear_temporary_cookies' method;
1005 patch by Mike Schilli <schilli1@pacbell.net>.
1007 - trailing space in old cookie parameters not ignored;
1008 patch by Ivan Panchenko
1010 - protect against $SIG{__DIE__} handlers;
1011 patch by Adam Newby <adam@NewsNow.co.uk>.
1013 LWP::Authen::Digest:
1014 - abort digest auth session if we fail repeatedly with
1015 the same username/password.
1017 MacOS portability patches to the test suite by
1018 Chris Nandor <pudge@pobox.com>.
1022 2001-12-14 Gisle Aas <gisle@ActiveState.com>
1026 HTTP::Negotiate: Deal with parameter names in a case
1027 insensitive way. Put a little weight on the order of features
1028 in the Accept headers.
1030 LWP::UserAgent: make sure that the 'request' attribute is
1031 always set on the returned response.
1033 LWP::Protocol::http will now allow certain bad headers
1034 in the responses it reads. The bad headers end up in the
1035 header 'Client-Junk'.
1037 Net::HTTP new options to the 'read_response_headers'
1038 method. The option 'laxed' will make it ignore bad header
1039 lines. The option 'junk_out' can be used to pass in an
1040 array reference. Junk header lines are pushed onto it.
1042 Net::HTTP::Methods: fixed the internal zlib_ok() to also
1043 return the correct value the first time.
1045 LWP::Protocol::http: Ensure that we don't read until
1046 select has said it is ok since we have put the socket
1047 in non-blocking mode. Previously this could happen if
1048 you set the 'timeout' attribute of the user agent to 0.
1050 LWP::Authen::Digest now use Digest::MD5 instead of MD5.
1052 Some adjustments to Makefile.PL to figure out if
1053 Compress::Zlib is available and adjust the test suite
1058 2001-11-21 Gisle Aas <gisle@ActiveState.com>
1062 The $VERSION of LWP::UserAgent wrapped around. This confused the
1063 CPAN indexer. Bumped the major number to 2 to fix this.
1065 Net::HTTP did not work well on perl5.003. The PeerHost argument
1066 to IO::Socket::INET was not recognized, so we had to use PeerAddr
1067 instead. The syswrite() method also required a length argument.
1069 Net::HTTP did not deal with transfer encoding tokens in a
1070 case-insensitive way. Patch by Blair Zajac <blair@orcaware.com>.
1072 The jigsaw-chunk test failed on MacOS because "\n" is different.
1073 Patch by Chris Nandor <pudge@pobox.com>.
1077 2001-11-16 Gisle Aas <gisle@ActiveState.com>
1081 LWP::Protocol::http did not invoke its _fixup_header method.
1082 The result was that the 'Host' header got completely wrong
1083 when talking through a proxy server.
1085 The live Google test is gone. They blocked us.
1087 The guts of Net::HTTP has moved to Net::HTTP::Methods.
1089 Net::HTTP now has limits on the size of the header which are
1092 New module Net::HTTPS.
1094 Documentation tweaks.
1096 HTTP::Headers: The 'remove_header' method now return the values
1097 of the fields removed as suggested by Blair Zajac <blair@orcaware.com>.
1098 Also a typo fix by Blair.
1100 HTTP::Message: The delegation via &AUTOLOAD should be slightly
1101 faster now. It will install a real forwarding function the
1102 first time it is called for each HTTP::Headers method.
1104 LWP::UserAgent: Don't forward 'Cookie' headers on redirect.
1105 Patch by Steve A Fink <steve@fink.com>.
1107 LWP::Protocol::http has been reorganized to make it simpler
1108 to subclass it. Other minor changes to it include:
1109 - Client-Warning is gone
1110 - Client-Request-Num renamed to Client-Response-Num
1111 - A 'Transfer-Encoding' header is rewritten into a
1112 'Client-Transfer-Encoding' header.
1114 LWP::Protocol::https is completely redone.
1118 2001-10-26 Gisle Aas <gisle@ActiveState.com>
1122 Made HTTP/1.1 the default. The old HTTP/1.0 module has been
1123 renamed as LWP::Protocol::http10. There is an environment
1124 variable; PERL_LWP_USE_HTTP_10 that can be set to have LWP
1125 still pick up the old drivers.
1127 Deal with "100 continue" responses even when not requested by
1128 and Expect header in the request. MS IIS seems to eager to send
1129 this kind of response.
1131 For HTTP/1.1 over SSL there was a problem with the underlying
1132 SSL libraries if the socket was configured to non-blocking mode.
1133 Disable this for https.
1134 Based on a patch from Michael Thompson <mickey@berkeley.innomedia.com>
1136 Support the Range header for ftp:// requests.
1137 Patch by David Coppit <david@coppit.org>.
1139 Rearrange Bundle::LWP on request from Chris Nandor.
1141 HTTP::Cookies: Allow a domain like .foo.com match host "foo.com".
1142 Patch by Alexandre Duret-Lutz <duret_g@lrde.epita.fr>
1144 For redirects make sure Host header is not copied to the new
1147 The HTML::HeadParser is not loaded until actually needed.
1149 Net::HTTP should now work with perl5.005 by a simple tweak
1150 to 'require IO::Socket::INET'.
1152 WWW::RobotRules::AnyDBM: Explicitly clear database on open.
1153 Some DBM implementations doesn't support the O_TRUNC flag
1154 properly. Patch by Radu Greab <radu@netsoft.ro>.
1158 2001-09-19 Gisle Aas <gisle@ActiveState.com>
1162 LWP::Protocol::http11: fix socket leak. Because we managed
1163 to set up a circular reference within the sockets objects they
1164 stayed around forever.
1166 LWP::UserAgent: Split up simple_request into prepare_request
1167 and send_request. Patch contributed by Keiichiro Nagano <knagano@sodan.org>
1169 LWP::Protocol::http: Pass all header data to LWP::Debug::conns.
1170 Based on patch by Martijn.
1172 LWP::UserAgent: Sean fixed a Cut&Paste error.
1174 HTTP::Cookies: avoid pack("c",...) warning from bleadperl.
1178 2001-08-27 Gisle Aas <gisle@ActiveState.com>
1182 HTTP/1.1 support also for https.
1183 Contributed by Doug MacEachern <dougm@covalent.net>
1185 The HTTP/1.1 modules are now enabled by default. Hope that will give
1186 them more testing than they otherwise would have gotten.
1188 HTTP::Daemon's accept now has same behaviour as IO::Socket's
1189 accept in list context. Fixed by Blair Zajac <blair@gps.caltech.edu>.
1191 More argument sanity checking in HTTP::Request->uri and
1192 LWP::UserAgent->simple_request. Patch by Sean M. Burke.
1194 HTTP::Protocol::http. Deal with short writes.
1195 Patch by Norton Allen <allen@huarp.harvard.edu>
1197 HTTP::Protocol::http11: Deal with newlines in header values.
1199 Net::HTTP: call sysread (instead of xread) when more data is required.
1203 2001-08-06 Gisle Aas <gisle@ActiveState.com>
1207 Fix HTTP::Cookies where there is a mix of Set-Cookie and
1208 Set-Cookie2 headers. In that case we used to ignore all Set-Cookie
1209 headers. Now we only ignore those Set-Cookie headers that reference
1210 the same cookie as a Set-Cookie2 header.
1212 HTTP::Request, HTTP::Response will by default now use "URI" class,
1213 instead of "URI::URL", when constructing its URI objects. This
1214 has a potential for breaking existing code as URI::URL objects had
1215 some extra methods that external code might depend upon.
1217 Patches by Sean M. Burke:
1218 - Fix treatment of language tags in HTTP::Negotiate
1219 - Avoid trailing newline in $response->message
1220 - HTTP::Response clarifications
1222 LWP::Simple deals with non-absolute redirects "correctly" now.
1224 Net::HTTP does not try to load Compress::Zlib until it is needed.
1226 Net::HTTP documentation has been updated.
1230 2001-05-05 Gisle Aas <gisle@ActiveState.com>
1234 Sean M. Burke's update to LWP::UserAgent:
1235 - updated redirect_ok behaviour
1236 - new convenience methods: get/head/post/put
1237 - protocols_allowed/protocols_forbidden
1238 - LWP::Protocol::nogo (new module)
1240 Added digest auth test against Jigsaw
1242 Fixed a 'use of uninitialized'-warning in the handling of
1243 digest authentication.
1246 - new option: SendTE
1247 - support transfer-encoding 'deflate' and 'gzip' (when Compress::Zlib
1249 - new methods: format_chunk, format_chunk_eof
1250 - use -1 (instead of "0E0" as signal that no data was available,
1251 but this was not EOF).
1255 2001-04-28 Gisle Aas <gisle@ActiveState.com>
1259 Makefile.PL now asks some questions
1261 Added live tests for the new HTTP/1.1 support
1263 LWP::MemberMixin: make it possible to set a value to the 'undef' value.
1266 - transparent support for 'deflate' and 'gzip' transfer encodings
1267 (need to have the Compress::Zlib module installed for this to work).
1271 2001-04-25 Gisle Aas <gisle@ActiveState.com>
1275 LWP::Protocol::ftp now support keep-alives too. The command
1276 connection will stay open if keep-alives are enabled.
1278 LWP::Protocol::http11 various fixes:
1279 - chunked request content did not work
1280 - monitor connection while sending request content
1281 - deal with Expect: 100-continue
1283 LWP::RobotUA: Protect host_port call. Not all URIs have this method.
1287 2001-04-20 Gisle Aas <gisle@ActiveState.com>
1291 Introduced LWP::ConnCache module. Works similar to HTTP::Cookies,
1292 it that it takes effect if associated with the $ua.
1294 The handling of $ua->max_size changed to make 0 mean 0
1295 (not unlimited). An value of undef means no limit.
1296 The X-Content-Base header is gone. I hope nobody relies on
1297 it. It might come back if people start to scream. There
1298 is a new Client-Aborted header instead.
1300 The Range header generated for $ua->max_size had a off-by-one
1301 error. A range of "0-1" means 2 bytes.
1303 The LWP::UserAgent constructor now takes configuration arguments.
1305 Keep-alive and the new HTTP/1.1 module can now be simply
1306 enabled with something like:
1308 LWP::UserAgent->new(keep_alive => 1);
1310 New method $ua->conn_cache to set up and access the associated
1313 If the string passed to $ua->agent() ends with space then
1314 the "libwww-perl/#.##" string is automatically appended.
1316 New method $ua->_agent
1318 Passing a plain hash to $ua->cookie_jar automatically loads
1319 HTTP::Cookies and initialise an object using the hash content
1320 as constructor arguments.
1322 LWP::Protocol::http11 now use the conn_cache of the $ua.
1324 LWP::Protocol::http11 now added a few new Client- headers.
1326 LWP::Protocol avoid keeping the connection alive if $ua->max_size
1327 limit prevents the whole body content from being read.
1330 - new methods: write_chunk(), write_chunk_eof()
1331 - reset state properly when a new body is read.
1332 - always set read buffer empty on eof
1335 WWW::RobotRules patch by Liam Quinn <liam@htmlhelp.com>:
1336 - Always qualify netloc with port.
1337 - Reverse User-Agent substring matching.
1341 2001-04-18 Gisle Aas <gisle@ActiveState.com>
1345 Note: This is a developer only release. Not for production use.
1347 LWP::Protocol::http11 now does keep-alives by default. Still need
1348 to figure out what interface to provide at the $ua level.
1350 LWP::Protocol::http11 deals with CODE content in request.
1353 - added format_request() method
1354 - added _rbuf and _rbuf_length methods
1355 - read_response_headers does not return protocol version
1357 - peer_http_version method did not work because of typo.
1358 - documentation added
1360 New module Net::HTTP::NB. This is a Net::HTTP subclass that
1361 is better suited for multiplexing as it is able to do no-blocking
1362 reads of headers and entity body chunks.
1364 HTTP::Request: Protect $request->uri against evil $SIG{__DIE__} handlers.
1366 Some reorganisation in how stuff is passed from $ua to protocol object.
1367 The $ua is now passed in so protocol objects might store start in it.
1369 The $ua->max_size default is now 0.
1371 The $ua->clone method avoids sharing of proxy settings between
1372 the old and the new.
1374 This file is renamed to 'Changes' (used to be 'ChangeLog').
1378 2001-04-10 Gisle Aas <gisle@ActiveState.com>
1382 LWP::Simple::get() could sometimes return nothing on failure in
1383 list context. Now it always returns 'undef'.
1385 HTTP::Cookies does not request 2 dots on domain names any more.
1386 New option to hide the Cookie2 header. Cookie2 header now quote
1387 the version number. Updated reference to RFC 2965.
1389 Support for embedded userinfo in http proxy URIs. It means that
1390 you know can set up your proxy with things like:
1391 http_proxy="http://proxyuser:proxypass@proxyhost:port"
1392 Patch by John Klar <j.klar@xpedite.com>.
1394 Experimental HTTP/1.1 support. New module called Net::HTTP that
1395 provide the lower level interface and a LWP::Protocol::http11
1396 module that builds on it. The HTTP/1.1 protocol module must be
1397 loaded and registered explicitly, otherwise the old and trustworthy
1398 HTTP/1.0 module will be used.
1400 LWP::Protocol::GHTTP will try to use the get_headers() methods
1401 so that it can actually extract all the headers.
1405 2001-03-29 Gisle Aas <gisle@ActiveState.com>
1409 HTTP::Header: new method $h->init_header() that will only
1410 set the header if it is not already set. Some shuffling
1413 LWP::UserAgent will not override 'User-Agent', 'From'
1414 or 'Range' headers if they are explicitly set in the
1417 HTML::Form tries to optimize parsing be restricting the
1418 tags that are reported by HTML::Parser. Will need
1419 HTML::Parser v3.19_93 or better for this to actually
1422 LWP::Protocol::ftp now deals with path parameters again.
1423 It means that you can append ";type=a" to ftp-URI and
1424 it will download the document in ASCII mode.
1426 If the server output multiple Location headers on a redirect,
1427 ignore all but the first one.
1429 Extract cookies failed on request URIs with empty paths.
1430 This was only triggered if you used URI objects directly in
1433 This change was actually part of 5.51: Fix qop="auth"
1434 handling for Digest authentication.
1435 Patch by Dave Dunkin <dave_dunkin@hotmail.com>.
1439 2001-03-14 Gisle Aas <gisle@ActiveState.com>
1443 SECURITY FIX: If LWP::UserAgent::env_proxy is called in a CGI
1444 environment, the case-insensitivity when looking for "http_proxy"
1445 permits "HTTP_PROXY" to be found, but this can be trivially set by the
1446 web client using the "Proxy:" header. The fix applied is that
1447 $ENV{HTTP_PROXY} is not longer honored for CGI scripts.
1448 The CGI_HTTP_PROXY environment variable can be used instead.
1449 Problem reported by Randal L. Schwartz.
1451 NOTE: It is recommended that everybody that use LWP::UserAgent
1452 (including LWP::Simple) in CGI scripts upgrade to this release.
1454 Explicit setting of action on HTML::Form had no effect because
1455 of a code typo. Patch by BooK <book@netcourrier.com>.
1457 HTTP::Daemon: The CONNECT method need special treatment because
1458 it does not provide a URI as argument (just a "hostname:port").
1459 The non-upward compatibility warning is that you must now call
1460 $request->url->host_port to get the host/port string for CONNECT,
1461 rather than calling $request->url and using the entire string.
1462 Based on patch from Randal L. Schwartz <merlyn@stonehenge.com>
1464 HTTP::Daemon: Create self URL based on $self->sockaddr. This works
1465 better when LocalAddr is used to specify the port number. Based on
1466 patch from Ben Low <ben@snrc.uow.edu.au>.
1468 Avoid potential '<FILE> chunk 1' messages at the end of the response
1473 2001-01-12 Gisle Aas <gisle@ActiveState.com>
1477 Fix for test cases that failed because of URI-1.10 now encode
1478 space as '+' instead of '%20. Patch by Christian Gilmore
1479 <cgilmore@tivoli.com>.
1481 Makefile.PL: Require URI-1.10.
1483 HTTP::Daemon now accepts any non-space character as method name
1484 on the request line. It used to fail on methods like "M-POST"
1485 because it only allowed \w-chars.
1487 HTTP::Date now allow fractional seconds in ISO date formats.
1488 Based on patch from Mark D. Anderson <mda@discerning.com>
1490 HTTP::Request::Common will now calculate Content-length
1491 even if $DYNAMIC_FILE_UPLOAD is set. Patch provided by
1492 Lindley, Lee T <Lee.Lindley@viasystems.com>.
1496 2000-12-31 Gisle Aas <gisle@ActiveState.com>
1500 HTML::Form: Use croak() instead of die. Implement
1501 $f->possible_values. Avoid use of undef value warnings.
1503 HTTP::Cookies: fix epath issue. Make it work for URI::http
1504 as the uri-attribute of HTTP::Request object
1506 HTTP::Date: Allow ignored timezone info in parenthesis. Patch
1507 by Sander van Zoest <sander@covalent.net>.
1508 Fix calculation of non-GMT timezones (wrong sign). Patch by
1509 KONISHI Katsuhiro <konishi@din.or.jp>.
1511 HTTP::Response: Let $res->base() absolutize the URI. Based on
1512 bug report from Hans de Graaff <hans@degraaff.org>.
1514 Fixed minor doc typos in HTTP::Headers::Util and LWP::UserAgent.
1516 HTTP::Request::Common: Support boundary spec from client.
1518 LWP::Simple: Avoid trivial_http_get when @ appears in authority
1521 LWP::Authen::Digest: Need to have query in URI param.
1522 Spotted by <ronald@innovation.ch>.
1524 LWP::Protocol::http: unescape username/password if they are
1525 specified in the URI.
1527 Added LWP::Protocol::GHTTP. This allow LWP to use the HTTP::GHTTP
1528 module as the low level HTTP driver.
1532 2000-04-09 Gisle Aas <gisle@aas.no>
1536 README.SSL update by Marko Asplund <aspa@hip.fi>
1538 Added cookie example to lwpcook.pod
1540 HTTP::Date::str2time returns undef on failure instead
1541 of an empty list as suggested by Markus B Krüger <markusk@pvv.org>
1543 $request->uri($uri) will now always store a copy of the $uri.
1545 HTTP::Status: Added status codes from RFC 2616 and RFC 2518 (WebDAV)
1547 LWP::RobotUA will not parse robots.txt unless content type and
1548 content sample looks right.
1550 LWP::UserAgent: Deal with multiple WWW-Authenticate headers.
1551 Patch by Hugo <hv@crypt.compulink.co.uk>
1553 $ua->proxy can now return the old proxy settings without
1554 destroying the old one.
1555 Based on patch by Benjamin Low <ben@snrc.uow.edu.au>
1557 LWP::Protocol::http update
1559 - don't terminate header parsing on bad headers
1561 - preparations for keep alive support
1564 WWW::RobotRules deal with various absolute URIs in the
1567 Makefile.PL: Make sure we have HTML::TokeParser
1570 Patch by Charles Lane <lane@ DUPHY4.Physics.Drexel.Edu>.
1574 1999-11-16 Gisle Aas <gisle@aas.no>
1578 o Added HTML::Form to the distribution.
1580 o LWP::Protocol::ftp: Make it URI.pm compatible. We broke it in 5.45.
1582 o LWP::Protocol::http: Kill any Connection header
1584 o LWP::MediaTypes: Fixed builtin html/text mapping.
1585 Added bz2 to suffixEncoding
1589 1999-10-28 Gisle Aas <gisle@aas.no>
1593 o Updated mailing list address
1595 o Avoid warnings for lwp-request -t
1597 o referrer as alternative spelling for referer as suggested by tchrist.
1599 o More conservative selection of boundary for multipart messages
1600 in &HTTP::Request::Common::POST.
1602 o LWP::MediaTypes can now export &read_media_types.
1604 o Spelling corrections from Ben Tilly <Ben_Tilly@trepp.com>
1608 1999-09-20 Gisle Aas <gisle@aas.no>
1612 o The LWP SSL support better explained. Documentation in README.SSL
1613 and lwpcook.pod contributed by Marko Asplund <aspa@hip.fi>.
1615 o LWP::Protocol::https: Try loading IO::Socket::SSL if Net::SSL is
1618 o lwp-mirror -t option did not work.
1620 o defined(@ISA) eliminated. Patch by Nathan Torkington <gnat@frii.com>
1622 o LWP::Protocol::ftp: Protect against empty path_segments
1626 1999-06-25 Gisle Aas <gisle@aas.no>
1630 o We require URI-1.03, since this fix some query quoting stuff
1631 that HTTP::Request::Common rely upon.
1633 o 'lwp-request -HUser-Agent:foo' can now be used to set this
1636 o Localize $/ to ensure standard record separator a few places
1639 o LWP::UserAgent will now set the Range header in requests if
1640 the $ua->max_size attribute is set.
1644 1999-05-09 Gisle Aas <gisle@aas.no>
1648 o New lwp-request command line option that allow you to put any
1649 header into the request (-H).
1651 o New HTTP::Date because of Y2K-problems with the old one.
1652 It refused to parse the ftp-listing (ls -l) dates missing year.
1653 Additional entry point is parse_date(). This function avoid any
1654 limitations caused by the time-representation (seconds since
1657 o Y2K fix to t/base/cookies.t. Netscape's original cookie
1658 example expires at 09-Nov-99.
1660 o Added another binmode() to LWP::Protocol::file as suggested
1661 by Matt Sergeant <matt-news@sergeant.org>
1665 1999-03-20 Gisle Aas <gisle@aas.no>
1669 o MacOS patches from Paul J. Schinder <schinder@leprss.gsfc.nasa.gov>
1671 o Documentation patch from Michael A. Chase <mchase@ix.netcom.com>
1673 o PREREQ_PM patch from Andreas Koenig <andreas.koenig@anima.de>
1675 o LWP::Simple::head fix by Richard Chen <richard@lexitech.com>
1677 o "LWP fails with PerlEXE"-patch from Gurusamy Sarathy
1679 o Allow "." in HTTP header names. Patch by Marc Langheinrich
1680 <marc@ccm.cl.nec.co.jp>
1682 o Fixed reference to $uri->netloc in lwp-request
1684 o Cute animation in lwp-download
1688 Mon Nov 19 1998 Gisle Aas <aas@sn.no>
1692 o HTTP::Cookies provide better Netscape cookies compliance.
1693 Send back cookies to any port, and allow origin host name to
1694 be specified as domain, and still be treated as a domain.
1695 Patch from Andreas Gustafsson <gson@araneus.fi>.
1697 o HTTP::Cookies now ignore the Expires field in Set-Cookie, if the
1698 date provided can't be parsed by HTTP::Date.
1700 o HTTP::Daemon will lowercase the hostname returned from
1701 Sys::Hostname::hostname(). This avoid some test failures in
1702 the test suite for people with upper- or mixed-cased hostnames.
1704 o LWP::Protocol::gopher: IO::Socket::INET ctor did not specify
1705 Proto => 'tcp'. This made it less portable to older IO::Socket
1708 o No programs installed when you build the Makefile with
1709 'perl Makefile.PL LIB=/my/lib'
1711 o LWP bundle mention Digest::MD5 instead of MD5
1713 o headers-auth.t test suite bug triggered by perl5.005_5x.
1714 Patch by Albert Dvornik <bert@genscan.com>
1716 o The local/http.t test actually did try to unlink("."). This was
1717 very confusing on systems where it succeed.
1721 Mon Oct 12 1998 Gisle Aas <aas@sn.no>
1725 o Unbundled URI::URL modules. You now have to install the
1726 URI.pm module in order to get libwww-perl working.
1728 o Made library URI.pm compatible. Made all URI object instantiations
1729 based on $HTTP::URI_CLASS variable.
1731 o New lwp-rget option: --referer.
1732 Patch by INOUE Yoshinari <inoue@kusm.kyoto-u.ac.jp>.
1734 o One more binmode() to HTTP::Daemon as suggested by
1735 Markus Laker <mlaker@contax.co.uk>.
1739 Tue Aug 4 1998 Gisle Aas <aas@sn.no>
1743 o The lwp-download script will call $ua->env_proxy now.
1745 o The lwp-request script allows content types (specified with the -c
1746 option) with optional parameters like: multipart/mixed; boundary="--".
1748 o LWP::UserAgent will lowercase all authentication parameter names
1749 before passing it to the authentication module. Previous releases
1750 ignored parameters like; Realm="Foo" (bacause Realm contained
1751 upper case letters).
1753 o LWP::Protocol::ftp test for If-Modified-Since was wrong.
1755 o How the $url->abs method works can now be configured with the global
1756 variables $URI::URL::ABS_ALLOW_RELATIVE_SCHEME and
1757 $URI::URL::ABS_REMOTE_LEADING_DOTS.
1759 o The anonymous password guesser for ftp URLs will now call the external
1760 `whoami` program any more. Patch by Charles C. Fu <ccwf@bacchus.com>.
1762 o LWP::Protocol::http now allow dynamic requests without any
1763 Content-Length specified when Content-Type is multipart/*
1765 o HTTP::Request::Common can now upload infinite files.
1766 (Controlled by the $DYNAMIC_FILE_UPLOAD configuration variable.)
1770 Fri Jul 10 1998 Gisle Aas <aas@sn.no>
1774 o More lwp-rget patches from David D. Kilzer <ddkilzer@madison.dseg.ti.com>.
1775 Adds the following new options: --iis, --keepext, --tolower
1777 o LWP::MediaTypes patches from MacEachern <dougm@pobox.com>. Adds new
1778 functions: add_type(), add_encoding(), read_media_types()
1782 Tue Jul 7 1998 Gisle Aas <aas@sn.no>
1786 o LWP::Protocol::ftp now try to use the MDTM command to support
1787 the Last-Modified response header as well as
1788 If-Modified-Since in requests. Original and final patch by
1789 Charles C. Fu <ccwf@bacchus.com>
1791 o $url->path_components will not escape "." any more.
1793 o WWW::RobotRules will now work for Mac text files too (lines delimited
1794 by CR only). Patch by Olly Betts <olly@muscat.co.uk>
1796 o lwp-rget support <area ..> links too.
1800 Thu May 7 1998 Gisle Aas <aas@sn.no>
1804 o LWP::Simple::get() did try to handle too many of the 3xx
1805 codes as redirect when it bypasses full LWP.
1807 o LWP::UserAgent->mirror will now use utime(2) to set the
1808 file modification time corresponding to the Last-Modified
1811 o LWP::Protocol::http will not modify the HTTP::Request that
1812 it is processing. This avoids sticky Host header for
1815 o URI::Heuristic and lwp-download documentation update.
1819 Wed Apr 15 1998 Gisle Aas <aas@sn.no>
1823 o Much improved HTTP::Daemon class. We now support persistent
1824 connections. Changes include:
1825 - $c->get_request can be told to return after reading and
1826 parsing headers only.
1827 - $c->reason (new method)
1828 - $c->read_buffer (new method)
1829 - $c->proto_ge (new method)
1830 - $c->force_last_request (new method)
1831 - $c->send_response now support CODE reference content
1832 and will use chunked transfer encoding for HTTP/1.1 clients.
1833 - expanded the documentation.
1837 Fri Apr 10 1998 Gisle Aas <aas@sn.no>
1841 o Makefile.PL now checks that HTML::HeadParser is present.
1843 o Updated HTTP::Cookies according to draft-ietf-http-state-man-mec-08.txt
1844 It now supports the .local domain and value less 'port' attribute in
1845 the Set-Cookie2 header.
1847 o HTTP::Headers update:
1848 - $h->content_type now always return a defined value
1849 - $h->header($field) will now concatenate multi-valued header
1850 fields with "," as separator in scalar context.
1852 o HTTP::Request::Common update:
1853 - used to destroy the content of the hash/array arguments
1854 passed to its constructor functions.
1855 - allow a hash reference to specify form-data content.
1856 - you can override Content-Disposition for form-data now.
1857 - set content-encoding for files if applicable
1858 - default boundary string is now always "--000"
1860 o LWP::UserAgent will not follow more than 13 redirects
1865 Wed Apr 1 1998 Gisle Aas <aas@sn.no>
1869 o Unbundled the following modules:
1871 * HTML-Parser (HTML::Parser, HTML::Entites, HTML::LinkExtor,...)
1872 * HTML-Tree (HTML::Element, HTML::TreeBuilder,...)
1873 * Font-AFM (Font::AFM, Font::Metrics::*)
1876 o Simplified internal structure of HTTP::Headers. Hopefully,
1879 o New modules HTTP::Headers::Auth, HTTP::Headers::ETag that adds
1880 additional convenience methods to the HTTP::Headers class.
1882 o Removed split_etag_list() from HTTP::Headers::Util, in the hope
1883 that nobody had starting using it.
1887 Tue Mar 24 1998 Gisle Aas <aas@sn.no>
1891 o HTTP::Cookies made more compatible with Netscape cookies. Allow
1892 the domain to match host, allow dots in the part of the hostname
1893 not covered by domain. Don't quote the cookie value even when it
1894 contains non-token chars. Based on patch from Kartik Subbarao
1895 <subbarao@computer.org>.
1897 o Updated HTTP::Status to reflect <draft-ietf-http-v11-spec-rev-03>.
1898 RC_MOVED_TEMPORARILY renamed to RC_FOUND. Added codes
1899 RC_TEMPORARY_REDIRECT (307) and RC_EXPECTATION_FAILED (417).
1900 Slightly more documentation too.
1902 o The split_header_words() function HTTP::Headers::Util could go
1903 into infinite loop on some header values. Implemented split_etag_list()
1904 too. Added more documentation and test script for this module.
1906 o LWP::Simple now switch to full LWP implementation even for systems
1907 that force all environment keys to be upper case. Modification
1908 suggested by Dale Couch <dcouch@training.orl.lmco.com>.
1910 o LWP::UserAgent allows redirects to a relative URL with scheme to be
1911 made. Suggested by Chris W. Unger <cunger@cas.org>.
1913 o Applied dtd2pm.pl patches from <peterm@zeta.org.au>. It can now
1914 extract information from the HTML40.dtd
1918 Thu Mar 12 1998 Gisle Aas <aas@sn.no>
1922 o lwp-rget patches from David D. Kilzer <ddkilzer@madison.dseg.ti.com>
1923 (modified by Gisle). Support the --hier and the --auth options
1926 o File::CounterFile protect against bad $/ and $\ as suggested
1929 o File::Listing used "next" when return was more appropriate.
1930 Patch by erik@mediator.uni-c.dk.
1932 o HTML::Element support for multiple boolean attributes for a single
1933 element. Patch by Philip Guenther.
1935 o Can set $HTTP::Headers::TRANSLATE_UNDERSCORE to FALSE value to
1936 suppress tr/_/-/ of header keys.
1938 o LWP::Protocol::http will not initialize the Host header if it is
1941 o LWP::Protocol::http did not handle responses with no header lines
1942 correctly. Patch by Daniel Buenzli <buenzli@rzu.unizh.ch>
1944 o $url->rel() handles path segments without leading "/" better.
1948 Fri Feb 13 1998 Gisle Aas <aas@sn.no>
1952 o Fixed the "500 Offset outside string" bug that affected perl
1953 5.004_03 and older version of Perl.
1955 o Fixed a documentation typo spotted by Michael Quaranta
1956 <quaranta@vnet.IBM.COM>
1958 o HTTP::Date: Protect against croaking from timegm/timelocal.
1962 Mon Jan 26 1998 Gisle Aas <aas@sn.no>
1966 o HTML::Parser does not call $self->text() callback for empty text
1969 o LWP::Protocol::https was noisy when connections failed and the
1970 script was running with '-w' (noise inherited from IO::Socket::INET)
1972 o $ua->use_alarm(BOOL) now gives a warning if running with -w
1976 Tue Jan 20 1998 Gisle Aas <aas@sn.no>
1978 o Developer release 5.18_05
1980 o HTTPS support based on my Crypt-SSLeay module. The Net-SSLeay module
1981 is not supported any more.
1983 o lwp-request documentation typo spotted Martijn Koster.
1985 o Removed superfluous \\ in the URI::Escape regex. This was also
1988 o File::Listing now handles timezones correctly.
1990 o Added $VERSION to modules that was missing it.
1992 o Added 'use strict' to several modules that was missing it.
1994 o LWP::Protocol::http now adds the Client-Peer header to responses and
1995 has hooks for more callbacks.
1997 o LWP::Protocol::https adds Client-SSL-Cipher, Client-SSL-Cert-Subject
1998 and Client-SSL-Cert-Issuer headers to the response. The requests can
1999 also be made conditional based on the peer certificate using the
2000 If-SSL-Cert-Subject header in requests.
2002 o HTML::Parse is back. (It was even used in lwpcook.pod)
2006 Wed Dec 17 1997 Gisle Aas <aas@sn.no>
2008 o Developer release 5.18_04
2010 o Makefile.PL fix based on report from Pon Hwa Lin <koala@fragment.com>
2012 o lwp-request will now print the response code message with -s and -S
2015 o Hide IO::Socket::INET noise when running under -w
2017 o Don't set 'Content-Length: 0' in HTTP requests.
2019 o LWP::Protocol::http now calls LWP::Debug::conns again
2023 Tue Dec 16 1997 Gisle Aas <aas@sn.no>
2025 o Developer release 5.18_03
2027 o Got rid of alarms() and replaced LWP::Socket with IO::Socket::INET.
2028 New protocol implementations for http, https, gopher, nntp.
2029 $ua->use_alarm() is now a noop.
2031 o LWP::Protocol::ftp patch from Tony Finch <fanf@demon.net>.
2033 o Removed depreciated modules from the distibution; HTML::Parse,
2034 LWP::Socket, LWP::SecureSocket, LWP::IO, LWP::TkIO.
2038 Fri Dec 12 1997 Gisle Aas <aas@sn.no>
2042 o HTTP authorization patches from Tony Finch <fanf@demon.net>.
2043 Allows "user:pass@" in HTTP URLs.
2045 o HTML::Parser patch by Brian McCauley <B.A.McCauley@bham.ac.uk>.
2046 Pass original text to end() method.
2048 o The HTML::Parser->netscape_buggy_comment method is depreciated.
2049 Use HTML::Parser->strict_comment instead. The default value
2050 has changed with the name.
2052 o Some HTML::Parser optimization tweaks.
2054 o New module named HTML::Filter
2056 o Updated HTTP::Headers to the latest HTTP spec. Added knowledge
2057 about the "Trailer", "Expect", "TE", "Accept-Range" headers.
2058 "Public" header is gone.
2060 o Added some more header convenience methods: if_unmodified_since,
2061 content_language, and proxy_authorization methods.
2063 o HTTP::{Request,Response}->clone can handle subclasses now.
2065 o HTTP::Request->url() can now undefine the URL.
2067 o HTTP::{Request,Response}->as_string format looks more like
2068 the HTTP protocol formatting now. Dashed lines above and
2071 o Documented HTTP::Response->status_line method
2073 o Compressed HTML::Response->error_as_HTML output
2075 o HTTP::Status updated to latest HTTP spec. Added
2076 RC_REQUEST_RANGE_NOT_SATISFIABLE (416)
2080 Tue Dec 2 1997 Gisle Aas <aas@sn.no>
2084 o All authentication handling moved out of LWP::UserAgent and into
2085 LWP::Authen::Basic and LWP::Authen::Digest. We now also support
2086 PROXY_AUTHENTICATION_REQUIRED responses.
2088 o HTML::Formatter will always add a blank line for <br>.
2090 o Avoid use of uninitialized value in HTTP::Daemon.
2092 o HTTP::Date allows seconds when recognizing 'ls -l' dates. This
2093 allows us to parse syslog time stamps.
2095 o HTTP::Request::Common::POST allows a hash reference as second
2096 argument (in addition to an array reference).
2098 o LWP::Simple will initialize the $ua if it is exported.
2100 o Various documentation updates.
2104 Fri Nov 21 1997 Gisle Aas <aas@sn.no>
2108 o LWP::Simple::head() would die in array context because str2time
2109 was not imported any more.
2111 o HTTP::Daemon->accept now takes an optional package argument like
2112 IO::Socket->accept does.
2114 o Made HTTP::Request and HTTP::Response subclassable.
2116 o Added Proxy-Authorization example to lwpcook.
2120 Thu Nov 6 1997 Gisle Aas <aas@sn.no>
2124 o New module URI::Heuristic
2126 o The lwp-request script now use URI::Heuristic for it's URL arguments.
2127 It means that 'lwp-request perl' will not get a file called "./perl"
2128 but will fetch the page "http://www.perl.com" or something similar.
2129 If you want to get the file you have to prefix it with "./". Full
2130 URLs are never affected by this.
2132 o LWP::Simple::get() will bypass LWP for simple HTTP requests. This
2133 should make it somewhat faster.
2135 o LWP::RobotUA has a new method called $ua->use_sleep() that
2136 controls how niceness towards the servers are enforced.
2137 Previously $ua->use_alarm() used to control this, but this did
2138 not work well on Win32 systems.
2140 o URI::URL::rel() will handle URLs to a fragment within the same
2141 document better. Initial patch from Nicolai Langfeldt
2144 o HTML::Element don't consider </th>, </tr> and </td> optional any
2145 more. I wonder how Netscape managed to not implement this
2146 correctly all this time.
2148 o Added lots of modern tags to HTML::AsSubs.
2150 o HTTP::Request::Common will read uploaded files in binmode().
2151 This should be better for Win32 systems. Contributed by
2152 <Steve_Kilbane@cegelecproj.co.uk>.
2156 Sun Oct 12 1997 Gisle Aas <aas@sn.no>
2160 o HTML::Formatter patches from Andreas Gustafsson <gson@araneus.fi>.
2161 The formatters handling of whitespace is much better now. Thanks!
2163 o HTML::FormatText: can specify margins in the constructor.
2165 o URI::URL: the base will be absolutized internally now.
2167 o URI::URL will take advantage of void context provided by perl5.004.
2168 This means that using $u->path and $u->query should be safer now.
2170 o URI::URL->print_on defaults to STDERR now (used to be STDOUT).
2172 o URI::URL: removed version 3 compatibility stuff ($COMPAT_VER_3).
2174 o $ua->mirror should work better on dosish systems (can not
2175 rename when target file exists).
2177 o Typo in lwp-download prevented it from compiling.
2179 o Some minor documentations typos corrected.
2183 Sat Sep 20 1997 Gisle Aas <aas@sn.no>
2187 o Brand new module called HTTP::Cookies. It stores cookies
2188 (Set-Cookie and Set-Cookie2 headers) from responses and can
2189 create appropriate Cookie headers for requests. It can also
2190 share cookie files with Netscape.
2192 o LWP::UserAgent now support the cookie_jar() attribute. When
2193 set to an HTTP::Cookies object, it will automatically manage
2194 the cookies sent to the servers. Off by default.
2196 o New header utility functions in HTTP::Headers::Util.
2198 o Win32 and OS/2 patches for the lwp-xxx utilities. Turn on
2199 binary mode by default (option to turn it off), avoid modifying $0,
2200 and don't be confused about suffixes in the script names.
2201 Contributed by Ben Coleman <bcoleman@mindspring.com>
2203 o OpenVMS patch for Font:AFM by Brad Hughes <brad@tmc.naecker.com>
2207 Fri Sep 5 1997 Gisle Aas <aas@sn.no>
2211 o decode_entities() would sometimes introduce ";" after
2212 things that looked like they were entities.
2214 o HTML::LinkExtor knows about <applet code="...">
2216 o Patch from Gary Shea <shea@gtsdesign.com> that makes the
2217 tests work even if perl is not called "perl"
2219 o HTTP::Date handles 12:00PM correctly now. Patch from
2220 William York <william@mathworks.com>
2222 o HTTP::Request::Common don't quote the boundary string for
2223 multipart/form-data messages any more.
2225 o Font::AFM works for encodings where .notdef is defined to
2226 have some size. Documentation and efficiency update.
2230 Wed Aug 6 1997 Gisle Aas <aas@sn.no>
2234 o Perl version 5.004 is now required for libwww-perl.
2236 o Win32 patches from Gurusamy Sarathy <gsar@engin.umich.edu>.
2237 Now passes all tests on that platform.
2239 o HTTPS support contributed by Josh Kronengold <mneme@mcny.com>
2241 o Support hex entities ÿ HTML::Entities::(en|de)code only
2242 modify their argument in void context.
2244 o Fixed formatter bug with <font> tags which did not specify size.
2246 o Better HTML::HeadParser documentation
2248 o Fixed HTML::LinkExtor documentation typo spotted by Martijn.
2250 o HTTP::Request::Common now use CRLF for multipart/form-data
2254 Fri Jun 20 1997 Gisle Aas <aas@sn.no>
2258 o Make '+' a reserved URL character. Decode unescaped '+' as
2259 space in $url->query_form().
2261 o Use $Config{d_alarm} to determine default for $ua->use_alarm()
2265 Tue Jun 10 1997 Gisle Aas <aas@sn.no>
2269 o Removed the MIME modules from the distribution. They are distributed
2272 o Added a new module called HTTP::Request::Common
2274 o Improved HTTP::Status documentation. It is now also possible
2275 to import the is_client_error/is_server_error functions.
2277 o LWP::MediaTypes::guess_media_type() can now take an optional
2278 HTTP::Header parameter.
2280 o LWP::Protocol ensures that scheme is legal as module name.
2282 o LWP::Protocol::http is not as strict when trying to verify the
2283 method name. It now also accepts responses without a message
2286 o WWW::RobotRules::AnyDBM_File: Some DBMs fail to allow multiple
2287 opens of the same file. Patch from Mark James <jamesm@skate.org>
2289 o Created Bundle::LWP
2293 Sat Apr 5 1997 Gisle Aas <aas@sn.no>
2297 o Made libwww-perl warning compatible with upcoming perl5.004beta2
2300 o encode_base64() did not work properly if pos() of the string to
2301 encode was different from 0.
2303 o HTML::Parser was confused about "</" when it did not start an end tag.
2305 o HTML::FormatPS will provide ISOLatin1Encoding in its output.
2307 o Calling HTML::LinkExtor->links will clear out old links.
2309 o url()->rel($base) would ignore the $base argument.
2311 o Don't croak() when setting url()->path().
2315 Tue Feb 11 1997 Gisle Aas <aas@sn.no>
2319 o Can limit the size of the response content with $ua->max_size()
2321 o Added time2iso() functions to HTTP::Date.
2323 o Made LWP::Protocol::http more portable to the MacPerl. /./ match
2324 different things on MacPerl.
2328 Mon Jan 27 1997 Gisle Aas <aas@sn.no>
2332 o URI::URL is now compatible with perl5.004 overloading.
2334 o HTML::HeadParser makes X-Meta-Name headers for <meta> elements
2335 that does not specify an 'http-equiv' attribute.
2337 o URI::URL::ftp does not die if Net::Domain is not installed and
2338 you ask for an anonymous username or password.
2340 o WWW::RobotRules: The robots.txt parser did not ignore comment lines
2343 o LWP::Protocol::http is more forgiving towards servers that return
2346 o Allow "?" before search string in gopher URLs.
2348 o LWP::Protocol::file did not escape funny filenames when generating
2349 HTML directory listings.
2351 o LWP::Protocol::ftp now gets the Content-Encoding correct. 'CODE'
2352 content in PUT requests also work now.
2354 o Relative locations in redirects did not work with URI::URL::strict.
2356 o OS/2 portability patches from Ilya Zakharevich
2358 o LWP::Authen::* patch from Doug MacEachern
2360 o Support experimental data:- URLs
2362 o Some tests (those using HTTP::Daemon) now die more gracefully if
2363 IO::* modules is not installed.
2367 Wed Dec 4 1996 Gisle Aas <aas@sn.no>
2371 o LWP::UserAgent::simple_request: local($SIG{__DIE__}) protects us
2372 against user defined die handlers.
2374 o Use Net::Domain (instead of Sys::Hostname) to determine FQDN. It
2375 is used by URI::URL when it determines anonymous ftp login address.
2377 o lwp-download: New program in the bin directory
2379 o HTML::Parser: Allow '_' in attribute names. This makes it possible
2380 to parse Netscape's bookmarks.html file.
2382 o HTTP::Daemon: Fixed chunked transfer encoding and multipart content
2383 in get_request(). Support HTTP/0.9 clients.
2385 o Don't clobber regex variables when HTTP::Message delegates methods
2388 o Base64::decode_base64 now checks that the length input string to
2389 decode is a multiple of 4.
2391 o t/robot/rules-dbm.t clean up better and will use AnyDBM for dumping
2393 o File::CounterFile: $/ strikes again by Andreas König
2395 o File::Listing updates from William York <william@mathworks.com>. We
2396 can now parse the MS-Windows ftp server listings.
2398 o HTTP::Date now supports the MS-Windows 'dir' date format. Patch by
2401 o LWP::MediaTypes::media_suffix will return first type in scalar context.
2405 Tue Oct 22 1996 Gisle Aas <aas@sn.no>
2409 o Added HTTP::Daemon. This is a HTTP/1.1 server class. This means
2410 that libwww-perl no longer is a client library only. The HTTP::Daemon
2411 is also used in the new test suite.
2413 o HTTP::Message support the protocol() method. Used by HTTP::Daemon.
2415 o HTTP::Response can be constructed with a header and content as
2418 o Typo corrections in the documentation.
2420 o File::Listing::parse_dir accepts "GMT" as timezone now.
2422 o HTML::Parser will call the start() method with two new parameters;
2423 $attrseq, $origtext.
2425 o Integrated HTML::FormatPS patches from
2426 Jim Stern <jstern@world.northgrum.com>
2428 o Class modules don't inherit from AutoLoader any more. They just
2429 import the AUTOLOAD method.
2431 o LWP::Protocol will untaints scheme before loading protocol module.
2433 o Digest does not send "opaque" if it was not present in the request.
2434 The "Extension" header is not returned any more.
2436 o New method: $url->crack that will return a list of the various
2437 elements in a URI::URL.
2439 o WWW::RobotRules did not use the agent() method when determining
2440 who we are. This affected WWW::RobotRules::AnyDBM_File parsing
2441 for robots.txt. Visit count did not increment for
2442 WWW::RobotRules::InCore.
2446 Tue Oct 1 1996 Gisle Aas <aas@sn.no>
2450 o Hakan Ardo's persistent robot rules is now part of the standard
2451 distribution. This is still experimental and might change in the
2452 future. It includes the new WWW::RobotRules::AnyDBM_File class
2453 and updates to LWP::RobotUA.
2455 o HTML::Parser now supports buggy Netscape comment parsing. Enable
2456 it by calling $p->netscape_buggy_comment(1). The previous version
2457 of the parser could also (under very unlucky and unlikely
2458 circumstances) call the $self->comment() method several times for
2459 the same comment text.
2461 o HTML::Parser: Use new $p->eof to signal end of document instead of
2464 o HTML::Element::starttag() is now smarter about which quotes it
2465 use around attribute values.
2467 o New HTTP::Response methods: current_age(), freshness_lifetime(),
2468 is_fresh(), fresh_until().
2470 o HTTP::Message: New method ($mess->content_ref) which will return
2471 a reference to the current content.
2473 o URI::URL: New method ($url->rel) which does the opposite of abs().
2474 Example: url("http://host/a/b/c", "http://host/c/d/e")->rel would
2475 return url("../../a/b/c", "http://host/c/d/e"). This was
2476 suggested by Nicolai Langfeldt <janl@ifi.uio.no>
2478 o URI::URL: $url->query_form can now take array references as value
2479 specification. For instance: $url->query_form(foo => ['bar', 'baz']
2481 o Avoid '"my" variable $var masks earlier declaration in same scope'
2482 warnings in perl5.003_05.
2486 Wed Sep 11 1996 Gisle Aas <aas@sn.no>
2490 o lwp-rget: Initialize proxy settings from envirionment
2492 o HTML::Entities::encode_entities: Don't encode $ and %
2494 o HTML::LinkExtor::links: Now works when no links were found.
2496 o HTTP::Headers::as_string: Allow \n in header value
2500 Tue Aug 1 1996 Gisle Aas <aas@sn.no>
2504 o Updated ftp protocol module to be compatible with Net::FTP
2505 version 2.00 (the version found in libnet-1.00)
2507 o New HTML parser module called HTML::LinkExtor
2509 o Various documentation typo corrections. Most of these contributed
2512 o HTML::HeadParser updates 'Content-Base' instead of 'Base'. It also
2513 updates the 'Link' header based on <link ...>
2515 o HTTP::Headers and HTTP::Status updated according to
2516 draft-ietf-http-v11-spec-06
2518 o HTTP::Headers can now use "_" as alternative to "-" in field names.
2520 o HTTP::Response::base now looks for 'Content-Base',
2521 'Content-Location' and 'Base' headers.
2523 o Avoid warning in LWP::MediaTypes if $ENV{HOME} is not defined.
2525 o The new $ua->parse_head() method can be used to turn off
2526 automatic initialization of response headers from the <HEAD>
2527 section of HTML documents.
2529 o Added eq() method for URI::URL objects
2531 o The HTML::Formatter recovers even if a handle method is not defined
2532 for all tags found during traversal
2536 Sun May 26 1996 Gisle Aas <aas@sn.no>
2540 o LWP::Simple::head() now return something useful in scalar context.
2542 o Rewritten the HTML::Parse stuff. Introduced the HTML::Parser class
2543 that will tokenize a HTML document. The rest of the old
2544 HTML::Parse functionality has moved to HTML::TreeBuilder class.
2545 Note, that the HTML stuff is still alpha.
2547 o Implemented HTML::HeadParser. This is a lightweight parser for
2548 the <HEAD> section of a HTML document.
2550 o HTML::Element had problem with presenting things like <foo
2553 o HTML::Entities: Included additional ISO-8859/1 entities listed in
2556 o HTML::AsSubs exported 'header' instead of 'head'
2558 o We know about a few more of the HTML 3.2 element.
2560 o HTTP::Date had problems with years before 1970, because Time::Local
2561 went into an infinite loop. Check for this.
2563 o Added $header->title method.
2565 o Made $header->authorization_basic return "uname:passwd" in scalar
2568 o LWP::Protocol::collect() will let the HTML::HeadParser look at the
2569 document content as it arrives. This will initialize headers from
2570 elements like <base href="...">, <title>...</title> and <meta
2571 http-equiv="..." ...>.
2573 o Simplified $response->base implementation, because we don't have
2574 to look into the content any more.
2576 o Added -quiet option to lwp-rget
2578 o Typo fixes and some documentation additions.
2582 Thu May 9 1996 Gisle Aas <aas@sn.no>
2586 o Made URI::URL::strict(0) the default. I got tired of all this
2587 eval { } stuff just to recover. The URI::URL::strict'ness also
2588 determine if calling some standard method that happens to be
2589 illegal for some protocol scheme will croak or just be ignored.
2591 o Ensure correct $INPUT_RECORD_SEPARATOR and $OUTPUT_RECORD_SEPARATOR
2592 at places where we <> or print.
2594 o Always localize $_ before any 'while(<FILE>) {}'-loops
2596 o Implemented $protocol->collect_once() and simplified several
2597 of the protocol implementations by using it.
2599 o The HTML parser used to get it wrong if you were unlucky about the
2600 breakup of the text. An example of broken behaviour was this:
2602 $html = parse_html "<!-- A comment -";
2603 $html = parse_html "-> and some text.";
2605 o The HTML parser does not ignore whitespace-only text any more.
2607 o HTML::Parse warnings are now optional and turned off by default.
2609 o New start for $html->as_HTML().
2615 Wed Apr 24 1996 Gisle Aas <aas@sn.no>
2619 o New utility program called 'lwp-rget'.
2621 o $response->base was broken for HTML documents
2623 o New fancy LWP::Debug import() method. Can now turn on debugging with
2624 "use LWP::Debug '+';"
2626 o Trap exceptions (die) from the response callback routine
2628 o The RobotUA now requires an e-mail address of the person reponsible
2631 o New $ua->from() method.
2633 o Support for gopher Index-Search (gopher type '7' requests).
2634 Contributed by Harry Bochner <bochner@das.harvard.edu>
2636 o Cleaned up white-space usage in the source.
2640 Wed Apr 3 1996 Gisle Aas <aas@sn.no>
2644 o Implemented a NNTP protocol module. The library can now fetch and
2647 o More documentation
2649 o Don't look at the URI header for redirects
2651 o New $res->base() method for HTTP::Responses
2653 o Graham Barr's patch to File::Listing to make it more OO internally
2655 o content_type() return value is canonicalized
2657 o $ua->request() does not die on bad URLs any more
2659 o LWP::MediaTypes merge all media.types files that if finds
2661 o FTP request with content to file or callback did not work
2663 o The value of HTTP Host: header is now $url->netloc;
2665 o The URI::URL constructor now accept URLs wrapped up in "<>"
2667 o $url->abs() now has a second optional argument that makes it accept
2668 that relative URLs can have scheme, i.e. treat "http:img.gif" as a
2671 o Added prototypes to the HTTP::Status::is_xxx() functions
2673 o Added prototypes to the MIME:: encoding/decoding functions
2675 o Always return scheme for mailto and news URLs (as_string)
2677 o RobotRules patches from Henry A Rowley.
2681 o <SMALL> and <BIG> again
2685 Thu Mar 14 1996 Gisle Aas <aas@sn.no>
2689 o GET ftp://host/doc was never successful for normal files.
2691 o LWP::Socket: read_until() did not notice EOF condidtion. I.e. if
2692 a HTTP server closed the connection before any output was generated,
2693 the we continued to read 0 bytes in a busy loop until the alarm()
2696 o Added support for Digest Access Authentication. Contributed by
2697 Doug MacEachern <dougm@osf.org>.
2699 o Makefile.PL: check for MD5 library
2701 o No longer print message content in HTTP::Response::error_as_HTML()
2703 o Access to "file:/path" gave warning when the envirionment variable
2706 o The http-post test sends a Content-Type header. Some servers hang
2707 if this header is missing.
2710 - allow <SMALL> and <BIG> tags
2711 - allow empty attribute values
2715 Tue Mar 5 1996 Gisle Aas <aas@sn.no>
2719 o Started to write on the libwww-perl cookbook (lwpcook.pod)
2721 o The URI::URL module now exports the function url(). This is an
2722 alternative (easy to use) constructor function.
2724 o Expanding relative file URLs starting with "#" did not work.
2726 o Fixed autoloaded DESTROY problem by adding empty DESTROY routine
2729 o Does not try generate password for ftp-URLs unless the username is
2730 "anonymous" or "ftp"
2732 o The LWP::Simple user agent proxy settings are intialized from
2733 the proxy environment variables.
2735 o LWP::Protocol::ftp: Use the Net::FTP library to access ftp servers.
2736 Convert directories to HTML on request (Accept: text/html).
2738 o New module HTTP::Negotiate
2740 o New module File::Listing
2742 o HTTP::Date::str2time can parse a few more formats, like the 'ls -l'
2743 format and ISO 8601. The function now also takes an optional second
2744 parameter which specify a default time zone.
2746 o Added prototypes to the HTTP::Date functions.
2748 o The library adds a timestamp to responses ("Client-Date")
2750 o HTTP::Status: Updated to proposed HTTP/1.1
2752 o HTTP::Headers: Updated to proposed HTTP/1.1
2754 o LWP::Protocol::http: Updated to HTTP/1.1 methods
2756 o Took out stringify overloading in HTML::Element.
2760 Mon Feb 26 1996 Gisle Aas <aas@sn.no>
2764 o Renamed functions using thisStyleOfNames to this_style_of_names.
2765 Provided a script called 'update_from_5b7'
2767 o Renamed the 'request' and 'mirror' scripts to 'lwp-request' and
2768 'lwp-mirror'. The GET, POST, HEAD aliases for 'lwp-request' are
2771 o Implemented LWP::RobotUA
2773 o Class name for RobotRules did not match the file name
2776 - perl5.002gamma is required (because use vars).
2777 - The leading slash in now part of the path if it is present.
2778 - More documentation
2779 - Use AutoLoader to speed things up.
2780 - New class URI::URL::_login and made telnet, rlogin, tn3270
2781 subclasses from this one.
2782 - URI::URL::wais is better supported.
2783 - URI::URL::news is better supported.
2784 - New URI::URL::mailto methods: user/host
2786 o HTTP::Date::time2str now works correctly with '0' as argument
2788 o HTTP::Message delegates unknown methods to the headers.
2790 o HTTP::Request::uri is an alias for HTTP::Request::url. Can set
2793 o Added convenience methods to HTTP::Headers for easy access to
2794 frequently used headers.
2796 o Simplified LWP::Debug
2798 o Use standard AutoLoader for LWP::IO functions.
2800 o Played with the profiler (Devel::DProf) and made some things
2803 o Included the File::CounterFile module. Excluded Mail::Cap module
2804 as it is also part of the MailTools package.
2808 Mon Feb 5 1996 Gisle Aas <aas@sn.no>
2812 o Perl5.002 is required now
2814 o Rewrite of the URI::URL module (version 4.00)
2815 - escaping/unsafe stuff redone (and removed)
2816 - URI::URL::_generic moved out of URL.pm
2817 - netloc, path, params, query is now stored internally in escaped form
2818 - new methods for URI::URL::_generic are:
2824 - new methods for URI::URL::http are:
2827 - new methods for URI::URL::file are:
2835 o URI::Escape now semi-compile regular expressions (by evaling an
2836 anonymous sub). Same techinque is also used in HTML::Entities.
2838 o HTTP::Date parser rewritten using regular expressions.
2840 o HTTP::Headers->as_string() now croaks if any field values
2843 o HTTP::Status constants use empty prototype.
2845 o Font metrics moved to a new subdirectory (lib/Font/Metrics)
2847 o Don't use the VERSION script any more (even if it was very clever)
2849 o HTML::Entities will now export the names decode_entities() and
2852 o Andreas Koenig's black patch to HTML::Element.
2854 o The HTML::Formatter now knows about <menu> and <dir> tags
2856 o The construct "defined ref($arg)" did not work on perl5.002
2857 becase ref now always return something defined.
2859 o LWP::UserAgent sends by default an 'User-Agent' header.
2861 o LWP::Simple sends 'User-Agent' header to servers.
2863 o Updated the LWP::Socket module to use the new Socket.pm interface.
2865 o LWP::Protocol::http sends the new HTTP/1.1 'Host' header.
2867 o LWP::Protocol::file use $url->local_path to get a file to open.
2868 It also inserts a <BASE> tag in directories instead of a redirect.
2870 o MIME::Base64 routines can be called as MIME::Base64::encode() and
2871 MIME::Base64::decode(). Same kind of thing for QuotedPrint.
2875 Mon Nov 6 1995 Gisle Aas <aas@oslonett.no>
2879 o Installation should work better for those that still runs
2880 perl4 as 'perl'. The mirror script is not installed by
2883 o LWP::Socket::_getaddress() Numerical IP adresses did not work.
2885 o LWP::Socket::pushback() did not work. This also avoids the bad
2886 pp_select() core dump from perl.
2888 o LWP::IO now also selects on socket exceptions.
2890 o HTML::Parse: Ignore <!DOCTYPE ...> regardless for case. Some
2891 bad insertElement() calls made infinite loops.
2893 o The uri.t test works better for places where /tmp is a sym-link.
2897 Sat Sep 16 1995 Gisle Aas <aas@oslonett.no>
2901 o newlocal URI::URL does not put "//localhost" into the URLs any
2904 o The request program: New -o option to reformat the HTML code
2905 New -C option to provide credentials on the command line.
2906 The -b option never worked.
2908 o LWP::Protocol::file now returns redirect for access to directories
2909 where the trailing slash is missing.
2913 Thu Sep 14 1995 Gisle Aas <aas@oslonett.no>
2915 o Speedups and bug fixes in the HTML parser. The parser now
2916 understands some more depreciated tags (like <xmp> and <listing>).
2918 o HTML::Elements are now stingified using perl overloading.
2919 The interface to the traverse() callback has changed.
2921 o Implemented HTML formatters for plain text and Postscript.
2923 o Added lib/Font stuff to support the Postscript formatter.
2925 o Inspired by Tim Bunce, I implemented the HTML::AsSubs module.
2926 Don't know if it is really useful.
2928 o The local/get test does not use /etc/passwd any more.
2932 Thu Sep 7 1995 Gisle Aas <aas@oslonett.no>
2934 o Changed package name to libwww-perl-5xx
2936 o Made LWP::Protocol::ftp actually transfer data
2938 o Implemented methods for LWP::Socket to act as a server:
2939 bind(), listen(), accept(), getsockname(), host(), port()
2943 Wed Sep 6 1995 Gisle Aas <aas@oslonett.no>
2947 o Implemented modules to parse HTML.
2951 Mon Sep 4 1995 Gisle Aas <aas@oslonett.no>
2953 o Implemented Mail::Cap which will become part of the MailTools
2956 o Moved Base64 to MIME::Base64. Reimplemented MIME::Base64 by using
2957 [un]pack("u",...) Implemented LWP::MIME::QuotedPrint for
2958 completness sake. Routine names has changed as suggested by Tim
2961 o LWP::MediaType reads default types from media.types file.
2962 guessMediaType() now also returns encodings. New function mediaSuffix()
2964 o Pass $url to $ua->getBasicCredentials(). This also fixes security
2965 hole with the old implementation of getBasicCredentials().
2967 o LWP::Protocol::file now sets Content-Encoding headers
2969 o Allow request content to be provided by a callback routine.
2971 o Fix bug that prevented response callback to work. The first parameter
2972 (data) is no longer a reference, because $_[0] is already a reference.
2973 Don't callback unless successful response. Callbacks during redirects
2976 o URI::URL. Remove port from netloc if it is the default port.
2977 Don't use anything, just require.
2979 o HTTP::Message->addContent() does not need a reference parameter.
2981 o LWP::Socket->open() has been renamed top LWP::Socket->connect()
2982 LWP::Socket->close has gone. Implemented new method LWP::Socket->read()
2983 that returns as fast as it has some data to offer. Implemented
2984 LWP::Socket->pushback().
2986 o Does not die in LWP::UserAgent->request()
2988 o LWP::Socket now use LWP::IO for low level IO
2990 o Implemented LWP::TkIO as a replacement module for LWP::IO when using Tk.
2994 Thu Aug 17 1995 Gisle Aas <aas@oslonett.no>
2996 o $ua->redirectOK() for checking redirects
2998 o reorganized tests in the "t" directory.
3002 Fri Aug 11 1995 Gisle Aas <aas@oslonett.no>
3006 o Included RobotRules.pm from Martijn Koster
3010 Thu Aug 10 1995 Gisle Aas <aas@oslonett.no>
3012 o New module URI::Escape (URI::URL use this module for default
3013 escaping) that provide the uri_escape() and uri_unescape()
3016 o Setting $url->scheme now changes the class of the object.
3018 o Made $httpurl->user() and $httpurl->password() illegal.
3019 Likewise for other URL schemes.
3024 Wed Aug 9 1995 Gisle Aas <aas@oslonett.no>
3026 o Reorganisation as discussed on <libwww-perl@ics.uci.edu>
3027 LWP::Date --> HTTP::Date
3028 LWP::MIMEheader --> HTTP::Headers
3029 LWP::StatusCode --> HTTP::Status
3030 LWP::Message --> HTTP::Message
3031 LWP::Request --> HTTP::Request
3032 LWP::Response --> HTTP::Response
3033 LWP::MIMEtypes --> LWP::MediaTypes
3035 o HTTP::Date parses ctime format with missing timezone as suggested
3036 by Roy Fielding <fielding@beach.w3.org>
3038 o HTTP::Status and LWP::MediaTypes exports their functions by default.
3040 o Splitted up the URI::URL module. Schemes are implemented by separate
3041 files that are autoloaded when used. Self test moved to "t/uri.t".
3045 Mon Aug 7 1995 Gisle Aas <aas@oslonett.no>
3047 o Applied patch from Marc Hedlund <hedlund@best.com>
3048 - Update the @header_order according to the August 3rd draft.
3049 - Added Response Header fields: 'Location', 'Public', 'Retry-After',
3050 'Server', and 'WWW-Authenticate'.
3051 - Moved 'unknown header' handling from &scan to &header. The old
3052 implementation was forcing all unknown header-words to begin with
3053 an uppercase (as it should be), but disallowed other uppercase
3055 - updates the status code messages under the August
3056 3rd HTTP/1.0 draft. '203' became 'Non-Authoritative Information',
3057 '303' became 'See Other', and a new code,
3058 '411 Authorization Refused', was added.
3060 o Can remove multiple headers with single removeHeader() call in MIMEheader.
3062 o Can assign multiple field/value pairs in header() method of MIMEheader.
3064 o A field with multiple values is printed as separate values in
3065 MIMEheader::as_string().
3067 o LWP::Response contain new attributes: previous() and request(). These
3068 attributes are updated by the UserAgent.
3070 o Appended \n to some die statements in Socket so that line numbers are
3071 suppressed in error messages.
3073 o Made UserAgent::clone work for reference members
3075 o Check for redirect loops and multiple authorization failures by
3076 examination of the response chain.
3078 o Use "\015\012" instead of "\r\n" in protocol modules. Some systems
3079 define \r and \n differently.
3081 o request program can now handle documents that needs autorization by
3082 prompting the user for username/password. Added new -S option to print
3083 request/response chain.
3087 Tue Jul 25 1995 Gisle Aas <aas@oslonett.no>
3091 o Included URI::URL in the release
3095 Mon Jul 24 1995 Gisle Aas <aas@oslonett.no>
3097 o Incorporated Makemake.PL and VERSION from Andreas Koenig <koenig@mind.de>
3098 As a result of this the following things have changed:
3099 - programs in "bin" are extracted from .PL-files
3100 - reintroduced "lib"
3101 - "test" has been renamed as "t"
3102 - test programs in "t" has been made Test::Harness compatible
3103 - we now have a MANIFEST file
3104 - no more need fro update_version, make-dist, lwp-install
3106 o Renamed bin/get to bin/request. Links to it are now all upper case.
3108 o Proxy support in bin/request (provided by Martijn Koster)
3110 o UserAgent can now load proxy settings from environment
3112 o LWP::Protocol::ftp is under way but not really finished
3116 Tue Jul 18 1995 Gisle Aas <aas@oslonett.no>
3118 o Implemented LWP::Protocol::gopher
3120 o Implemented LWP::Protocol::mailto
3126 Mon Jul 17 1995 Gisle Aas <aas@oslonett.no>
3132 Mon Jul 17 1995 Gisle Aas <aas@oslonett.no>
3134 o Don't loose first line of HTTP/0.9 requests
3136 o LWP::Socket use syswrite() for writing
3138 o Added RC_* documentation to LWP::StatusCode
3140 o LWP::Date now use hash to look up month numbers
3142 o Added -f option to "get"
3146 o Added a "TODO" list
3148 o Fixed various typos
3152 Fri Jul 14 1995 Gisle Aas <aas@oslonett.no>
3154 o Reorganized directories. Moved LWP.pm up. Moved file.pm and http.pm
3155 into the LWP::Protocol direcotory. Moved LWP out of the lib directory
3158 o Implemented the "get" and "mirror" scripts in the "bin" directory.
3160 o Implemented "install-lwp", "update_version" and "make-dist". The library
3161 version number is found in the VERSION file.
3163 o Always adds 1900 to the year in LWP::Date
3165 o In LWP::MIMEheader: Implemented clone(), removeHeader() and scan()
3166 methods. Reimplemented asString. Removed asMIME(). Moved "Good
3167 Practice" into this file, and reimplemented it.
3169 o Moved "header" and "content" into LWP::Message class. This change made
3170 LWP::Request and LWP::Response much simpler. Made clone() method
3173 o LWP::Protocol::implementor does not die if it cannot load package.
3175 o Moved UserAgent convenience methods into LWP::Simple. Made LWP::Simple
3176 export LWP::StatusCode symbols and functions.
3178 o Implemented $ua->isProtocolSupported($scheme) method.
3180 o Nicer directory listing in LWP::Protocol::file.pm
3182 o Rely on URI::URL 3.00 behaviour for $url->full_path
3184 o Library version number now in LWP.pm. You should be able to say
3185 "use LWP 1.0;" if you need at least this version.
3187 o Various cleanups and arranging layout as I like it. Use fooBar-style
3188 (as opposed to foo_bar stype) everywhere. This means that as_string()
3189 now is called asString().
3191 o Added more documentation.
3195 Wed Jun 14 1995 Gisle Aas <aas@oslonett.no>
3197 o Removed lot of rendundant & before function calls.
3201 o &collector passes content as a reference, don't want to copy so much
3203 o parameterlist to collect callback has been rearranged
3205 o Response::addContent gets a reference to the data
3207 o Added some callback documentation to UserAgent.pm
3209 o Protocol::file now uses the collector
3211 o Introduced LWP::Simple
3215 Sun Jun 11 1995 Martijn Koster <m.koster@nexor.co.uk>
3217 o Added basic authentication support
3219 o Added mirroring of single documents
3221 o Change Protocol construction from whacky URL.pm (constructor returns
3222 subclass) to more normal C++'ish way.
3226 Wed June 7 1995 Martijn Koster <m.koster@nexor.co.uk>
3228 o Minor cleanups from printed code inspection
3232 Wed May 24 1995 Martijn Koster <m.koster@nexor.co.uk>
3234 o Added redirection resolution
3236 o Added optional autoloading of protocols
3240 Tue May 23 1995 Martijn Koster <m.koster@nexor.co.uk>
3242 o Separated socket stuff into separate module
3244 o Added HTTP proxy support
3246 o Made alarm handling optional
3248 o Added a LWP::Message for completeness sake
3250 o Added LWP::MemberMixin to reduce code duplication
3252 o Cosmetic changes to LWP::Date
3254 o Renamed LWP::Error to LWP::StatusCode
3256 o Renamed LWP::MIME to LWP::MIMEtype
3258 o Changed the tests to cope with all this
3260 It's getting there...
3264 Mon May 22 1995 Martijn Koster <m.koster@nexor.co.uk>
3266 o Changed the socket reading to use sysread. This will have to go
3267 into a module of its own.
3271 Thu 18 May 1995 Martijn Koster <m.koster@nexor.co.uk>
3273 o Mentioned on libwww-perl that I had changed the classes around lots.