Fri Feb 13 1998 Gisle Aas <aas@sn.no>
o Release 5.20
o Fixed the "500 Offset outside string" bug that affected perl
5.004_03 and older version of Perl.
o Fixed a documentation typo spotted by Michael Quaranta
<quaranta@vnet.IBM.COM>
o HTTP::Date: Protect against croaking from timegm/timelocal.
Mon Jan 26 1998 Gisle Aas <aas@sn.no>
o Release 5.19
o HTML::Parser does not call $self->text() callback for empty text
any more.
o LWP::Protocol::https was noisy when connections failed and the
script was running with '-w' (noise inherited from IO::Socket::INET)
o $ua->use_alarm(BOOL) now gives a warning if running with -w
Tue Jan 20 1998 Gisle Aas <aas@sn.no>
o Developer release 5.18_05
o HTTPS support based on my Crypt-SSLeay module. The Net-SSLeay module
is not supported any more.
o lwp-request documentation typo spotted Martijn Koster.
o Removed superfluous \\ in the URI::Escape regex. This was also
spotted by Martijn.
o File::Listing now handles timezones correctly.
o Added $VERSION to modules that was missing it.
o Added 'use strict' to several modules that was missing it.
o LWP::Protocol::http now adds the Client-Peer header to responses and
has hooks for more callbacks.
o 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.
o HTML::Parse is back. (It was even used in lwpcook.pod)
Wed Dec 17 1997 Gisle Aas <aas@sn.no>
o Developer release 5.18_04
o Makefile.PL fix based on report from Pon Hwa Lin <koala@fragment.com>
o lwp-request will now print the response code message with -s and -S
options.
o Hide IO::Socket::INET noise when running under -w
o Don't set 'Content-Length: 0' in HTTP requests.
o LWP::Protocol::http now calls LWP::Debug::conns again
Tue Dec 16 1997 Gisle Aas <aas@sn.no>
o Developer release 5.18_03
o 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.
o LWP::Protocol::ftp patch from Tony Finch <fanf@demon.net>.
o Removed depreciated modules from the distibution; HTML::Parse,
LWP::Socket, LWP::SecureSocket, LWP::IO, LWP::TkIO.
Fri Dec 12 1997 Gisle Aas <aas@sn.no>
o Release 5.18
o HTTP authorization patches from Tony Finch <fanf@demon.net>.
Allows "user:pass@" in HTTP URLs.
o HTML::Parser patch by Brian McCauley <B.A.McCauley@bham.ac.uk>.
Pass original text to end() method.
o The HTML::Parser->netscape_buggy_comment method is depreciated.
Use HTML::Parser->strict_comment instead. The default value
has changed with the name.
o Some HTML::Parser optimization tweaks.
o New module named HTML::Filter
o Updated HTTP::Headers to the latest HTTP spec. Added knowledge
about the "Trailer", "Expect", "TE", "Accept-Range" headers.
"Public" header is gone.
o Added some more header convenience methods: if_unmodified_since,
content_language, and proxy_authorization methods.
o HTTP::{Request,Response}->clone can handle subclasses now.
o HTTP::Request->url() can now undefine the URL.
o HTTP::{Request,Response}->as_string format looks more like
the HTTP protocol formatting now. Dashed lines above and
below is gone.
o Documented HTTP::Response->status_line method
o Compressed HTML::Response->error_as_HTML output
o HTTP::Status updated to latest HTTP spec. Added
RC_REQUEST_RANGE_NOT_SATISFIABLE (416)
Tue Dec 2 1997 Gisle Aas <aas@sn.no>
o Release 5.17
o 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.
o HTML::Formatter will always add a blank line for <br>.
o Avoid use of uninitialized value in HTTP::Daemon.
o HTTP::Date allows seconds when recognizing 'ls -l' dates. This
allows us to parse syslog time stamps.
o HTTP::Request::Common::POST allows a hash reference as second
argument (in addition to an array reference).
o LWP::Simple will initialize the $ua if it is exported.
o Various documentation updates.
Fri Nov 21 1997 Gisle Aas <aas@sn.no>
o Release 5.16
o LWP::Simple::head() would die in array context because str2time
was not imported any more.
o HTTP::Daemon->accept now takes an optional package argument like
IO::Socket->accept does.
o Made HTTP::Request and HTTP::Response subclassable.
o Added Proxy-Authorization example to lwpcook.
Thu Nov 6 1997 Gisle Aas <aas@sn.no>
o Release 5.15
o New module URI::Heuristic
o 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.
o LWP::Simple::get() will bypass LWP for simple HTTP requests. This
should make it somewhat faster.
o 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.
o URI::URL::rel() will handle URLs to a fragment within the same
document better. Initial patch from Nicolai Langfeldt
<janl@math.uio.no>.
o HTML::Element don't consider </th>, </tr> and </td> optional any
more. I wonder how Netscape managed to not implement this
correctly all this time.
o Added lots of modern tags to HTML::AsSubs.
o HTTP::Request::Common will read uploaded files in binmode().
This should be better for Win32 systems. Contributed by
<Steve_Kilbane@cegelecproj.co.uk>.
Sun Oct 12 1997 Gisle Aas <aas@sn.no>
o Release 5.14
o HTML::Formatter patches from Andreas Gustafsson <gson@araneus.fi>.
The formatters handling of whitespace is much better now. Thanks!
o HTML::FormatText: can specify margins in the constructor.
o URI::URL: the base will be absolutized internally now.
o 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.
o URI::URL->print_on defaults to STDERR now (used to be STDOUT).
o URI::URL: removed version 3 compatibility stuff ($COMPAT_VER_3).
o $ua->mirror should work better on dosish systems (can not
rename when target file exists).
o Typo in lwp-download prevented it from compiling.
o Some minor documentations typos corrected.
Sat Sep 20 1997 Gisle Aas <aas@sn.no>
o Release 5.13
o 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.
o 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.
o New header utility functions in HTTP::Headers::Util.
o 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 <bcoleman@mindspring.com>
o OpenVMS patch for Font:AFM by Brad Hughes <brad@tmc.naecker.com>
Fri Sep 5 1997 Gisle Aas <aas@sn.no>
o Release 5.12
o decode_entities() would sometimes introduce ";" after
things that looked like they were entities.
o HTML::LinkExtor knows about <applet code="...">
o Patch from Gary Shea <shea@gtsdesign.com> that makes the
tests work even if perl is not called "perl"
o HTTP::Date handles 12:00PM correctly now. Patch from
William York <william@mathworks.com>
o HTTP::Request::Common don't quote the boundary string for
multipart/form-data messages any more.
o Font::AFM works for encodings where .notdef is defined to
have some size. Documentation and efficiency update.
Wed Aug 6 1997 Gisle Aas <aas@sn.no>
o Release 5.11
o Perl version 5.004 is now required for libwww-perl.
o Win32 patches from Gurusamy Sarathy <gsar@engin.umich.edu>.
Now passes all tests on that platform.
o HTTPS support contributed by Josh Kronengold <mneme@mcny.com>
o Support hex entities ÿ HTML::Entities::(en|de)code only
modify their argument in void context.
o Fixed formatter bug with <font> tags which did not specify size.
o Better HTML::HeadParser documentation
o Fixed HTML::LinkExtor documentation typo spotted by Martijn.
o HTTP::Request::Common now use CRLF for multipart/form-data
Fri Jun 20 1997 Gisle Aas <aas@sn.no>
o Release 5.10
o Make '+' a reserved URL character. Decode unescaped '+' as
space in $url->query_form().
o Use $Config{d_alarm} to determine default for $ua->use_alarm()
Tue Jun 10 1997 Gisle Aas <aas@sn.no>
o Release 5.09
o Removed the MIME modules from the distribution. They are distributed
separately now.
o Added a new module called HTTP::Request::Common
o Improved HTTP::Status documentation. It is now also possible
to import the is_client_error/is_server_error functions.
o LWP::MediaTypes::guess_media_type() can now take an optional
HTTP::Header parameter.
o LWP::Protocol ensures that scheme is legal as module name.
o LWP::Protocol::http is not as strict when trying to verify the
method name. It now also accepts responses without a message
on the status line.
o WWW::RobotRules::AnyDBM_File: Some DBMs fail to allow multiple
opens of the same file. Patch from Mark James <jamesm@skate.org>
o Created Bundle::LWP
Sat Apr 5 1997 Gisle Aas <aas@sn.no>
o Release 5.08
o Made libwww-perl warning compatible with upcoming perl5.004beta2
(aka 5.003_98)
o encode_base64() did not work properly if pos() of the string to
encode was different from 0.
o HTML::Parser was confused about "</" when it did not start an end tag.
o HTML::FormatPS will provide ISOLatin1Encoding in its output.
o Calling HTML::LinkExtor->links will clear out old links.
o url()->rel($base) would ignore the $base argument.
o Don't croak() when setting url()->path().
Tue Feb 11 1997 Gisle Aas <aas@sn.no>
o Release 5.07
o Can limit the size of the response content with $ua->max_size()
o Added time2iso() functions to HTTP::Date.
o Made LWP::Protocol::http more portable to the MacPerl. /./ match
different things on MacPerl.
Mon Jan 27 1997 Gisle Aas <aas@sn.no>
o Release 5.06
o URI::URL is now compatible with perl5.004 overloading.
o HTML::HeadParser makes X-Meta-Name headers for <meta> elements
that does not specify an 'http-equiv' attribute.
o URI::URL::ftp does not die if Net::Domain is not installed and
you ask for an anonymous username or password.
o WWW::RobotRules: The robots.txt parser did not ignore comment lines
as it should.
o LWP::Protocol::http is more forgiving towards servers that return
bad responses.
o Allow "?" before search string in gopher URLs.
o LWP::Protocol::file did not escape funny filenames when generating
HTML directory listings.
o LWP::Protocol::ftp now gets the Content-Encoding correct. 'CODE'
content in PUT requests also work now.
o Relative locations in redirects did not work with URI::URL::strict.
o OS/2 portability patches from Ilya Zakharevich
o LWP::Authen::* patch from Doug MacEachern
o Support experimental data:- URLs
o Some tests (those using HTTP::Daemon) now die more gracefully if
IO::* modules is not installed.
Wed Dec 4 1996 Gisle Aas <aas@sn.no>
o Release 5.05
o LWP::UserAgent::simple_request: local($SIG{__DIE__}) protects us
against user defined die handlers.
o Use Net::Domain (instead of Sys::Hostname) to determine FQDN. It
is used by URI::URL when it determines anonymous ftp login address.
o lwp-download: New program in the bin directory
o HTML::Parser: Allow '_' in attribute names. This makes it possible
to parse Netscape's bookmarks.html file.
o HTTP::Daemon: Fixed chunked transfer encoding and multipart content
in get_request(). Support HTTP/0.9 clients.
o Don't clobber regex variables when HTTP::Message delegates methods
to the header.
o Base64::decode_base64 now checks that the length input string to
decode is a multiple of 4.
o t/robot/rules-dbm.t clean up better and will use AnyDBM for dumping
o File::CounterFile: $/ strikes again by Andreas König
o File::Listing updates from William York <william@mathworks.com>. We
can now parse the MS-Windows ftp server listings.
o HTTP::Date now supports the MS-Windows 'dir' date format. Patch by
William York.
o LWP::MediaTypes::media_suffix will return first type in scalar context.
Tue Oct 22 1996 Gisle Aas <aas@sn.no>
o Release 5.04
o Added HTTP::Daemon. This is a HTTP/1.1 server class. This means
that libwww-perl no longer is a client library only. The HTTP::Daemon
is also used in the new test suite.
o HTTP::Message support the protocol() method. Used by HTTP::Daemon.
o HTTP::Response can be constructed with a header and content as
argument.
o Typo corrections in the documentation.
o File::Listing::parse_dir accepts "GMT" as timezone now.
o HTML::Parser will call the start() method with two new parameters;
$attrseq, $origtext.
o Integrated HTML::FormatPS patches from
Jim Stern <jstern@world.northgrum.com>
o Class modules don't inherit from AutoLoader any more. They just
import the AUTOLOAD method.
o LWP::Protocol will untaints scheme before loading protocol module.
o Digest does not send "opaque" if it was not present in the request.
The "Extension" header is not returned any more.
o New method: $url->crack that will return a list of the various
elements in a URI::URL.
o WWW::RobotRules did not use the agent() method when determining
who we are. This affected WWW::RobotRules::AnyDBM_File parsing
for robots.txt. Visit count did not increment for
WWW::RobotRules::InCore.
Tue Oct 1 1996 Gisle Aas <aas@sn.no>
o Release 5.03
o Hakan Ardo's persistent robot rules is now part of the standard
distribution. This is still experimental and might change in the
future. It includes the new WWW::RobotRules::AnyDBM_File class
and updates to LWP::RobotUA.
o HTML::Parser now supports buggy Netscape comment parsing. Enable
it by calling $p->netscape_buggy_comment(1). The previous version
of the parser could also (under very unlucky and unlikely
circumstances) call the $self->comment() method several times for
the same comment text.
o HTML::Parser: Use new $p->eof to signal end of document instead of
$p->parse(undef).
o HTML::Element::starttag() is now smarter about which quotes it
use around attribute values.
o New HTTP::Response methods: current_age(), freshness_lifetime(),
is_fresh(), fresh_until().
o HTTP::Message: New method ($mess->content_ref) which will return
a reference to the current content.
o URI::URL: New method ($url->rel) which does the opposite of abs().
Example: url("http://host/a/b/c", "http://host/c/d/e")->rel would
return url("../../a/b/c", "http://host/c/d/e"). This was
suggested by Nicolai Langfeldt <janl@ifi.uio.no>
o URI::URL: $url->query_form can now take array references as value
specification. For instance: $url->query_form(foo => ['bar', 'baz']
o Avoid '"my" variable $var masks earlier declaration in same scope'
warnings in perl5.003_05.
Wed Sep 11 1996 Gisle Aas <aas@sn.no>
o Release 5.02
o lwp-rget: Initialize proxy settings from envirionment
o HTML::Entities::encode_entities: Don't encode $ and %
o HTML::LinkExtor::links: Now works when no links were found.
o HTTP::Headers::as_string: Allow \n in header value
Tue Aug 1 1996 Gisle Aas <aas@sn.no>
o Release 5.01.
o Updated ftp protocol module to be compatible with Net::FTP
version 2.00 (the version found in libnet-1.00)
o New HTML parser module called HTML::LinkExtor
o Various documentation typo corrections. Most of these contributed
by Bob Dalgleish.
o HTML::HeadParser updates 'Content-Base' instead of 'Base'. It also
updates the 'Link' header based on <link ...>
o HTTP::Headers and HTTP::Status updated according to
draft-ietf-http-v11-spec-06
o HTTP::Headers can now use "_" as alternative to "-" in field names.
o HTTP::Response::base now looks for 'Content-Base',
'Content-Location' and 'Base' headers.
o Avoid warning in LWP::MediaTypes if $ENV{HOME} is not defined.
o The new $ua->parse_head() method can be used to turn off
automatic initialization of response headers from the <HEAD>
section of HTML documents.
o Added eq() method for URI::URL objects
o The HTML::Formatter recovers even if a handle method is not defined
for all tags found during traversal
Sun May 26 1996 Gisle Aas <aas@sn.no>
o Release 5.00.
o LWP::Simple::head() now return something useful in scalar context.
o Rewritten the HTML::Parse stuff. Introduced the HTML::Parser class
that will tokenize a HTML document. The rest of the old
HTML::Parse functionality has moved to HTML::TreeBuilder class.
Note, that the HTML stuff is still alpha.
o Implemented HTML::HeadParser. This is a lightweight parser for
the <HEAD> section of a HTML document.
o HTML::Element had problem with presenting things like <foo
bar="bar">.
o HTML::Entities: Included additional ISO-8859/1 entities listed in
RFC1866.
o HTML::AsSubs exported 'header' instead of 'head'
o We know about a few more of the HTML 3.2 element.
o HTTP::Date had problems with years before 1970, because Time::Local
went into an infinite loop. Check for this.
o Added $header->title method.
o Made $header->authorization_basic return "uname:passwd" in scalar
context
o LWP::Protocol::collect() will let the HTML::HeadParser look at the
document content as it arrives. This will initialize headers from
elements like <base href="...">, <title>...</title> and <meta
http-equiv="..." ...>.
o Simplified $response->base implementation, because we don't have
to look into the content any more.
o Added -quiet option to lwp-rget
o Typo fixes and some documentation additions.
Thu May 9 1996 Gisle Aas <aas@sn.no>
o Release 5b13
o Made URI::URL::strict(0) the default. I got tired of all this
eval { } stuff just to recover. The URI::URL::strict'ness also
determine if calling some standard method that happens to be
illegal for some protocol scheme will croak or just be ignored.
o Ensure correct $INPUT_RECORD_SEPARATOR and $OUTPUT_RECORD_SEPARATOR
at places where we <> or print.
o Always localize $_ before any 'while(<FILE>) {}'-loops
o Implemented $protocol->collect_once() and simplified several
of the protocol implementations by using it.
o The HTML parser used to get it wrong if you were unlucky about the
breakup of the text. An example of broken behaviour was this:
$html = parse_html "<!-- A comment -";
$html = parse_html "-> and some text.";
o The HTML parser does not ignore whitespace-only text any more.
o HTML::Parse warnings are now optional and turned off by default.
o New start for $html->as_HTML().
o Fixed some typos
Wed Apr 24 1996 Gisle Aas <aas@sn.no>
o Release 5b12
o New utility program called 'lwp-rget'.
o $response->base was broken for HTML documents
o New fancy LWP::Debug import() method. Can now turn on debugging with
"use LWP::Debug '+';"
o Trap exceptions (die) from the response callback routine
o The RobotUA now requires an e-mail address of the person reponsible
for the robot.
o New $ua->from() method.
o Support for gopher Index-Search (gopher type '7' requests).
Contributed by Harry Bochner <bochner@das.harvard.edu>
o Cleaned up white-space usage in the source.
Wed Apr 3 1996 Gisle Aas <aas@sn.no>
o Release 5b11
o Implemented a NNTP protocol module. The library can now fetch and
post news articles.
o More documentation
o Don't look at the URI header for redirects
o New $res->base() method for HTTP::Responses
o Graham Barr's patch to File::Listing to make it more OO internally
o content_type() return value is canonicalized
o $ua->request() does not die on bad URLs any more
o LWP::MediaTypes merge all media.types files that if finds
o FTP request with content to file or callback did not work
o The value of HTTP Host: header is now $url->netloc;
o The URI::URL constructor now accept URLs wrapped up in "<>"
o $url->abs() now has a second optional argument that makes it accept
that relative URLs can have scheme, i.e. treat "http:img.gif" as a
relative URL.
o Added prototypes to the HTTP::Status::is_xxx() functions
o Added prototypes to the MIME:: encoding/decoding functions
o Always return scheme for mailto and news URLs (as_string)
o RobotRules patches from Henry A Rowley.
o More tests
o <SMALL> and <BIG> again
Thu Mar 14 1996 Gisle Aas <aas@sn.no>
o Release 5b10
o GET ftp://host/doc was never successful for normal files.
o LWP::Socket: read_until() did not notice EOF condidtion. I.e. if
a HTTP server closed the connection before any output was generated,
the we continued to read 0 bytes in a busy loop until the alarm()
killed us.
o Added support for Digest Access Authentication. Contributed by
Doug MacEachern <dougm@osf.org>.
o Makefile.PL: check for MD5 library
o No longer print message content in HTTP::Response::error_as_HTML()
o Access to "file:/path" gave warning when the envirionment variable
no_proxy was set.
o The http-post test sends a Content-Type header. Some servers hang
if this header is missing.
o HTML::Parse:
- allow <SMALL> and <BIG> tags
- allow empty attribute values
Tue Mar 5 1996 Gisle Aas <aas@sn.no>
o Release 5b9
o Started to write on the libwww-perl cookbook (lwpcook.pod)
o The URI::URL module now exports the function url(). This is an
alternative (easy to use) constructor function.
o Expanding relative file URLs starting with "#" did not work.
o Fixed autoloaded DESTROY problem by adding empty DESTROY routine
to URI::URL.
o Does not try generate password for ftp-URLs unless the username is
"anonymous" or "ftp"
o The LWP::Simple user agent proxy settings are intialized from
the proxy environment variables.
o LWP::Protocol::ftp: Use the Net::FTP library to access ftp servers.
Convert directories to HTML on request (Accept: text/html).
o New module HTTP::Negotiate
o New module File::Listing
o HTTP::Date::str2time can parse a few more formats, like the 'ls -l'
format and ISO 8601. The function now also takes an optional second
parameter which specify a default time zone.
o Added prototypes to the HTTP::Date functions.
o The library adds a timestamp to responses ("Client-Date")
o HTTP::Status: Updated to proposed HTTP/1.1
o HTTP::Headers: Updated to proposed HTTP/1.1
o LWP::Protocol::http: Updated to HTTP/1.1 methods
o Took out stringify overloading in HTML::Element.
Mon Feb 26 1996 Gisle Aas <aas@sn.no>
o Release 5b8
o Renamed functions using thisStyleOfNames to this_style_of_names.
Provided a script called 'update_from_5b7'
o Renamed the 'request' and 'mirror' scripts to 'lwp-request' and
'lwp-mirror'. The GET, POST, HEAD aliases for 'lwp-request' are
the same.
o Implemented LWP::RobotUA
o Class name for RobotRules did not match the file name
o URI::URL
- perl5.002gamma is required (because use vars).
- The leading slash in now part of the path if it is present.
- More documentation
- Use AutoLoader to speed things up.
- New class URI::URL::_login and made telnet, rlogin, tn3270
subclasses from this one.
- URI::URL::wais is better supported.
- URI::URL::news is better supported.
- New URI::URL::mailto methods: user/host
o HTTP::Date::time2str now works correctly with '0' as argument
o HTTP::Message delegates unknown methods to the headers.
o HTTP::Request::uri is an alias for HTTP::Request::url. Can set
the URL to undef.
o Added convenience methods to HTTP::Headers for easy access to
frequently used headers.
o Simplified LWP::Debug
o Use standard AutoLoader for LWP::IO functions.
o Played with the profiler (Devel::DProf) and made some things
go quicker.
o Included the File::CounterFile module. Excluded Mail::Cap module
as it is also part of the MailTools package.
Mon Feb 5 1996 Gisle Aas <aas@sn.no>
o Release 5b7
o Perl5.002 is required now
o Rewrite of the URI::URL module (version 4.00)
- escaping/unsafe stuff redone (and removed)
- URI::URL::_generic moved out of URL.pm
- netloc, path, params, query is now stored internally in escaped form
- new methods for URI::URL::_generic are:
epath
eparams
equery
path_components
absolute_path
- new methods for URI::URL::http are:
keywords
query_form
- new methods for URI::URL::file are:
newlocal
local_path
unix_path
dos_path
mac_path
vms_path
o URI::Escape now semi-compile regular expressions (by evaling an
anonymous sub). Same techinque is also used in HTML::Entities.
o HTTP::Date parser rewritten using regular expressions.
o HTTP::Headers->as_string() now croaks if any field values
contain newline.
o HTTP::Status constants use empty prototype.
o Font metrics moved to a new subdirectory (lib/Font/Metrics)
o Don't use the VERSION script any more (even if it was very clever)
o HTML::Entities will now export the names decode_entities() and
encode_entities().
o Andreas Koenig's black patch to HTML::Element.
o The HTML::Formatter now knows about <menu> and <dir> tags
o The construct "defined ref($arg)" did not work on perl5.002
becase ref now always return something defined.
o LWP::UserAgent sends by default an 'User-Agent' header.
o LWP::Simple sends 'User-Agent' header to servers.
o Updated the LWP::Socket module to use the new Socket.pm interface.
o LWP::Protocol::http sends the new HTTP/1.1 'Host' header.
o LWP::Protocol::file use $url->local_path to get a file to open.
It also inserts a <BASE> tag in directories instead of a redirect.
o MIME::Base64 routines can be called as MIME::Base64::encode() and
MIME::Base64::decode(). Same kind of thing for QuotedPrint.
Mon Nov 6 1995 Gisle Aas <aas@oslonett.no>
o Release 5b6
o Installation should work better for those that still runs
perl4 as 'perl'. The mirror script is not installed by
default.
o LWP::Socket::_getaddress() Numerical IP adresses did not work.
o LWP::Socket::pushback() did not work. This also avoids the bad
pp_select() core dump from perl.
o LWP::IO now also selects on socket exceptions.
o HTML::Parse: Ignore <!DOCTYPE ...> regardless for case. Some
bad insertElement() calls made infinite loops.
o The uri.t test works better for places where /tmp is a sym-link.
Sat Sep 16 1995 Gisle Aas <aas@oslonett.no>
o Release 5b5
o newlocal URI::URL does not put "//localhost" into the URLs any
longer.
o The request program: New -o option to reformat the HTML code
New -C option to provide credentials on the command line.
The -b option never worked.
o LWP::Protocol::file now returns redirect for access to directories
where the trailing slash is missing.
Thu Sep 14 1995 Gisle Aas <aas@oslonett.no>
o Speedups and bug fixes in the HTML parser. The parser now
understands some more depreciated tags (like <xmp> and <listing>).
o HTML::Elements are now stingified using perl overloading.
The interface to the traverse() callback has changed.
o Implemented HTML formatters for plain text and Postscript.
o Added lib/Font stuff to support the Postscript formatter.
o Inspired by Tim Bunce, I implemented the HTML::AsSubs module.
Don't know if it is really useful.
o The local/get test does not use /etc/passwd any more.
Thu Sep 7 1995 Gisle Aas <aas@oslonett.no>
o Changed package name to libwww-perl-5xx
o Made LWP::Protocol::ftp actually transfer data
o Implemented methods for LWP::Socket to act as a server:
bind(), listen(), accept(), getsockname(), host(), port()
Wed Sep 6 1995 Gisle Aas <aas@oslonett.no>
o Release 0.04
o Implemented modules to parse HTML.
Mon Sep 4 1995 Gisle Aas <aas@oslonett.no>
o Implemented Mail::Cap which will become part of the MailTools
package.
o Moved Base64 to MIME::Base64. Reimplemented MIME::Base64 by using
[un]pack("u",...) Implemented LWP::MIME::QuotedPrint for
completness sake. Routine names has changed as suggested by Tim
Bunce.
o LWP::MediaType reads default types from media.types file.
guessMediaType() now also returns encodings. New function mediaSuffix()
o Pass $url to $ua->getBasicCredentials(). This also fixes security
hole with the old implementation of getBasicCredentials().
o LWP::Protocol::file now sets Content-Encoding headers
o Allow request content to be provided by a callback routine.
o Fix bug that prevented response callback to work. The first parameter
(data) is no longer a reference, because $_[0] is already a reference.
Don't callback unless successful response. Callbacks during redirects
was confusing.
o URI::URL. Remove port from netloc if it is the default port.
Don't use anything, just require.
o HTTP::Message->addContent() does not need a reference parameter.
o LWP::Socket->open() has been renamed top LWP::Socket->connect()
LWP::Socket->close has gone. Implemented new method LWP::Socket->read()
that returns as fast as it has some data to offer. Implemented
LWP::Socket->pushback().
o Does not die in LWP::UserAgent->request()
o LWP::Socket now use LWP::IO for low level IO
o Implemented LWP::TkIO as a replacement module for LWP::IO when using Tk.
Thu Aug 17 1995 Gisle Aas <aas@oslonett.no>
o $ua->redirectOK() for checking redirects
o reorganized tests in the "t" directory.
Fri Aug 11 1995 Gisle Aas <aas@oslonett.no>
o Release 0.03
o Included RobotRules.pm from Martijn Koster
Thu Aug 10 1995 Gisle Aas <aas@oslonett.no>
o New module URI::Escape (URI::URL use this module for default
escaping) that provide the uri_escape() and uri_unescape()
functions.
o Setting $url->scheme now changes the class of the object.
o Made $httpurl->user() and $httpurl->password() illegal.
Likewise for other URL schemes.
Wed Aug 9 1995 Gisle Aas <aas@oslonett.no>
o Reorganisation as discussed on <libwww-perl@ics.uci.edu>
LWP::Date --> HTTP::Date
LWP::MIMEheader --> HTTP::Headers
LWP::StatusCode --> HTTP::Status
LWP::Message --> HTTP::Message
LWP::Request --> HTTP::Request
LWP::Response --> HTTP::Response
LWP::MIMEtypes --> LWP::MediaTypes
o HTTP::Date parses ctime format with missing timezone as suggested
by Roy Fielding <fielding@beach.w3.org>
o HTTP::Status and LWP::MediaTypes exports their functions by default.
o Splitted up the URI::URL module. Schemes are implemented by separate
files that are autoloaded when used. Self test moved to "t/uri.t".
Mon Aug 7 1995 Gisle Aas <aas@oslonett.no>
o Applied patch from Marc Hedlund <hedlund@best.com>
- Update the @header_order according to the August 3rd draft.
- Added Response Header fields: 'Location', 'Public', 'Retry-After',
'Server', and 'WWW-Authenticate'.
- Moved 'unknown header' handling from &scan to &header. The old
implementation was forcing all unknown header-words to begin with
an uppercase (as it should be), but disallowed other uppercase
letters.
- updates the status code messages under the August
3rd HTTP/1.0 draft. '203' became 'Non-Authoritative Information',
'303' became 'See Other', and a new code,
'411 Authorization Refused', was added.
o Can remove multiple headers with single removeHeader() call in MIMEheader.
o Can assign multiple field/value pairs in header() method of MIMEheader.
o A field with multiple values is printed as separate values in
MIMEheader::as_string().
o LWP::Response contain new attributes: previous() and request(). These
attributes are updated by the UserAgent.
o Appended \n to some die statements in Socket so that line numbers are
suppressed in error messages.
o Made UserAgent::clone work for reference members
o Check for redirect loops and multiple authorization failures by
examination of the response chain.
o Use "\015\012" instead of "\r\n" in protocol modules. Some systems
define \r and \n differently.
o request program can now handle documents that needs autorization by
prompting the user for username/password. Added new -S option to print
request/response chain.
Tue Jul 25 1995 Gisle Aas <aas@oslonett.no>
o Release 0.02
o Included URI::URL in the release
Mon Jul 24 1995 Gisle Aas <aas@oslonett.no>
o Incorporated Makemake.PL and VERSION from Andreas Koenig <koenig@mind.de>
As a result of this the following things have changed:
- programs in "bin" are extracted from .PL-files
- reintroduced "lib"
- "test" has been renamed as "t"
- test programs in "t" has been made Test::Harness compatible
- we now have a MANIFEST file
- no more need fro update_version, make-dist, lwp-install
o Renamed bin/get to bin/request. Links to it are now all upper case.
o Proxy support in bin/request (provided by Martijn Koster)
o UserAgent can now load proxy settings from environment
o LWP::Protocol::ftp is under way but not really finished
Tue Jul 18 1995 Gisle Aas <aas@oslonett.no>
o Implemented LWP::Protocol::gopher
o Implemented LWP::Protocol::mailto
o Fixed proxy typo
Mon Jul 17 1995 Gisle Aas <aas@oslonett.no>
o Made release 0.01
Mon Jul 17 1995 Gisle Aas <aas@oslonett.no>
o Don't loose first line of HTTP/0.9 requests
o LWP::Socket use syswrite() for writing
o Added RC_* documentation to LWP::StatusCode
o LWP::Date now use hash to look up month numbers
o Added -f option to "get"
o Untabify
o Added a "TODO" list
o Fixed various typos
Fri Jul 14 1995 Gisle Aas <aas@oslonett.no>
o Reorganized directories. Moved LWP.pm up. Moved file.pm and http.pm
into the LWP::Protocol direcotory. Moved LWP out of the lib directory
and removed lib.
o Implemented the "get" and "mirror" scripts in the "bin" directory.
o Implemented "install-lwp", "update_version" and "make-dist". The library
version number is found in the VERSION file.
o Always adds 1900 to the year in LWP::Date
o In LWP::MIMEheader: Implemented clone(), removeHeader() and scan()
methods. Reimplemented asString. Removed asMIME(). Moved "Good
Practice" into this file, and reimplemented it.
o Moved "header" and "content" into LWP::Message class. This change made
LWP::Request and LWP::Response much simpler. Made clone() method
actually work.
o LWP::Protocol::implementor does not die if it cannot load package.
o Moved UserAgent convenience methods into LWP::Simple. Made LWP::Simple
export LWP::StatusCode symbols and functions.
o Implemented $ua->isProtocolSupported($scheme) method.
o Nicer directory listing in LWP::Protocol::file.pm
o Rely on URI::URL 3.00 behaviour for $url->full_path
o Library version number now in LWP.pm. You should be able to say
"use LWP 1.0;" if you need at least this version.
o Various cleanups and arranging layout as I like it. Use fooBar-style
(as opposed to foo_bar stype) everywhere. This means that as_string()
now is called asString().
o Added more documentation.
Wed Jun 14 1995 Gisle Aas <aas@oslonett.no>
o Removed lot of rendundant & before function calls.
o $this --> $self
o &collector passes content as a reference, don't want to copy so much
o parameterlist to collect callback has been rearranged
o Response::addContent gets a reference to the data
o Added some callback documentation to UserAgent.pm
o Protocol::file now uses the collector
o Introduced LWP::Simple
Sun Jun 11 1995 Martijn Koster <m.koster@nexor.co.uk>
o Added basic authentication support
o Added mirroring of single documents
o Change Protocol construction from whacky URL.pm (constructor returns
subclass) to more normal C++'ish way.
Wed June 7 1995 Martijn Koster <m.koster@nexor.co.uk>
o Minor cleanups from printed code inspection
Wed May 24 1995 Martijn Koster <m.koster@nexor.co.uk>
o Added redirection resolution
o Added optional autoloading of protocols
Tue May 23 1995 Martijn Koster <m.koster@nexor.co.uk>
o Separated socket stuff into separate module
o Added HTTP proxy support
o Made alarm handling optional
o Added a LWP::Message for completeness sake
o Added LWP::MemberMixin to reduce code duplication
o Cosmetic changes to LWP::Date
o Renamed LWP::Error to LWP::StatusCode
o Renamed LWP::MIME to LWP::MIMEtype
o Changed the tests to cope with all this
It's getting there...
Mon May 22 1995 Martijn Koster <m.koster@nexor.co.uk>
o Changed the socket reading to use sysread. This will have to go
into a module of its own.
Thu 18 May 1995 Martijn Koster <m.koster@nexor.co.uk>
o Mentioned on libwww-perl that I had changed the classes around lots.