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