. This is closer to the MSIE behaviour.
- HTML::Form will now "support" keygen-inputs. It will not calculate a key
by itself. The user will have to set its value for it to be returned by
the form.
- HTTP::Headers now special case field names that start with a ':'. This is
used as an escape mechanism when you need the header names to not go
through canonicalization. It means that you can force LWP to use a
specific casing and even underscores in header names. The ugly
$TRANSLATE_UNDERSCORE global has been undocumented as a result of this.
- HTTP::Message will now allow an external 'content_ref' to be set. This
can for instance be used to let HTTP::Request objects pick up content
data from some scalar variable without having to copy it.
- HTTP::Request::Common. The individual parts will no longer have a
Content-Length header for file uploads. This improves compatibility
with "normal" browsers.
- LWP::Simple doc patch for getprint. Yitzchak
Scott-Thoennes .
- LWP::UserAgent: New methods default_header() and default_headers(). These
can be used to set up headers that are automatically added to requests
as they are sent. This can for instance be used to initialize various
Accept headers.
- Various typo fixes by Ville Skyttä .
- Fixed test failure under perl-5.005.
- LWP::Protocol::loopback: This is a new protocol handler that works like
the HTTP TRACE method, it will return the request provided to it. This
is sometimes useful for testing. It can for instance be invoked by
setting the 'http_proxy' environment variable to 'loopback:'.
5.79 2004-04-13
- HTML::Form now exposes the 'readonly' and 'disabled' attribute for inputs.
This allows your program to simulate JavaScript code that modifies
these attributes.
- RFC 2616 says that http: referer should not be sent with https: requests.
The lwp-rget program, the $req->referer method and the redirect handling
code now try to enforce this. By Ville Skyttä .
- WWW::RobotRules now look for the string found in robots.txt as a case
insensitive substring from its own User-Agent string, not the other way
around. Patch by Ville Skyttä .
- HTTP::Headers: New method 'header_field_names' that return a list of
names as suggested by its name.
- HTTP::Headers: $h->remove_content_headers will now also remove the
headers "Allow", "Expires" and "Last-Modified". These are also part of
the set that RFC 2616 denote as Entity Header Fields.
- HTTP::Headers: $h->content_type is now more careful in removing embedded
space in the returned value. It also now returns all the parameters as
the second return value as documented.
- HTTP::Headers: $h->header() now croaks. It used to silently do nothing.
- HTTP::Headers: Documentation tweaks. Documented a few bugs discovered
during testing.
- Typo fixes to the documentation by Ville Skyttä .
- Updated tests.
5.78 2004-04-07
- Removed stray Data::Dump reference from test suite.
- Added the parse(), clear(), parts() and add_part() methods to
HTTP::Message. The HTTP::MessageParts module of 5.77 is no more.
- Added clear() and remove_content_headers() methods to HTTP::Headers.
- The as_string() method of HTTP::Message now appends a newline if called
without arguments and the non-empty content does not end with a newline.
This ensures better compatibility with 5.76 and older versions
of libwww-perl.
- Use case insensitive lookup of hostname in $ua->credentials. Patch by
Andrew Pimlott .
5.77 2004-04-06
- LWP::Simple did not handle redirects properly when the "Location" header
used uncommon letter casing. Patch by Ward Vandewege .
- LWP::UserAgent passed the wrong request to redirect_ok(). Patch by Ville
Skyttä .
https://rt.cpan.org/Ticket/Display.html?id=5828
- LWP did not handle URLs like http://www.example.com?foo=bar properly.
- LWP::RobotUA construct now accept key/value arguments in the same way as
LWP::UserAgent. Based on patch by Andy Lester .
- LWP::RobotUA did not parse robots.txt files that contained "Disallow:"
using uncommon letter casing. Patch by Liam Quinn .
- WWW::RobotRules now allow leading space when parsing robots.txt file as
suggested by Craig Macdonald . We now also
allow space before the colon.
- WWW::RobotRules did not handle User-Agent names that use complex version
numbers. Patch by Liam Quinn .
- Case insensitive handling of hosts and domain names in HTTP::Cookies.
https://rt.cpan.org/Ticket/Display.html?id=4530
- The bundled media.types file now match video/quicktime with the .mov
extension, as suggested by Michel Koppelaar .
- Experimental support for composite messages, currently implemented by the
HTTP::MessageParts module. Joshua Hoblitt .
- Fixed libscan in Makefile.PL. Patch by Andy Lester .
- The HTTP::Message constructor now accept a plain array reference as
its $headers argument.
- The return value of the HTTP::Message as_string() method now better
conforms to the HTTP wire layout. No additional "\n" are appended to
the as_string value for HTTP::Request and HTTP::Response. The
HTTP::Request as_string now replace missing method or URI with "-"
instead of "[NO METHOD]" and "[NO URI]". We don't want values with
spaces in them, because it makes it harder to parse.
5.76 2003-11-21
- Revised handling of redirects.
- clear our content and content headers if we rewrite request as GET
based on patch by Steven Butler .
- pass $response to redirect_ok()
- Support cpan:-URLs. Try 'lwp-download cpan:src/latest.tar.gz' :)
- Fix test failure in 't/html/form.t' for perl5.005.
5.75 2003-10-26
- Reworked LWP::UserAgent, HTTP::Request and HTTP::Response documentation.
- other documentation tweaks.
5.74 2003-10-23
- Improved lwp-download program:
- set mtime if Last-Modified header reported by server
- better prompts
- avoid warnings when aborted at the wrong time
- Collected all contributions in the AUTHORS file and also added an AUTHORS section to the LWP manpage.
- Style tweaks to all modules. Move POD after __END__ and uncuddled elses.
5.73 2003-10-19
- Takanori Ugai found that 'max_redirect' introduced
in 5.72 was broken and provided a patch for that.
- Not all ftp servers return 550 responses when trying to to RETR a
directory. Microsoft's IIS is one of those. Patch provided by Thomas
Lotterer .
- Some documentation tweaks.
5.72 2003-10-15
- Requests for some non-HTTP URLs would fail if the cookie_jar was enabled.
The HTTP::Cookies::add_cookie_header now ignore non-HTTP requests.
- The new local/http test failed on Windows because of a missing binmode().
- Suppress Client-SSL-Warning warning header when Crypt::SSLeay is able to
verify the peer certificate. Joshua Chamas .
- HTTP::Request::Common::POST did not add a 'Content-Length' header when
the content ended up empty. by Brian J. Murrell.
- Internally generated responses now contain a text/plain part that repeats
the status line. They also have a "Client-Warning" header that can be
used to differentiate these responses from real server responses.
- LWP::UserAgent now deals with 303 and 307 redirects. The behaviour of 302
redirects has also changed to be like 303; i.e. change the method to be
"GET". This is what most browsers do. Tom Hughes
- LWP::UserAgent now implements a 'max_redirect' attribute with a default
value of 7. This should also fix the problem where redirects to the
same URL to get a cookie didn't work. Sean M. Burke .
- NTLM authentication should continue to fail if the Authen::NTLM module
can't be loaded. LWP used to think the scheme was available as soon as
the module stash showed up. Not it looks for the authenticate method to
be defined. Patch by Jan Dubois.
- lwp-download will not try to rename *.tbz and *.tar.bz2 to match the
reported content type. Robin Barker .
- HTTP::Cookies::Netscape documentation fix by Sean M. Burke.
- HTTP::Cookies::Microsoft documentation fix by Johnny Lee.
- The code that tries to avoid installing 'HEAD' on top of 'head' on
systems like Mac OS was further improved to look in
$Config{installscript} instead of $Config{sitebin}. Patch provided by
Ken Williams .
5.71 2003-10-14
- Support open-ended Range: header for ftp requests. Patch by Matthew
Eldridge .
- lwp-request now prints unsuccessful responses in the same way as
successful ones. The status will still indicate failures.
Steve Hay .
- HTML::Form's dump now also print alternative value names.
- HTML::Form will now pick up the phrase after a or
and use that as the name of the checked value.
- HTML::Form's find_input now returns all inputs that match in array
context. Based on patch by Mark Stosberg in
.
- HTTP::Daemon's send_file() method did not work when given a file name.
Patch by Dave W. Smith .
- HTTP::Daemon is less strict about field names in the request headers is
received. The Norton Internet Security firewall apparently likes to
send requests with a header called '~~~~~~~~~~~~~~~'. Further details
in .
- LWP::Protocol::http assumed $1 would be meaningful without testing the
outcome of the match. This sometimes produced an extra garbage
Authentication header. Based on the patch by
in .
- LWP::Protocol::mailto will try harder to locate the sendmail program as
suggested in . Also
let $ENV{SENDMAIL} override the search.
- Patch to enable OS/2 build by Ilya Zakharevich.
5.70 2003-10-13
- File::Listing::apache by Slaven Rezic
- HEAD requests now work properly for ftp: URLs.
Patch by Ville Skyttä .
- LWP::UserAgent: protocols_allowed() and protocols_forbidden() are now
case-insensitive. Patch by Ville Skyttä .
- Avoid warning from HTTP::Date on certain invalid dates. Patch by
David Dick .
- HTML::Form::param() is an alternative interface for inspecting/modifying
the form values. It resembles the interface of CGI.
- HTML::Form docs updated by Martin Thurn .
- HTML::Form will treat any unknown input types as text input. This appears
to be what most browsers do.
- HTML::Form::parse() can now take a HTTP::Response object as argument.
- The "checkbox" and "option" inputs of HTML::Form can now be turned on with
the new check() method.
- The inputs of HTML::Form can now track alternative value names and allow
values to be set by these names as well. Currently this is only
supported for "option" inputs.
- HTML::Form's dump() method now print the name of the form if present.
5.69 2003-01-24
- Include lwptut.pod contributed by Sean M. Burke C.
- The lwp-request aliases GET, HEAD, POST where installed when no program
should be. Fixed by David Miller .
- lwp-rget --help don't print double usage any more.
- HTTP::Header::Util is now more reluctant to put quotes around token vals.
- Net::HTTP: Avoid warning on unexpected EOF when reading chunk header.
5.68 2003-01-02
- Fix test failure for t/html/form.t when running under perl-5.8.0.
5.67 2003-01-01
- HTTP::Cookies::Microsoft contributed by Johnny Lee .
This module makes it possible for LWP to share MSIE's cookies.
- HTML::Form supports file upload better now. There are some new methods on
that kind of input; file(), filename(), content() and headers().
- Removed unfinished test that depended on Data::Dump.
- Net::HTTP avoids exceptions in read_response_headers() with laxed option.
It now always assumes HTTP/0.9 on unexpected responses.
- HTML::Form documentation reworked.
5.66 2002-12-20
- Various patches from Sean M. Burke. Most of them to match up LWP with
the "Perl & LWP" book.
- LWP::DebugFile module contributed by Sean.
- LWP::Authen::Ntml contributed by James Tillman.
- HTTP::Daemon patch for Alpha by
- The format_chunk() and write_chunk() methods of Net::HTTP did not work.
Bug spotted by Yale Huang .
- The Client-Peer response header is back.
5.65 2002-05-31
- Make HTTP::Date compatible with perl 5.8.
- Try to avoid to default to overwriting /usr/bin/head on MacOS X when the
perl install prefix is /usr/bin.
- HTTP::Cookies fix for parsing of Netscape cookies file on MS Windows.
Patch by Sean M. Burke .
- HTTP::Negotiate doc patch from Edward Avis .
5.64 2002-02-09
- Simplified the Makefile.PL:
- the scripts are not longer *.PL files
- don't try to make symlinks for GET, HEAD, POST as that has not
worked for a long time
- the GET, HEAD, POST aliases for lwp-request should now work on Win
- HTTP::Cookies:
- added 'clear_temporary_cookies'; Mike Schilli .
- trailing space in old cookie parameters not ignored; Ivan Panchenko
- protect against $SIG{__DIE__}; Adam Newby
- LWP::Authen::Digest:
- abort digest auth session if fails repeatedly with the same user/pass
- MacOS portability patches to test suite by Chris Nandor .
5.63 2001-12-14
- HTTP::Negotiate: Deal with parameter names in a case insensitive way. Put
a little weight on the order of features in the Accept headers.
- LWP::UserAgent: make sure that the 'request' attribute is always set on
the returned response.
- LWP::Protocol::http will now allow certain bad headers in the responses
it reads. The bad headers end up in the header 'Client-Junk'.
- Net::HTTP new options to the 'read_response_headers' method. The option
'laxed' will make it ignore bad header lines. The option 'junk_out' can
be used to pass in an array reference. Junk header lines are pushed
onto it.
- Net::HTTP::Methods: fixed the internal zlib_ok() to also return the
correct value the first time.
- LWP::Protocol::http: Ensure that we don't read until select has said it's
ok since we have put the socket in non-blocking mode. Previously this
could happen if you set the 'timeout' attribute of the user agent to 0.
- LWP::Authen::Digest now use Digest::MD5 instead of MD5.
- Some adjustments to Makefile.PL to figure out if Compress::Zlib is
available and adjust the test suite accordingly.
5.62 2001-11-21
- The $VERSION of LWP::UserAgent wrapped around. This confused the CPAN
indexer. Bumped the major number to 2 to fix this.
- Net::HTTP did not work well on perl5.003. The PeerHost argument to
IO::Socket::INET was not recognized, so we had to use PeerAddr instead.
The syswrite() method also required a length argument.
- Net::HTTP did not deal with transfer encoding tokens in a case-insensitive
way. Patch by Blair Zajac .
- The jigsaw-chunk test failed on MacOS because "\n" is different. Patch
by Chris Nandor .
5.61 2001-11-16
- LWP::Protocol::http did not invoke its _fixup_header method. The result
was that the 'Host' header was wrong when going through a proxy server.
- The live Google test is gone. They blocked us.
- The guts of Net::HTTP has moved to Net::HTTP::Methods.
- Net::HTTP now has limits on the size of the header; set by default.
- New module Net::HTTPS.
- Documentation tweaks.
- HTTP::Headers: The 'remove_header' method now return the values of the
fields removed as suggested by Blair Zajac . Also a
typo fix by Blair.
- HTTP::Message: The delegation via &AUTOLOAD should be slightly faster
now. It will install a real forwarding function the first time it is
called for each HTTP::Headers method.
- LWP::UserAgent: Don't forward 'Cookie' headers on redirect. Patch by
Steve A Fink .
- LWP::Protocol::http has been reorganized to make it simpler to subclass
it. Other minor changes to it include:
- Client-Warning is gone
- Client-Request-Num renamed to Client-Response-Num
- A 'Transfer-Encoding' header is rewritten into a
'Client-Transfer-Encoding' header.
- LWP::Protocol::https is completely redone.
5.60 2001-10-26
- Made HTTP/1.1 the default. The old HTTP/1.0 module has been renamed as
LWP::Protocol::http10. There is an environment variable;
PERL_LWP_USE_HTTP_10 that can be set to have LWP use the old drivers.
- Deal with "100 continue" responses even when not requested by and Expect
header in the request. MS IIS is eager to send this kind of response.
- For HTTP/1.1 over SSL there was a problem with the underlying SSL
libraries if the socket was configured to non-blocking mode. Disable
this for https. By Michael Thompson
- Support the Range header for ftp:// reqs. David Coppit .
- Rearrange Bundle::LWP on request from Chris Nandor.
- HTTP::Cookies: Allow a domain like .foo.com match host "foo.com".
By Alexandre Duret-Lutz
- For redirects make sure Host header is not copied to the new request.
- The HTML::HeadParser is not loaded until actually needed.
- Net::HTTP should now work with perl5.005 by a simple tweak to
require IO::Socket::INET
- WWW::RobotRules::AnyDBM: Clear database on open. Some DBM implementations
don't support the O_TRUNC flag properly. Radu Greab .
5.53_97 2001-09-19 (TRIAL)
- LWP::Protocol::http11: fix socket leak. Because we managed to set up a
circular reference within the sockets objects they stayed around forever.
- LWP::UserAgent: Split up simple_request into prepare_request and
send_request. Patch contributed by Keiichiro Nagano
- LWP::Protocol::http: Pass all header data to LWP::Debug::conns. Martijn.
- LWP::UserAgent: Sean fixed a Cut&Paste error.
- HTTP::Cookies: avoid pack("c",...) warning from bleadperl.
5.53_96 2001-08-27 (TRIAL)
- HTTP/1.1 support also for https. by Doug MacEachern
- The HTTP/1.1 modules are now enabled by default. Hope that will give them
more testing than they otherwise would have gotten.
- HTTP::Daemon's accept now has same behaviour as IO::Socket's accept in
list context. Fixed by Blair Zajac .
- More argument sanity checking in HTTP::Request->uri and
LWP::UserAgent->simple_request. Patch by Sean M. Burke.
- HTTP::Protocol::http. short writes. Norton Allen
- HTTP::Protocol::http11: Deal with newlines in header values.
- Net::HTTP: call sysread (instead of xread) when more data is required.
5.53_95 2001-08-06 (TRIAL)
- Fix HTTP::Cookies where there is a mix of Set-Cookie and Set-Cookie2
headers. In that case we used to ignore all Set-Cookie headers. Now we
only ignore those Set-Cookie headers that reference the same cookie as
a Set-Cookie2 header.
- HTTP::Request, HTTP::Response will by default now use "URI" class, instead
of "URI::URL", when constructing its URI objects. This has a potential
for breaking existing code as URI::URL objects had some extra methods
that external code might depend upon.
- Patches by Sean M. Burke:
- Fix treatment of language tags in HTTP::Negotiate
- Avoid trailing newline in $response->message
- HTTP::Response clarifications
- LWP::Simple deals with non-absolute redirects "correctly" now.
- Net::HTTP does not try to load Compress::Zlib until it is needed.
- Net::HTTP documentation has been updated.
5.53_94 2001-05-05 (TRIAL)
- Sean M. Burke's update to LWP::UserAgent:
- updated redirect_ok behaviour
- new convenience methods: get/head/post/put
- protocols_allowed/protocols_forbidden
- LWP::Protocol::nogo (new module)
- Added digest auth test against Jigsaw
- Fixed a 'use of uninitialized'-warning in the handling of digest auth.
- Net::HTTP updates:
- new option: SendTE
- support transfer-encoding 'deflate' and 'gzip' (when Compress::Zlib
is available).
- new methods: format_chunk, format_chunk_eof
- use -1 (instead of "0E0" as signal that no data was available,
but this was not EOF).
5.53_93 2001-04-28 (TRIAL)
- Makefile.PL now asks some questions
- Added live tests for the new HTTP/1.1 support
- LWP::MemberMixin: make it possible to set a value to the 'undef' value.
- Net::HTTP:
- transparent support for 'deflate' and 'gzip' transfer encodings
(need to have the Compress::Zlib module installed for this to work).
5.53_92 2001-04-25 (TRIAL)
- LWP::Protocol::ftp now support keep-alives too. The command connection
will stay open if keep-alives are enabled.
- LWP::Protocol::http11 various fixes:
- chunked request content did not work
- monitor connection while sending request content
- deal with Expect: 100-continue
- LWP::RobotUA: Protect host_port call. Not all URIs have this method.
5.53_91 2001-04-20 (TRIAL)
- Introduced LWP::ConnCache module. Works similar to HTTP::Cookies, it that
it takes effect if associated with the $ua.
- The handling of $ua->max_size changed to make 0 mean 0 (not unlimited). A
value of undef means no limit. The X-Content-Base header is gone. I
hope nobody relies on it. It might come back if people start to scream.
There is a new Client-Aborted header instead.
- The Range header generated for $ua->max_size had an off-by-one error. A
range of "0-1" means 2 bytes.
- The LWP::UserAgent constructor now takes configuration arguments.
- Keep-alive and the new HTTP/1.1 module can now be simply enabled with
something like: LWP::UserAgent->new(keep_alive => 1);
- New method $ua->conn_cache to set up and access the associated connection
manager.
- If the string passed to $ua->agent() ends with space then the
"libwww-perl/#.##" string is automatically appended.
- New method $ua->_agent
- Passing a plain hash to $ua->cookie_jar automatically loads HTTP::Cookies
and initialise an object using the hash content as constructor arguments.
- LWP::Protocol::http11 now use the conn_cache of the $ua.
- LWP::Protocol::http11 now added a few new Client- headers.
- LWP::Protocol avoid keeping the connection alive if $ua->max_size limit
prevents the whole body content from being read.
- Net::HTTP updates:
- new methods: write_chunk(), write_chunk_eof()
- reset state properly when a new body is read.
- always set read buffer empty on eof
- doc update
- WWW::RobotRules patch by Liam Quinn :
- Always qualify netloc with port.
- Reverse User-Agent substring matching.
5.53_90 2001-04-18 (TRIAL)
- Note: This is a developer only release. Not for production use.
- LWP::Protocol::http11 now does keep-alives by default. Still need to
figure out what interface to provide at the $ua level.
- LWP::Protocol::http11 deals with CODE content in request.
- Net::HTTP updated:
- added format_request() method
- added _rbuf and _rbuf_length methods
- read_response_headers does not return protocol version any more.
- peer_http_version method did not work because of typo.
- documentation added
- New module Net::HTTP::NB. This is a Net::HTTP subclass that is better
suited for multiplexing as it is able to do no-blocking reads of headers
and entity body chunks.
- HTTP::Request: Protect $request->uri against evil $SIG{__DIE__} handlers.
- Some reorganisation in how stuff is passed from $ua to protocol object.
The $ua is now passed in so protocol objects might store start in it.
- The $ua->max_size default is now 0.
- The $ua->clone method avoids sharing of proxy settings between the old
and the new.
- This file is renamed to 'Changes' (used to be 'ChangeLog').
5.53 2001-04-10
- LWP::Simple::get() could sometimes return nothing on failure in list
context. Now it always returns 'undef'.
- HTTP::Cookies does not request 2 dots on domain names any more. New
option to hide the Cookie2 header. Cookie2 header now quote the version
number. Updated reference to RFC 2965.
- Support for embedded userinfo in http proxy URIs. It means that you know
can set up your proxy with things like:
http_proxy="http://proxyuser:proxypass@proxyhost:port" Patch by
John Klar .
- Experimental HTTP/1.1 support. New module called Net::HTTP that provide
the lower level interface and a LWP::Protocol::http11 module that
builds on it. The HTTP/1.1 protocol module must be loaded and
registered explicitly, otherwise the old and trustworthy HTTP/1.0
module will be used.
- LWP::Protocol::GHTTP will try to use the get_headers() methods so that it
can actually extract all the headers.
5.52 2001-03-29
- HTTP::Header: new method $h->init_header() that will only set the header
if it is not already set. Some shuffling around in the code.
- LWP::UserAgent will not override 'User-Agent', 'From' or 'Range' headers
if they are explicitly set in the request passed in.
- HTML::Form tries to optimize parsing be restricting the tags that are
reported by HTML::Parser. Will need HTML::Parser v3.19_93 or better for
this to actually have any effect.
- LWP::Protocol::ftp now deals with path parameters again. It means that
you can append ";type=a" to ftp-URI and it will download the document
in ASCII mode.
- If the server output multiple Location headers on a redirect, ignore all
but the first one.
- Extract cookies failed on request URIs with empty paths. This was only
triggered if you used URI objects directly in scripts.
- This change was actually part of 5.51: Fix qop="auth" handling for Digest
authentication. Patch by Dave Dunkin .
5.51 2001-03-14
- SECURITY FIX:
If LWP::UserAgent::env_proxy is called in a CGI environment, the
case-insensitivity when looking for "http_proxy" permits "HTTP_PROXY"
to be found, but this can be trivially set by the web client using the
"Proxy:" header. The fix applied is that $ENV{HTTP_PROXY} is not longer
honored for CGI scripts. The CGI_HTTP_PROXY environment variable can be
used instead. Problem reported by Randal L. Schwartz.
- NOTE: It is recommended that everybody that use LWP::UserAgent (including
LWP::Simple) in CGI scripts upgrade to this release.
- Explicit setting of action on HTML::Form had no effect because of a code
typo. Patch by BooK .
- HTTP::Daemon: The CONNECT method need special treatment because it does
not provide a URI as argument (just a "hostname:port"). The non-upward
compatibility warning is that you must now call $request->url->host_port
to get the host/port string for CONNECT, rather than calling
$request->url and using the entire string. Based on patch from
Randal L. Schwartz
- HTTP::Daemon: Create self URL based on $self->sockaddr. This works better
when LocalAddr is used to specify the port number. Based on patch from
Ben Low .
- Avoid potential ' chunk 1' messages at the end of the
response 'message'.
5.50 2001-01-12
- Fix for test cases that failed because of URI-1.10 now encode space as '+'
instead of '%20. Patch by Christian Gilmore .
- Makefile.PL: Require URI-1.10.
- HTTP::Daemon now accepts any non-space character as method name on the
request line. It used to fail on methods like "M-POST" because it only
allowed \w-chars.
- HTTP::Date now allow fractional seconds in ISO date formats. Based on
patch from Mark D. Anderson
- HTTP::Request::Common will now calculate Content-length even if
$DYNAMIC_FILE_UPLOAD is set. Lindley, Lee T
5.49 2000-12-31
- HTML::Form: Use croak() instead of die. Implement $f->possible_values.
Avoid use of undef value warnings.
- HTTP::Cookies: fix epath issue. Make it work for URI::http as the
uri-attribute of HTTP::Request object
- HTTP::Date: Allow ignored timezone info in parenthesis. Patch by
Sander van Zoest .
- Fix calculation of non-GMT timezones (wrong sign). Patch by
KONISHI Katsuhiro .
- HTTP::Response: Let $res->base() absolutize the URI. Based on bug report
from Hans de Graaff .
- Fixed minor doc typos in HTTP::Headers::Util and LWP::UserAgent.
- HTTP::Request::Common: Support boundary spec from client.
- LWP::Simple: Avoid trivial_http_get when @ in authority part of URI
- LWP::Authen::Digest: Need query in URI param.
- LWP::Protocol::http: unescape user/pass if they are specified in the URI.
- Added LWP::Protocol::GHTTP. This allow LWP to use the HTTP::GHTTP module
as the low level HTTP driver.
5.48 2000-04-09
- README.SSL update by Marko Asplund
- Added cookie example to lwpcook.pod
- HTTP::Date::str2time returns undef on failure instead of an empty list as
suggested by Markus B Krüger
- $request->uri($uri) will now always store a copy of the $uri.
- HTTP::Status: Added status codes from RFC 2616 and RFC 2518 (WebDAV)
- LWP::RobotUA will not parse robots.txt unless content type and content
sample looks right.
- LWP::UserAgent: Deal with multiple WWW-Authenticate headers. Patch by
Hugo
- $ua->proxy can now return the old proxy settings without destroying the
old one. Based on patch by Benjamin Low
- LWP::Protocol::http update
- don't terminate header parsing on bad headers
- extra_sock_opts
- preparations for keep alive support
- method CONNECT
- WWW::RobotRules deal with various absolute URIs in the disallow lines.
- Makefile.PL: Make sure we have HTML::TokeParser
- Clean test on VMS by Charles Lane .
5.47 1999-11-16
- Added HTML::Form to the distribution.
- LWP::Protocol::ftp: Make it URI.pm compatible. We broke it in 5.45.
- LWP::Protocol::http: Kill any Connection header
- LWP::MediaTypes: Fixed builtin html/text mapping. Added bz2 to suffixEncoding
5.46 1999-10-28
- Updated mailing list address
- Avoid warnings for lwp-request -t
- referrer as alternative spelling for referer as suggested by tchrist.
- More conservative selection of boundary for multipart messages in
&HTTP::Request::Common::POST.
- LWP::MediaTypes can now export &read_media_types.
- Spelling corrections from Ben Tilly
5.45 1999-09-20
- The LWP SSL support better explained. Documentation in README.SSL and
lwpcook.pod contributed by Marko Asplund .
- LWP::Protocol::https: Try IO::Socket::SSL if Net::SSL is not available.
- lwp-mirror -t option did not work.
- defined(@ISA) eliminated. Patch by Nathan Torkington
- LWP::Protocol::ftp: Protect against empty path_segments
5.44 1999-06-25
- We require URI-1.03, since this fix some query quoting stuff that
HTTP::Request::Common rely upon.
- 'lwp-request -HUser-Agent:foo' can now be used to set this header too.
- Localize $/ to ensure standard record separator a in HTTP::Cookies
- LWP::UserAgent will now set the Range header in requests if the
$ua->max_size attribute is set.
5.43 1999-05-09
- New lwp-request command line option that allow you to put any header into
the request (-H).
- New HTTP::Date because of Y2K-problems with the old one. It refused to
parse the ftp-listing (ls -l) dates missing year. Additional entry
point is parse_date(). This function avoid any limitations caused by
the time-representation (seconds since epoch).
- Y2K fix to t/base/cookies.t. Netscape's original cookie example expires
at 09-Nov-99.
- binmode() in LWP::Protocol::file: Matt Sergeant
5.42 1999-03-20
- MacOS patches from Paul J. Schinder
- Documentation patch from Michael A. Chase
- PREREQ_PM patch from Andreas Koenig
- LWP::Simple::head fix by Richard Chen
- "LWP fails with PerlEXE"-patch from Gurusamy Sarathy
- Allow "." in HTTP header names: Marc Langheinrich
- Fixed reference to $uri->netloc in lwp-request
- Cute animation in lwp-download
5.41 1998-11-19
- HTTP::Cookies provide better Netscape cookies compliance. Send back
cookies to any port, and allow origin host name to be specified as
domain, and still be treated as a domain. Patch from Andreas
Gustafsson .
- HTTP::Cookies now ignore the Expires field in Set-Cookie, if the date
provided can't be parsed by HTTP::Date.
- HTTP::Daemon will lowercase the hostname returned from
Sys::Hostname::hostname(). This avoid some test failures in the test
suite for people with upper- or mixed-cased hostnames.
- LWP::Protocol::gopher: IO::Socket::INET ctor did not specify
Proto => 'tcp'. This made it less portable to older IO::Socket versions.
- No programs installed when you build the Makefile with
'perl Makefile.PL LIB=/my/lib'
- LWP bundle mention Digest::MD5 instead of MD5
- headers-auth.t test suite bug triggered by perl5.005_5x. Patch by
Albert Dvornik
- The local/http.t test actually did try to unlink("."). This was very
confusing on systems where it succeed.
5.40_01 1998-10-12 (TRIAL)
- Unbundled URI::URL modules. You now have to install the URI.pm module in
order to get libwww-perl working.
- Made library URI.pm compatible. Made all URI object instantiations based
on $HTTP::URI_CLASS variable.
- New lwp-rget option: --referer. INOUE Yoshinari
- One more binmode() to HTTP::Daemon: by Markus Laker
5.36 1998-08-04
- The lwp-download script will call $ua->env_proxy now.
- The lwp-request script allows content types (specified with the -c option)
with optional parameters like: multipart/mixed; boundary="--".
- LWP::UserAgent will lowercase all authentication parameter names before
passing it to the authentication module. Previous releases ignored
parameters like; Realm="Foo" (because Realm contained upper case
letters).
- LWP::Protocol::ftp test for If-Modified-Since was wrong.
- How the $url->abs method works can now be configured with the global
variables $URI::URL::ABS_ALLOW_RELATIVE_SCHEME and
$URI::URL::ABS_REMOTE_LEADING_DOTS.
- The anonymous password guesser for ftp URLs will now call the external
`whoami` program any more. Patch by Charles C. Fu .
- LWP::Protocol::http now allow dynamic requests without any Content-Length
specified when Content-Type is multipart/*
- HTTP::Request::Common can now upload infinite files. (Controlled by the
$DYNAMIC_FILE_UPLOAD configuration variable.)
5.35 1998-07-10
- More lwp-rget patches from David D. Kilzer .
Adds the following new options: --iis, --keepext, --tolower
- LWP::MediaTypes patches from MacEachern . Adds new
functions: add_type(), add_encoding(), read_media_types()
5.34 1998-07-07
- LWP::Protocol::ftp now try to use the MDTM command to support the
Last-Modified response header as well as If-Modified-Since in requests.
Original and final patch by Charles C. Fu
- $url->path_components will not escape "." any more.
- WWW::RobotRules will now work for Mac text files too (lines delimited by
CR only). Patch by Olly Betts
- lwp-rget support links too.
5.33 1998-05-07
- LWP::Simple::get() did try to handle too many of the 3xx codes as
redirect when it bypasses full LWP.
- LWP::UserAgent->mirror will now use utime(2) to set the file modification
time corresponding to the Last-Modified header.
- LWP::Protocol::http will not modify the HTTP::Request that it is
processing. This avoids sticky Host header for redirects.
- URI::Heuristic and lwp-download documentation update.
5.32 1998-04-15
- Much improved HTTP::Daemon class. We now support persistent connections.
Changes include:
- $c->get_request can be told to return after reading and parsing
headers only.
- $c->reason (new method)
- $c->read_buffer (new method)
- $c->proto_ge (new method)
- $c->force_last_request (new method)
- $c->send_response now support CODE reference content and will use
chunked transfer encoding for HTTP/1.1 clients.
- expanded the documentation.
5.31 1998-04-10
- Makefile.PL now checks that HTML::HeadParser is present.
- Updated HTTP::Cookies according to draft-ietf-http-state-man-mec-08.txt
It now supports the .local domain and value less 'port' attribute in
the Set-Cookie2 header.
- HTTP::Headers update:
- $h->content_type now always return a defined value
- $h->header($field) will now concatenate multi-valued header fields
with "," as separator in scalar context.
- HTTP::Request::Common update:
- used to destroy the content of the hash/array arguments passed to
its constructor functions.
- allow a hash reference to specify form-data content.
- you can override Content-Disposition for form-data now.
- set content-encoding for files if applicable
- default boundary string is now always "--000"
- LWP::UserAgent will not follow more than 13 redirects automatically.
5.30 1998-04-01
- Unbundled the following modules:
* HTML-Parser (HTML::Parser, HTML::Entities, HTML::LinkExtor,...)
* HTML-Tree (HTML::Element, HTML::TreeBuilder,...)
* Font-AFM (Font::AFM, Font::Metrics::*)
* File-CounterFile
- Simplified internals of HTTP::Headers. Hopefully, nobody will notice.
- New modules HTTP::Headers::Auth, HTTP::Headers::ETag that adds
additional convenience methods to the HTTP::Headers class.
- Removed split_etag_list() from HTTP::Headers::Util, in the hope that
nobody had starting using it.
5.22 1998-03-24
- HTTP::Cookies made more compatible with Netscape cookies. Allow the domain
to match host, allow dots in the part of the hostname not covered by
domain. Don't quote the cookie value even when it contains non-token
chars. Based on patch from Kartik Subbarao .
- Updated HTTP::Status to reflect .
RC_MOVED_TEMPORARILY renamed to RC_FOUND. Added codes
RC_TEMPORARY_REDIRECT (307) and RC_EXPECTATION_FAILED (417). Slightly
more documentation too.
- The split_header_words() function HTTP::Headers::Util could go into
infinite loop on some header values. Implemented split_etag_list() too
Added more documentation and test script for this module.
- LWP::Simple now switch to full LWP implementation even for systems that
force all environment keys to be upper case. Modification suggested by
Dale Couch .
- LWP::UserAgent allows redirects to a relative URL with scheme to be made.
Suggested by Chris W. Unger .
- Applied dtd2pm.pl patches from . It can now extract
information from the HTML40.dtd
5.21 1998-03-12
- lwp-rget patches from David D. Kilzer
(modified by Gisle). Support the --hier and the --auth options and
s.
- File::CounterFile protect against bad $/ and $\ by Frank Hoehne.
- File::Listing used "next" when return was more appropriate. Patch
by erik@mediator.uni-c.dk.
- HTML::Element support for multiple boolean attributes for a single element.
Patch by Philip Guenther.
- Can set $HTTP::Headers::TRANSLATE_UNDERSCORE to FALSE value to suppress
tr/_/-/ of header keys.
- LWP::Protocol::http won't initialize the Host header if it's already set.
- LWP::Protocol::http did not handle responses with no header lines
correctly. Patch by Daniel Buenzli
- $url->rel() handles path segments without leading "/" better.
5.20 1998-02-13
- Fixed the "500 Offset outside string" bug that affected perl <= 5.004_03
- Fixed a documentation typo. by Michael Quaranta
- HTTP::Date: Protect against croaking from timegm/timelocal.
5.19 1998-01-26
- HTML::Parser does not call $self->text() callback for empty text anymore.
- LWP::Protocol::https was noisy when connections failed and the script was
running with '-w' (noise inherited from IO::Socket::INET)
- $ua->use_alarm(BOOL) now gives a warning if running with -w
5.18_05 1998-01-20 (TRIAL)
- HTTPS support based on my Crypt-SSLeay module. The Net-SSLeay module is
not supported any more.
- lwp-request documentation typo spotted Martijn Koster.
- Removed superfluous \\ in the URI::Escape regex. Spotted by Martijn.
- File::Listing now handles timezones correctly.
- Added $VERSION to modules that was missing it.
- Added 'use strict' to several modules that was missing it.
- LWP::Protocol::http now adds the Client-Peer header to responses and has
hooks for more callbacks.
- LWP::Protocol::https adds Client-SSL-Cipher, Client-SSL-Cert-Subject and
Client-SSL-Cert-Issuer headers to the response. The requests can also
be made conditional based on the peer certificate using the
If-SSL-Cert-Subject header in requests.
- HTML::Parse is back. (It was even used in lwpcook.pod)
5.18_04 1997-12-17 (TRIAL)
- Makefile.PL fix based on report from Pon Hwa Lin
- lwp-request will now print the res code message with -s and -S options.
- Hide IO::Socket::INET noise when running under -w
- Don't set 'Content-Length: 0' in HTTP requests.
- LWP::Protocol::http now calls LWP::Debug::conns again
5.18_03 1997-12-16 (TRIAL)
- Got rid of alarms() and replaced LWP::Socket with IO::Socket::INET.
- New protocol implementations for http, https, gopher, nntp.
- $ua->use_alarm() is now a noop.
- LWP::Protocol::ftp patch from Tony Finch .
- Removed deprecated modules from the distribution; HTML::Parse,
LWP::Socket, LWP::SecureSocket, LWP::IO, LWP::TkIO.
5.18 1997-12-12
- HTTP authorization patches from Tony Finch . Allows
"user:pass@" in HTTP URLs.
- HTML::Parser patch by Brian McCauley . Pass
original text to end() method.
- The HTML::Parser->netscape_buggy_comment method is deprecated. Use
HTML::Parser->strict_comment instead. The default value has changed
with the name.
- Some HTML::Parser optimization tweaks.
- New module named HTML::Filter
- Updated HTTP::Headers to the latest HTTP spec. Added knowledge about the
"Trailer", "Expect", "TE", "Accept-Range" headers. "Public" header
is gone.
- Added some more header convenience methods: if_unmodified_since,
content_language, and proxy_authorization methods.
- HTTP::{Request,Response}->clone can handle subclasses now.
- HTTP::Request->url() can now undefine the URL.
- HTTP::{Request,Response}->as_string format looks more like the HTTP
protocol formatting now. Dashed lines above and below is gone.
- Documented HTTP::Response->status_line method
- Compressed HTML::Response->error_as_HTML output
- HTTP::Status updated to latest HTTP spec. Added
RC_REQUEST_RANGE_NOT_SATISFIABLE (416)
5.17 1997-12-02
- All authentication handling moved out of LWP::UserAgent and into
LWP::Authen::Basic and LWP::Authen::Digest. We now also support
PROXY_AUTHENTICATION_REQUIRED responses.
- HTML::Formatter will always add a blank line for .
- Avoid use of uninitialized value in HTTP::Daemon.
- HTTP::Date allows seconds when recognizing 'ls -l' dates. This allows us
to parse syslog time stamps.
- HTTP::Request::Common::POST allows a hash reference as second argument
(in addition to an array reference).
- LWP::Simple will initialize the $ua if it is exported.
- Various documentation updates.
5.16 1997-11-21
- LWP::Simple::head() would die in array context because str2time was not
imported any more.
- HTTP::Daemon->accept now takes an optional package argument like
IO::Socket->accept does.
- Made HTTP::Request and HTTP::Response subclassable.
- Added Proxy-Authorization example to lwpcook.
5.15 1997-11-06
- New module URI::Heuristic
- The lwp-request script now use URI::Heuristic for it's URL arguments. It
means that 'lwp-request perl' will not get a file called "./perl" but
will fetch the page "http://www.perl.com" or something similar. If you
want to get the file you have to prefix it with "./". Full URLs are
never affected by this.
- LWP::Simple::get() will bypass LWP for simple HTTP requests. This should
make it somewhat faster.
- LWP::RobotUA has a new method called $ua->use_sleep() that controls how
niceness towards the servers are enforced. Previously $ua->use_alarm()
used to control this, but this did not work well on Win32 systems.
- URI::URL::rel() will handle URLs to a fragment within the same document
better. Initial patch from Nicolai Langfeldt .
- HTML::Element don't consider , and optional any more.
- Added lots of modern tags to HTML::AsSubs.
- HTTP::Request::Common will read uploaded files in binmode(). This should
be better for Win32 systems. by .
5.14 1997-10-12
- HTML::Formatter patches from Andreas Gustafsson . The
formatters handling of whitespace is much better now. Thanks!
- HTML::FormatText: can specify margins in the constructor.
- URI::URL: the base will be absolutized internally now.
- URI::URL will take advantage of void context provided by perl5.004. This
means that using $u->path and $u->query should be safer now.
- URI::URL->print_on defaults to STDERR now (used to be STDOUT).
- URI::URL: removed version 3 compatibility stuff ($COMPAT_VER_3).
- $ua->mirror should work better on dosish systems (can not rename when
target file exists).
- Typo in lwp-download prevented it from compiling.
- Some minor documentations typos corrected.
5.13 1997-09-20
- Brand new module called HTTP::Cookies. It stores cookies (Set-Cookie and
Set-Cookie2 headers) from responses and can create appropriate Cookie
headers for requests. It can also share cookie files with Netscape.
- LWP::UserAgent now support the cookie_jar() attribute. When set to an
HTTP::Cookies object, it will automatically manage the cookies sent to
the servers. Off by default.
- New header utility functions in HTTP::Headers::Util.
- Win32 and OS/2 patches for the lwp-xxx utilities. Turn on binary mode
by default (option to turn it off), avoid modifying $0, and don't be
confused about suffixes in the script names. Contributed by Ben
Coleman
- OpenVMS patch for Font:AFM by Brad Hughes
5.12 1997-09-05
- decode_entities() would sometimes introduce ";" after things that looked
like they were entities.
- HTML::LinkExtor knows about