2005-12-08 Gisle Aas
Release 5.805
HTTP::Date: The str2time function returned wrong values for
years in the early 20th century, because timelocal() actually
expects the year to be provided on a different scale than what
localtime() returns.
HTTP::Headers can now be constructed with field names that repeat.
The $h->header function now also accept repeating field
names and can also remove headers if passed undef as value.
HTML::Form: The parse method now takes hash style optional
arguments and the old verbose behaviour is now off by default.
HTML::Form: Accept <select multiple=""> for compatibilty 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.
Patch contributed by 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.
2005-12-06 Gisle Aas
Release 5.804
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
Makefile.PL: Set name to LWP so that the .packlist ends up in the
expected place.
2004-12-11 Gisle Aas
Release 5.803
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. Based on
patch by Harald Joerg.
HTML::Form now support <label> for check- and radio boxes.
Patch contributed by Dan Kubb.
Make HTTP::Daemon subclassable, patch by Kees Cook.
lwp-download allow directory to save into to be specified.
Patch by Radoslaw Zielinski
lwp-download will validate filename derived from server
controlled data and will fail if something looks not
quite right.
2004-11-30 Gisle Aas
Release 5.802
The HTTP::Message object now have a decoded_content() method.
This will return the content after any Content-Encodings and
charsets has been decoded.
Compress::Zlib is now a prerequisite module.
HTTP::Request::Common: The POST() function created an invalid
Content-Type header for file uploads with no parameters.
Net::HTTP: Allow Transfer-Encoding with trailing whitespace.
<http://rt.cpan.org/Ticket/Display.html?id=3929>
Net::HTTP: Don't allow empty content to be treated as a valid
HTTP/0.9 response.
<http://rt.cpan.org/Ticket/Display.html?id=4581>
<http://rt.cpan.org/Ticket/Display.html?id=6883>
File::Protocol::file: Fixup directory links in HTML generated
for directories. Patch by Moshe Kaminsky
Makefile.PL will try to discover misconfigured systems that
can't talk to themselves and disable tests that depend on this.
Makefile.PL will now default to 'n' when asking about whether
to install the "GET", "HEAD", "POST" programs. There has been
too many name clashes with these common names.
2004-11-12 Gisle Aas
Release 5.801
HTTP::Message improved content/content_ref interaction. Fixes
DYNAMIC_FILE_UPLOAD and other uses of code content in requests.
HTML::Form:
- Handle clicking on nameless image.
- Don't let $form->click invoke a disabled submit button.
HTTP::Cookies could not handle a "old-style" cookie named
"Expires".
HTTP::Headers work-around for thread safety issue in perl <= 5.8.4.
HTTP::Request::Common improved documentation.
LWP::Protocol: Check that we can write to the file specified in
$ua->request(..., $file) or $ua->mirror.
LWP::UserAgent clone() dies if proxy was not set. Patch by
Andy Lester
HTTP::Methods now avoid "use of uninitialized"-warning when server
replies with incomplete status line.
lwp-download will now actually tell you why it aborts if it runs
out of disk space of fails to write some other way.
WWW::RobotRules: only display warning when running under 'perl -w'
and show which robots.txt file they correspond to. Based on
patch by Bill Moseley.
WWW::RobotRules: Don't empty cache when agent() is called if the
agent name does not change. Patch by Ville Skyttä
2004-06-16 Gisle Aas
Release 5.800
HTML::Form will allow individual menu entries to be disabled.
This was needed to support <input type=radio disabled value=foo>
and <select><option disabled>foo.
HTML::Form now avoids name clashes between the <select> and
<option> attributes.
HTML::Form now implicitly close <select> elements when it sees
another input or </form>. 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.
Contributed by 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:'.
2004-04-13 Gisle Aas
Release 5.79
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.
Patch 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 all over the place
by Ville Skyttä
Updated tests.
2004-04-07 Gisle Aas
Release 5.78
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
2004-04-06 Gisle Aas
Release 5.77
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. Based on
ideas from 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.
module directory has changed (eg. "darwin-2level" vs.
"darwin-thread-multi-2level").
binary packages of perl modules need to be distinguishable between
being built against threaded perl and unthreaded perl, so bump the
PKGREVISION of all perl module packages and introduce
BUILDLINK_RECOMMENDED for perl as perl>=5.8.5nb5 so the correct
dependencies are registered and the binary packages are distinct.
addresses PR pkg/28619 from H. Todd Fujinaka.
Changes :
- Include lwptut.pod contributed by Sean M. Burke C<sburke@cpan.org>.
- The lwp-request aliases GET, HEAD, POST where installed when
- no program should be. Fixed by David Miller <dave@justdave.net>.
- lwp-rget --help don't print double usage any more.
- HTTP::Header::Util is now more reluctant to put quotes around
token values.
- Net::HTTP: Avoid warning on unexpected EOF when reading chunk
header.
pkgsrc :
- Updated maintainer email
HTTP::Cookies::Microsoft, 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().
Net::HTTP avoids exceptions in read_response_headers() with laxed option.
New LWP::DebugFile, LWP::Authen::Ntml
The format_chunk() and write_chunk() methods of Net::HTTP did not work.
The Client-Peer response header is back.
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::Negotiate doc patch.
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 Windows.
HTTP::Cookies:
- added 'clear_temporary_cookies' method;
patch by Mike Schilli <schilli1@pacbell.net>.
- trailing space in old cookie parameters not ignored;
patch by Ivan Panchenko
- protect against $SIG{__DIE__} handlers;
patch by Adam Newby <adam@NewsNow.co.uk>.
LWP::Authen::Digest:
- abort digest auth session if we fail repeatedly with
the same username/password.
- Regen patches
- Add p5-Compress-Zlib to DEPENDS
- Add Compress::Zlib for Net::HTTP::Methods
- LWP::Authen::Digest now use Digest::MD5 instead of MD5
- Net::HTTP new options to the 'read_response_headers' method
- LWP::Protocol::http will now allow certain bad headers
n the responses it reads.
- LWP::UserAgent: make sure that the 'request' attribute is
always set on the returned response.
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.
The jigsaw-chunk test failed on MacOS because "\n" is different.
- Add HOMEPAGE
- Remove duplicate DEPENDS with p5-URI
- Add patch to avoid interactive questions
- new maintainer
- New Net::HTTPS module
- HTTP/1.1 and SSL supports
- More bugfixs in LWP::*
The automatic truncation in gensolpkg doesn't work for packages which
have the same package name for the first 5-6 chars.
e.g. amanda-server and amanda-client would be named amanda and amanda.
Now, we add a SVR4_PKGNAME and use amacl for amanda-client and amase for
amanda-server.
All svr4 packages also have a vendor tag, so we have to reserve some chars
for this tag, which is normaly 3 or 4 chars. Thats why we can only use 6
or 5 chars for SVR4_PKGNAME. I used 5 for all the packages, to give the
vendor tag enough room.
All p5-* packages and a few other packages have now a SVR4_PKGNAME.
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.
2001-04-10 Gisle Aas <gisle@ActiveState.com>
Release 5.53
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 <j.klar@xpedite.com>.
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.
2001-03-29 Gisle Aas <gisle@ActiveState.com>
Release 5.52
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 <dave_dunkin@hotmail.com>.
2001-03-14 Gisle Aas <gisle@ActiveState.com>
Release 5.51
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 <book@netcourrier.com>.
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 <merlyn@stonehenge.com>
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 <ben@snrc.uow.edu.au>.
Avoid potential '<FILE> chunk 1' messages at the end of the response
'message'.
Changes since 5.48:
Release 5.50
Fix for test cases that failed because of URI-1.10 now encode
space as '+' instead of '%20. Patch by Christian Gilmore
<cgilmore@tivoli.com>.
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 <mda@discerning.com>
HTTP::Request::Common will now calculate Content-length
even if $DYNAMIC_FILE_UPLOAD is set. Patch provided by
Lindley, Lee T <Lee.Lindley@viasystems.com>.
2000-12-31 Gisle Aas <gisle@ActiveState.com>
Release 5.49
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 <sander@covalent.net>.
Fix calculation of non-GMT timezones (wrong sign). Patch by
KONISHI Katsuhiro <konishi@din.or.jp>.
HTTP::Response: Let $res->base() absolutize the URI. Based on
bug report from Hans de Graaff <hans@degraaff.org>.
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 @ appears in authority
part of URI
LWP::Authen::Digest: Need to have query in URI param.
Spotted by <ronald@innovation.ch>.
LWP::Protocol::http: unescape username/password 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.
ones to do, and each compiled and installed/de-installed apparently
correctly.
As a side effect of the dynamic PLIST, we no longer need to have separate
-static and -shared PLISTs. It's now easier than ever to make a perl5
package for NetBSD :)
README.SSL update by Marko Asplund <aspa@hip.fi>
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 <markusk@pvv.org>
$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 <hv@crypt.compulink.co.uk>
$ua->proxy can now return the old proxy settings without
destroying the old one.
Based on patch by Benjamin Low <ben@snrc.uow.edu.au>
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
Added HTML::Form to the distribution.
LWP::Protocol::http: Kill any Connection header
LWP::MediaTypes: Fixed builtin html/text mapping.
Added bz2 to suffixEncoding
Changes are:
o Y2K fix to t/base/cookies.t. Netscape's original cookie
example expires at 09-Nov-99.
o Unbundled URI::URL modules. You now have to install the
URI.pm module in order to get libwww-perl working.
o Avoid warnings for lwp-request -t
o referrer as alternative spelling for referer as suggested by tchrist.
o More conservative selection of boundary for multipart messages
in &HTTP::Request::Common::POST.
o LWP::MediaTypes can now export &read_media_types.
o Spelling corrections from Ben Tilly <Ben_Tilly@trepp.com>
o The LWP SSL support better explained. Documentation in README.SSL
and lwpcook.pod contributed by Marko Asplund <aspa@hip.fi>.
o LWP::Protocol::https: Try loading IO::Socket::SSL if Net::SSL is
not available.
o defined(@ISA) eliminated. Patch by Nathan Torkington <gnat@frii.com>
o LWP::Protocol::ftp: Protect against empty path_segments
o 'lwp-request -HUser-Agent:foo' can now be used to set this
header too.
o Localize $/ to ensure standard record separator a few places
in HTTP::Cookies
o LWP::UserAgent will now set the Range header in requests if
the $ua->max_size attribute is set.
o New lwp-request command line option that allow you to put any
header into the request (-H).
o 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).
o Added another binmode() to LWP::Protocol::file as suggested
by Matt Sergeant <matt-news@sergeant.org>
o Documentation patch from Michael A. Chase <mchase@ix.netcom.com>
o PREREQ_PM patch from Andreas Koenig <andreas.koenig@anima.de>
o LWP::Simple::head fix by Richard Chen <richard@lexitech.com>
o Allow "." in HTTP header names. Patch by Marc Langheinrich
<marc@ccm.cl.nec.co.jp>
o Fixed reference to $uri->netloc in lwp-request
o Cute animation in lwp-download
o 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 <gson@araneus.fi>.
o HTTP::Cookies now ignore the Expires field in Set-Cookie, if the
date provided can't be parsed by HTTP::Date.
o 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.
o LWP::Protocol::gopher: IO::Socket::INET ctor did not specify
Proto => 'tcp'. This made it less portable to older IO::Socket
versions.
o No programs installed when you build the Makefile with
'perl Makefile.PL LIB=/my/lib'
o LWP bundle mention Digest::MD5 instead of MD5
o headers-auth.t test suite bug triggered by perl5.005_5x.
Patch by Albert Dvornik <bert@genscan.com>
o The local/http.t test actually did try to unlink("."). This was
very confusing on systems where it succeed.
o Made library URI.pm compatible. Made all URI object instantiations
based on $HTTP::URI_CLASS variable.
o New lwp-rget option: --referer.
Patch by INOUE Yoshinari <inoue@kusm.kyoto-u.ac.jp>.
o One more binmode() to HTTP::Daemon as suggested by
Markus Laker <mlaker@contax.co.uk>.