�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!PKC1]^oGGLICENSEnu[This software is copyright (c) 1995 by Gisle Aas. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 1995 by Gisle Aas. This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 1995 by Gisle Aas. This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End PKE2]C README.SSLnu[As of libwww-perl v6.02 you need to install the LWP::Protocol::https module from its own separate distribution to enable support for https://... URLs for LWP::UserAgent. This makes it possible for that distribution to state the required dependencies as non-optional. See for further discussion why we ended up with this solution. PKE2]]{{Changesnu[Change history for libwww-perl 6.34 2018-06-05 18:48:59Z - timeout() documentation has more details about the response (thanks, Andrew Grangaard!) - HTTP::Status is now upgraded to 6.18 if 6.17 is installed (which had a bug). 6.33 2018-02-27 03:51:36Z - Fix send_te change from previous release, which was breaking LWP::Parallel::UserAgent and Test::Override::UserAgent (GH #281) (Doug Bell) 6.32 2018-02-20 19:39:20Z - Suggest LWP::ConsoleLogger as an alternative to the deprecated LWP::Debug (GH#278) (Olaf Alders) - add send_te configuration to disable sending the TE header (GH#126) (Doug Bell) - Added a developer feature to the http.t tests. (GH#257) (colinnewell) 6.31 2017-12-11 01:55:53Z - fix version numbering (RT#123841) 6.30 2017-12-07 - Use tr/// instead of s/// where appropriate (Ville Skyttä) (GH #265) - Use parent -norequire instead of base to not look for external dependencies (Fabian Zeindler) (GH #259) - Fix run_handlers to allow assigning to the request / response (Gianni Ceccarelli) (GH #274) 6.29 2017-11-06 - Fix some version numbers 6.28 2017-11-06 - Remove last use of Geopt::Std (Sergey Remanov) (GH #267) - Include unmatched connect error in status string (Patrik Lundin) (GH #269) - Fix insecure open FILEHANDLE,EXPR (Takumi Akiyama) (GH #270) 6.27 2017-09-21 - Switch to Getopt::Long in lwp-download (GH #262) - Fix lwp-request -C (GH #261) - Hide LWP::Protocol::http::Socket, LWP::Protocol::http::SocketMethods and LWP::Debug::TraceHTTP::Socket from PAUSE - Add tests for the "get" & "head" functions (GH #252) - Update lwpcook.pod (GH #256) - Handle undefined values in ->credentials (GH #157) - Fix lwp-mirror options checks. - Update bin/ scripts to use $LWP::VERSION instead of ->Version() - Improve lwp-download --help (GH #262) 6.26 2017-04-12 - Perltidy all apps in the bin/ directory - Make all apps in bin/ use strict and warnings (RT #92633) - Fix bug tracker URL in metadata 6.25 2017-04-03 - Fix LWP::UserAgent docs for request and request_simple that pointed to functions in LWP::Simple rather than LWP::UserAgent - Moved the official bug tracker to GitHub rather than RT. 6.24 2017-03-14 - Document clone methods inability to clone cookie jars (RT #13542) - It is now possible to set the proxy and no_proxy attributes from the constructor of LWP::UserAgent. (GH #124) 6.23 2017-03-06 - Fix bug where Protocol::NNTP called undef on a variable before being done using it. (GH PR #121) - Ran perltidy on LWP::Protocol::NNTP - Re-organized current documentation set. 6.22 2017-03-01 - Update Travis-CI to test on minimum versions of prereqs. (GH PR #109) - Fix tests that depended on a newer version of HTTP::Message (GH PR #119) - Update documentation to reflect behavior difference in ->put() depending on the version of HTTP::Message installed. (GH PR #120) 6.21 2017-02-21 - Ensure that LWP::Simple re-exports some HTTP::Status functions 6.20 2017-02-21 - Converted to use Dist::Zilla - Moved several tests to xt/author 6.19 2017-02-14 - Call HTTP::Status constant functions without & (GH#110) - Make bin scripts use LWP's version and not maintain their own (PR #54) - Fix bug triggered in some cases of auth challenges not having a viable protocol (PR#111) - Remove usage of the 'vars' pragma (GH#113) 6.18 2017-02-03 - Update "timeout" when reusing sockets (PR#90) - Fix bug triggered when calling simple_request() with a malformed URL (PR#108) 6.17 2017-01-31 - Noted another protocol failure message (PR#65) - Removed old use of UNIVERSAL::isa() and swapped evals for Try::Tiny (PR#105) - Standardized the Changes file (GH#106) - Fixed documentation error in lwp-request. 6.16 2017-01-18 - Moved LWP::Protocol::GHTTP into its own dist and removed from here (PR#81) - Updated test suite to use strict/warnings and Test::More (PR#88) - Additional tests for UserAgent coverage (PR#79) - Cleaned up documentation formatting and fixed several typos (PR#87, PR#93) - Stop promoting use of HTTP::Cookies and instead use HTTP::CookieJar::LWP (PR#102) - Added some new documentation to UserAgent and tutorial (PR#68) - Allow default header to carry over when using ->post() in UA (PR#100) 6.15 2015-12-15 - tests now use localhost rather than a net-accessible address (PR#76, RT#94959) - fixed some tests to do what they intended (regex rather than boolean checks) (from PR#28) - conversion of some tests from Test.pm to Test::More (from PR#29) - use File::Temp for randomized tempdir (PR#53) 6.13 2015-02-14 - fixed Makefile.PL compatibility with older ExtUtils::MakeMaker (from release 6.12) 6.12 2015-02-13 - fixed prereq declarations in release 6.11 6.11 2015-02-13 - cleanup of the test running mechanism; allowing greater flexibility and should also resolve RT#102083 6.10 2015-02-12 - lower runtime prereqs recommendation on LWP::Protocol::https to suggests, to work around a circular dependency in CPAN clients when the 'install recommendations' option is enabled (RT#101732) 6.09 2015-02-09 - checks for EINTR now also check EWOULDBLOCK (they sometimes differ on MSWin32) - fixed pod syntax - Fixed checking the % character in address regex - Improved regex for literal IPv6 addresses 6.08 2014-07-24 - Requiring Net::HTTP 6.07 to fix IPv6 support (RT#75618 and https://github.com/libwww-perl/net-http/pull/10) - When the hostname is an IPv6 literal, encapsulate it with [brackets] before calling Net::HTTP [rt.cpan.org #29468] - Extra steps to make sure that the host address that has a ":" contains only characters appropriate for an IPv6 address. - Fix doc typo for cookie_jar 6.07 2014-07-01 - Removed Data::Dump references in test suite and dependency in Makefile.PL - Added MANIFEST.SKIP to enable "make manifest". - release script now checks for MacOS to avoid incompatible tarballs - Bumped version number to 6.07 - Fixed gnu-incompatible tarball problem ([rt.cpan.org #94844]) 6.06 2014-04-16 - Merge pull request #44 from dsteinbrunner/master - Spelling fixes. - Merge pull request #55 from oalders/master - Merge pull request #38 from mbeijen/typo-sting - Merge pull request #43 from dsteinbrunner/master - Spelling corrections - Typo fixes. - correct behavior for https_proxy, - e.g. don't send plain https:// requests to proxy, but instead establish CONNECT tunnel and then send requests inside tunnel. This change does together with a change in LWP::Protocol::https. The change supports LWP::Protocol::https with the default IO::Socket::SSL backend, but also with Net::SSL. Also: - proxy authorization is supported (http://user:pass@host:port as proxy URL, Net::SSL still needs special HTTPS_PROXY_* ENV variables, as before) - CONNECT request does not need to be the first request inside the tunnel (not with Net::SSL) - conn_cache is read and written inside request(), instead of writing in request() and reading in _new_socket(). If a https tunnel is established the cache_key no longer depends only on proxy host,port but also on the tunnel endpoint - CONNECT is a proxy request and must always use Proxy-Authorization, not Authorization header - fix: auth-header of Digest auth did not conform to - RFC 2617 when WWW-Authenticate has 'qop' parameter. - SSL libs might trigger ENOTTY on read - Small typo. 6.05 2013-03-11 - Derive message from status code if it was not provided - Merge pull request #33 from tomhukins/fix-readme - fix typo in comment - Spelling fixes. - Spelling fix. - Merge pull request #34 from berekuk/fix-github-path - Update repo URL - With Net::HTTP 6.04 we don't need our own can_read() and sysread override - $ENV{HTTP_PROXY} might override our test setup [RT#81381] - fix github url in perldoc - * Pod is utf-8 - Match required perl in Makefile.PL - Fix Github URLs 6.04 2012-02-18 - Typo fix; envirionment [RT#72386] - Implement $ua->is_online test - Add separate option to enable the live jigsaw tests - Merge pull request #10 from trcjr/master - now with put and delete helpers - updated POD - unit tests for ua->put and ua->delete - These modules work with 5.8.1 6.03 2011-10-15 - Link updates. - Attribute documentation wording improvements. - Don't parse robots.txt response content unless it's textual. - Decode robots.txt response content before attempting to parse it. - RobotUA robots.txt response parsing cleanups. - Don't parse HEAD of robots.txt responses. - Request handler doc grammar fixes. - Pass on HTTP/1.0 if set as request protocol - Remove outdated docs (not touched since 1996 :-) - Merge pull request #22 from madsen/RT67947-verify_hostname - PERL_LWP_ENV_PROXY tweaks - lwp-request didn't respect -H Content-type [RT#70488] - lwp-request -H didn't allow repeated headers - verify_hostname defaults to 0 if ssl_opts provided [RT#67947] - Test verify_hostname setting - Fix expect header support to work with content refs. - add PERL_LWP_ENV_PROXY env variable to enable env_proxy globally 6.02 2011-03-27 - This is the release where we try to help the CPAN-toolchain be able to install the modules required for https-support in LWP. We have done this by unbundling the LWP::Protocol::https module from the libwww-perl distribution. In order to have https support you now need to install (or depend on) 'LWP::Protocol::https' and then this will make sure that all the prerequisite modules comes along. See [RT#66838]. - This release also removes the old http10 modules that has really been deprecated since v5.60. These should have been removed at the v6.00 jump, but I forgot. - Ignores env variables when ssl_opts provided [RT#66663] - Fix typo; Authen::NTLM [RT#66884] - Support LWP::ConnCache->new(total_capacity => undef) 6.01 2011-03-09 - Add missing HTTP::Daemon dependency for the tests. 6.00 2011-03-08 - Unbundled all modules not in the LWP:: namespace from the distribution. The new broken out CPAN distributions are File-Listing, HTML-Form, HTTP-Cookies, HTTP-Daemon, HTTP-Date, HTTP-Message, HTTP-Negotiate, Net-HTTP, and WWW-RobotRules. libwww-perl-6 require these to be installed. - This release also drops the unmaintained lwp-rget script from the distribution. - Perl v5.8.8 or better is now required. For older versions of perl please stay with libwww-perl-5.837. - For https://... default to verified connections with require IO::Socket::SSL and Mozilla::CA modules to be installed. Old behaviour can be requested bysetting the PERL_LWP_SSL_VERIFY_HOSTNAME environment variable to 0. The LWP::UserAgent got new ssl_opts method to control this as well. - Support internationalized URLs from command line scripts and in the proxy environment variables. - The lwp-dump script got new --request option. - The lwp-request script got new -E option, contributed by Tony Finch. - Protocol handlers and callbacks can raise HTTP::Response objects as exceptions. This will abort the current request and make LWP return the raised response. 5.837 2010-09-20 - Fix for Encode 2.40 - Fix Perl syntax error in synopsis - Allow ISO 8601 date strings when parsing Apache file listings 5.836 2010-05-13 - Fix problem where $resp->base would downcase its return value 5.835 2010-05-05 - simple string can be simplified - Make $mess->decoded_content remove XML encoding declarations [RT#52572] - Don't allow saving to filenames starting with '.' suggested by server - Avoid race between testing for existence of output file and opening the file - Minor doc fixup -- wrongly ucfirsted word - Use decoded_content in HTTP:Response synopsis [RT#54139] - sun.com is no more. rip! - Trivial layout tweak to reduce variable scope. - Add 'make test_hudson' target - Implement alt_charset parameter for decoded_content() - Test decoding with different charset parameters - lwp-download now needs the -s option to honor the Content-Disposition header - Make LWP::MediaTypes::media_suffix case insensitive. - Skip XML decoding tests if XML::Simple is not available. - Documentation fixes. - Fix m_media_type => "xhtml" matching. - Make parse_head() apply to data: requests. - Documentation spelling fixes. - Documentation grammar fixes. - Use $uri->secure in m_secure if available. - Fix handling of multiple (same) base headers, and parameters in them. - Strip out empty lines separated by CRLF - Best Practice: avoid indirect object notation - Speed up as_string by 4% by having _sorted_field_names return a reference - Speed up scan() a bit. as_string() from this branch is now 6% faster - Port over as_string() optimizations from HTTP::Headers::Fast - Link to referenced documentation. - Update repository location. - Remove needless (and actually harmful) local $_ - "Perl & LWP" is available online 5.834 2009-11-21 - Check for sane default_headers argument [RT#50393] - Add $ua->local_address attribute [RT#40912] - Test that generation of boundary works [RT#49396] - Page does not display the "standard" apache listing any more - Remove unneeded executable permissions. - Switch compression/decompression to use the IO::Compress/IO::Uncompress and Compress::Raw::Zlib family of modules. - lwp-request should use stderr for auth [RT#21620] 5.833 2009-10-06 - Deal with cookies that expire far into the future [RT#50147] - Deal with cookies that expire at or before epoch [RT#49467] - Pass separate type for https to LWP::ConnCache [RT#48899] - Improved handling of the User-Agent header [RT#48461] - HTTP::Cookies add_cookie_header previous Cookies [RT#46106] - Improve diagnostics from LWP::UserAgent::mirror [RT#48869] - mirror should die in case X-Died is set [RT#48236] - Increase default Net::HTTP max line length to 8k. 5.832 2009-09-21 - Fix net test suite. - Comment spelling fixes. - Fix links to old Netscape cookie specification. - Documentation spelling fixes. - Improve max line length exceeded/read error messages. - Do not warn about seemingly wellformed but unrecognized robots.txt lines. - $mess->content_charset would fail for empty content - Further restrict what variables env_proxy() process 5.831 2009-08-13 - Fix bzip2 content encoding/decoding. - send_te() doc grammar fix. - Document time2str() behavior with an undefined argument. - HTML::Message's content_charset trigger warnings from HTML::Parser [RT#48621] 5.830 2009-07-26 - select doesn't return undef on failure [RT#32356] - Add raw RFC 1951 deflate test case. 5.829 2009-07-07 - This release removes callback handlers that were left over on the returned HTTP::Responses. This was problematic because it created reference loops preventing the Perl garbage collector from releasing their memory. Another problem was that Storable by default would not serialize these objects any more. - This release also adds support for locating HTML::Form inputs by id or class attribute; for instance $form->value("#foo", 42) will set the value on the input with the ID of "foo". - Make the example code 'use strict' clean by adding a my - Avoid cycle in response - Clean up handlers has from response after data processing is done - Support finding inputs by id or class in HTML::Form - Test HTML::Form selectors - Tidy and document the internals of mirror() better [RT#23450] - Avoid warnings from HTML::Form [RT#42654] 5.828 2009-06-25 - A quick new release to restore compatibility with perl-5.6. - Less noisy behaviour when we can't download the documents - Restore perl-5.6 compatibility [RT#47054] - Don't decode US-ASCII and ISO-8859-1 content - Some versions of Encode don't support UTF-16-BE [RT#47152] - Spelling fixes. 5.827 2009-06-15 - The main news this time is better detection of what character set the document in a response uses and the addition of the lwp-dump script that I found useful. - Added lwp-dump script - Replace calls to $req->url with $req->uri - Also need to encode strings in the latin1 range - Ignore the value set for file inputs [RT#46911] - Add docs to lwp-dump - Don't let lwp-dump follow redirects - Support --method options - Implement the --agent option - Dictionary order for the option docs; document --method - Merge branch 'dump' - Files are passed as an array and we must not stringify it. - Add content_charset method to HTTP::Message - Start guessing the charset for a message - Let content_charset guess the charset to use for decoded_content - Specify what's missing for the XML and HTML case - Provide charset parameter for HTML::Form->parse() - Make content_charset sniff for elements specifying the charset. - Determine charset of XML documents - Get rid of the _trivial_http_get() implementation - Update the bundled media.types file - LWP::Simple::get() now returns decoded_content [RT#44435] - Implement content_type_charset method for HTTP::Headers - Implement content_is_text method for HTTP::Headers - Make use of content_is_text and content_type_charset in decoded_content - Don't let the parse_head callback append to the HTTP headers - Don't set Range header on request when max_size is used [RT#17208] - Still show client headers for internal responses - Document Client-Warning: Internal response - Don't use 'no' as example domain for no_proxy docs [RT#43728] - Drop exit from the Makefile.PL [RT#43060] - Merge branch 'content_charset' - Support "accept-charset" attribute in HTML::Form - new tests for max_size and 206 responses [RT#46230] - Reformulation of Client-Warning: Internal documentation 5.826 2009-04-24 - Avoid returning stale Content-Type header after message parts have been updated - Don't let content saved to file be affected by the $\ setting - Issues around multipart boundaries [RT#28970] - Ignore random _proxy env variables, allow only valid schemes - README.SSL is not anymore available at the linpro.no URL. - Make LWP::UserAgent constructor honor the default_headers option [RT#16637] 5.825 2009-02-16 - Fixup test failure with perl-5.8.8 and older; qr/$/m doesn't work 5.824 2009-02-13 - Make format_request() ensure that it returns bytes [RT#42396] - Force bytes in all the format_* methods. - Ignore Sitemap: lines in robots.txt [RT#42420] - Refactor; use variable to hold the test port - Add redirects method to HTTP::Message - Setting $ua->max_redirect(0) didn't work [RT#40260] - Convert files to UTF-8 - HTTP::Cookies destructor should not clobber $! and other globals. - Deal with the Encode module distributed with perl-5.8.0 - Avoid failure if 127.0.0.1:8333 is in use [RT#42866] - Documentation improvements, spelling fixes. 5.823 2008-12-05 - Bring back the LWP::Debug code [RT#41759] - Add documentation section about 'Network traffic monitoring'. - Typo fixes - Want to ensure we get a single value back here. 5.822 2008-12-05 - A more modern user_agent example. - Make it possible to unset the proxy settings again - Prefer use specified Content-Length header [RT#41462] - Deprecate LWP::Debug 5.821 2008-11-25 - Various bug fixes. - The Content-Length and Content-MD5 headers are no longer valid after encode/decode - Add META information - croak on bad proxy args [RT#39919] - Skip a failing decoded_content on systems without Encode.pm [RT#40735] - Skip LWP test when fork() is unimplemented - redo used incorrectly in LWP::Protocol::http [RT#41116] - HTTP::Cookies::Microsoft now handles user names with space [RT#40917] - Avoid aborting requests saved to file early [RT#40985] 5.820 2008-11-05 - Main news is the ability to control the heuristics used to determine the expiry time for response objects. - Reformat later parts of Changes - Add a paragraph to summarize the motivation for releases since 5.815 - all_pod_files_ok(); - Fix POD markup error - Calculation of current_age with missing Client-Date. - The age/freshness methods now take an optional 'time' argument - More correct matching of 'max-age' in freshness_lifetime method - The freshness_lifetime method now support options to control its heuristics 5.819 2008-10-20 - Release 5.815 to 5.818 had a severe bug that sometimes made LWP not collect all data for the responses it received. This release is strongly recommended as an upgrade for those releases. - Don't override $Net::HTTPS::SSL_SOCKET_CLASS if it's already set. - Wrong content handlers would sometimes be skipped [RT#40187] 5.818 2008-10-16 - Main news in this release is the addition of the dump() method to the request and response objects. If found that I often ended up printing $resp->as_string for debugging and then regretting after the terminal got into a strange mode or just kept on scrolling for the longest time. - Use deflate compression instead of gzip for the test - Simplify; Get rid of the $USE_STORABLE_DCLONE configuration - Add dump method to HTTP::Message. - Use $res->dump instead of rolling our own. - Layout change; move headers() methods to a more logical place. - Add support for x-bzip2 encoding; fix bzip2 decoding. - Add send_header method to HTTP::Daemon - Make the lwp-request User-Agent string include the LWP version. - clone implemented in terms of Storable::dclone [RT#39611] 5.817 2008-10-10 - This is the release where I played around with Devel::NYTProf to figure where time was actually spent during the processing of requests with LWP. The methods that manipulated header objects stood out, so this release contains a few tweaks to make those parts faster. - I also figured a few convenience methods to encode and decode the content of request/response objects would be in order. - Should store "wire" headers field names with _ without translation. - Test HTTP::Request->parse(). - Restore pre-5.815 behaviour of returning "400 Bad Request" [RT#39694] - Rename the HTTP::Status constants to have HTTP_ prefix - Detection of unsupported schemes was broken [RT#37637] - Allow tainted methods to be forwarded to HTTP::Headers [RT#38736] - Add strict mode to HTML::Form - Fix test now that less warnings are generated. - Add content_is_xml method - Make split_header_words() lower case returned tokens/keys - Avoid invoking AUTOLOAD on object destruction [RT#39852] - Add decode() method to HTTP::Message - Add encode() method to HTTP::Message - Allow multiple fields to be set with push_header(). - Make content_type and content_is_xhtml methods faster - Faster push_header() 5.816 2008-09-29 - Oops, release 5.815 broke download-to-file on Windows. - Add missing binmode() [RT#39668] - Doc tweaks 5.815 2008-09-24 - The main change this time is the introduction of handlers to drive the processing of requests in LWP::UserAgent. You can also register your own handlers for modifying and processing requests or responses on their way, which I think is a much more flexible approach that trying to subclass LWP::UserAgent to customize it. If we have had these early on then the LWP::UserAgent API could have been so much simpler as the effect of most current attributes can easily be set up with trivial handlers. - Also thanks to contributions by Bron Gondwana LWP's Basic/Digest auth modules now registers handlers which allow them to automatically fill in the Authorization headers without first taking the round-trip of a 401 response when LWP knows the credentials for a given realm. - We don't need to build the docs to run the tests. - Style tweaks. - The jigsaw service isn't up to much good these days. - HTTP::Cookies produces warnings for undefined cookie param names [RT#38480] - Typo fix; HTTP::Message will never include x-bzip2 in Accept-Encoding [RT#38617] - Added HTTP::Config module - Add methods to configure processing handlers. - 100 Continue response not complete. - Use 3-arg open when response content to files. - Make the show_progress attribute official (by documenting it). - Start using handlers for driving the inner logic of LWP::UserAgent. - Expose the content_is_html and content_is_xhtml methods from HTTP::Headers. - Make credentials method able to get/set values. - An auth handler per realm. - Match proxy setting for request. - Set up separate handler for adding proxy authentication. - Add request_preprepare to be able to initialize proxy early enough. - Smarter get_my_handler() that can also create handlers. - Refactor; introduce run_handlers method - Pass in handler hash to the handler callback. - Don't let version=1 override behaviour if specified with a plan Set-Cookie header. - Remove handler when we don't have a username/password for the realm. - Make tests use Test.pm - Double-check that username or password has changed after a failed login. - Update Digest Authen to subclass Basic. - Avoid running out of filehandles with DYNAMIC_FILE_UPLOAD. - Fixed parsing of header values starting with ':' [RT#39367] - Documentation typo fixes [RT#38203] 5.814 2008-07-25 - Typo fix. - Add HTTP::Message::decodable() - Use decoded_content in the synopsis - Avoid adding an empty first part in $mess->add_part() - Get rid of all the manual dependency tests. - Simplify the Makefile.PL (no interactivity) - Provide DELETE method in HTTP::Request::Common [RT#37481] - Checkbox picks up nearby text in description of alternates [RT#36771] - HTML::Form::possible_values() should not returned disabled values [RT#35248] - File::Listing documentation claimed only 'unix' format was supported [RT#22021] - File::Listing only support English locales [RT#28879] - Make common-req.t use Test.pm - Typo; CAN_TALK_TO_OUTSELF - Fix up File::Listings fallback to dosftp [RT#23540] - File::Listing parse failure on BSD Linux based systems [RT#26724] 5.813 2008-06-17 - RobotUA constructor ignores delay, use_sleep [RT#35456] - Spelling fixes [RT#35457] - Add HTTP::Response->filename [RT#35458] - Better diagnostics when the HTML::TokeParser constructor fails [RT#35607] - Multiple forms with same-named for compatibility with other browsers. Patch by Josh Rai . - HTML::Form: Sane handling of 'disabled' for ListInput. Based on patch by Joao Lopes . - HTTP::Negotiate: Fixed matching of partial language tags. Dan Kubb. - HTTP::Response: The as_string method now returns a status line that doesn't add the "official" code name in the message field. This improves the ability to round-trip response objects via HTTP::Response->parse($res->as_string) and makes the first line of the string returned agree with $res->status_line. - Net::HTTP: The host attribute can now be set undef in order to suppress this header for HTTP/1.0 requests. - Net::HTTP: The default Host: header does not include the port number if it is the default (80 for plain HTTP). Some servers get confused by this. - Net::HTTP: Ignore bogus Content-Length headers. Don't get confused by leading or trailing whitespace. - LWP::Protocol::http: More efficient sending of small PUT/POST requests by trying harder to pass off the whole request in a single call to syswrite. - lwp-request now give better error messages if you used the -o option without having the HTML-Tree distribution installed. Also document this dependency. 5.804 2005-12-06 - HTTP::Message->parse did not work when the first line of the body was something that looked like a header. - HTTP::Header::Auth needs HTTP::Headers to be loaded before it replace its functions. - LWP::Protocol::nntp improvements by Ville Skyttä : - Support the nntp: scheme. - Support hostname in news: and nntp: URIs. - Close connection and preserve headers also in non-OK responses. - HEAD support for URIs identifying a newsgroup. - Comment spelling fixes. - Fix quotes in Net::HTTP example. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=283916 - Detect EOF when expecting a chunk header. Should address the warnings shown in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286775 - WWW::RobotRules: Improved parsing of not strictly valid robots.txt files contributed by . - Makefile.PL: Set name to LWP so that the .packlist ends up in the expected place. 5.803 2004-12-11 - HTTP::Message: $mess->decoded_content sometimes had the side effect of destroying $mess->content. - HTTP::Message: $mess->decoded_content failed for "Content-Encoding: deflate" if the content was not in the zlib-format as specified for the HTTP protocol. Microsoft got this wrong, so we have to support raw deflate bytes as well. - HTTP::Response->parse don't require the protocol to be specified any more. This allows HTTP::Response->parse($resp->as_string) to round-trip. Patch by Harald Joerg . - HTTP::Response: $resp->base might now return undef. Previously it would croak if there was no associated request Harald Joerg - HTML::Form now support