Library 5.1 Release Notes
If you are reading the text version of this document then you can find a
HTML version in
Library/User/ReleaseNotes.html
The main features in this release are:
-
Full HTTP/1.1 sample implementation
-
Advanced use of HTTP/1.1 Pipelining and persistent connections
-
Persistent cache manager
The focus for version 5.1 was to implement a high-performance HTTP/1.1 client
used as a testbed for the
"Network Performance
Effects of HTTP/1.1, CSS1, and PNG" paper. Note that this code is sample
code so please take it as that and nothing more!
Check out
the latest WWW APIs and a complete
list of public functions
Release 5.1m (to be released)
These are the things that are upcoming in the next release
New Features
- Made sure that we write more often as we check for expired timers in HTWriter.c
- Added a "repetitive" flag to timers so that they can be created to say call me every 30ms over and over again
-
Added support for building libwww as a shared library on Unix (it is already
using DLLs on Windows). If you have any problems with shared libraries on
your platform then run configure with the
--disable-shared
flag and you will only get the static version.
If you are using libwww as a shared library but do not use the
libwww HTML parser then you MUST include
this dummy implementation of the
HText interface somewhere in your code. The
reason for this is that the HText interface may be called (it depends a bit
on how your platform supports shared libraries) but an implementation isn't
provided.
-
Added support for MySQL access in
this simple SQL interface which takes care
of most os the common problems encountered when talking to an SQL server.
Currently I use this for handling logging
in the webbot but
many other features like persistent caching, preferences, etc. can use the
SQL module as well. You can also see some
cool examples of how to use the robot's
logs when querying MySQL through
www-sql.
-
Changed the name of "config.h" to "wwwconf.h" as the
first
name caused conflicts with other packages
-
Changed the name of "sysdep.h" to "wwwsys.h" for the same
reason
Bug Fixes
-
Fixed a bug in the generation of
relative URIs which caused the creation of incorrecte relative
URIs. Libwww uses relative URIs in the HTTP referer field and
other places to save (often significant) amount of bandwidth.
-
Decreased mdefault max number of outstanding (pipelined) requests
from 100 to 50
- Does now check whether we get a broken pipe
when writing to the network from expired timers. This was a bug
that it didn't.
-
Applied the following patches
-
Fixed a problem in the HTWWWStr.c that caused a Y2K
bug if strftime isn't available on the system on where libwww
is running
Release 5.1l March 25, 1998
This is a small add-on to 5.1k that was released two days ago. It has a few
fixes that was discovered while working with the latest
Arena browser.
Bug Fixes
-
Minor stuff that made PUT work nicer from a user perspective (when to ask
what questions, etc)
-
Fixed a few things in the direct WAIS access module
Release 5.1k March 23, 1998
New Features
-
Added a simple "single user lock" on the persistent cache as it gets confused
if multiple users are using it.
-
On Unic, the header files are now installed when running "make
install". The default location is
"/usr/local/include/w3c-libwww".
-
On Unix, aset of icons that can be used when browsing local file directories
are also installed - the default location is
"/usr/local/share/w3c-libwww"
Bug Fixes
-
These are the patches that I have recieved for
the current release. They will be applied to this upcoming release.
-
Fixed a few bugs that make
Arena run on top of
the latest version
Release 5.1j March 9, 1998
New Features
-
Made the distinction between Transfer-Encoding and Content-Transfer-Encoding
clear - they were somewhat mixed up before. Libwww also now supports multiple
transfer-codings as well as multiple content-codings as required by
HTTP/1.1.
-
Changed the Stream Stack to not call the
SaveLocally
stream any more but instead return an ErrorStream.
The reason for this is that there are several places in the stram stack building
algorithm where we might want to save the file to local file: when there
is a content type that we don't understand, a content-encoding, or a
transfer-encoding (or a combiunation of these) that we don't understand.
Now we can make sure that the SaveLocally
stream is only called
once
-
Added support for "identity" transfer-coding and content-coding
-
Added support for Allow header when doing PUT and POST
Bug Fixes
-
Fixed a problem handling wrong HTTP responses from NCSA HTTPD dereived servers
(they don't include a version number when responding to an HTTP/1.1 request)
-
PUT now works much more reliable, and it also works on Windows (at least
NT, I haven't tested it on 95).
-
Fixed a refresh problem in the Line Mode Browser
which caused it to sometimes render the screen twice.
Release 5.1f January 1998
New Features
Bug Fixes
-
Fixed some problems in the HTRelative function in
HTParse.
Release 5.1e January 1998
New Features
Bug Fixes
-
Fixed bug in ouputstream that caused buffer
to be overwritten in some cases when blocked on write
Release 5.1d December 1997
Bug Fixes
New Features
-
Better logging facilities with support for multiple
log objects including referer logging, Common Log File format logging
and general logging filters.
Release 5.1c September 1997
Release 5.1b April 1997
Bug Fixes
-
Fixed a problem in HTRules.c as described
in
this
bug report
-
Fixed coredump problem in HTGetTmpFileName()
as described in
this
bug report. This affects also the
HTCache module which relies on temporary
file names
-
Made the persistent cache more robust which
in some cases will save a segmentation fault
-
Fixed problem in wwwsys.h as reported in
this
bug report
-
Fixed problem where a request was not flushed if using blocking sockets as
reported by
this
bug report.
-
A limitation in the current persistent cache is that it only works in
non-preemptive mode. Hence if using blocking sockets then the cache should
be disabled. This is now the default behavior in the
libwww profiles.
-
Bug fixed that caused the
maxsock
variable used in
select()
not to be decreased when deleting a socket in the default
event manager
-
Changed the connection management so that it complies with the
Connection
Management draft by Jim Gettys and Alan Freier. The HTTP client now closes
idle connections after 60 seconds which is a heuristic period chosen by Jeff
Mogul in the paper
"The
Case for Persistent-Connection HTTP". The number can be dynamically changed
using the
HTHost_setPersistTimeout()
and the
HTHost_persistTimeout()
methods. This could be made more advanced
so that we take into account any information given in the
"Keep-Alive" header but isn't for now.
-
Fixed a problem when a HTTP/1.1 server sent a response including a
Connection: close header using the close of the TCP connection as
a delimiter. This problem was pointed out in
this
bug report
-
Fixed security hole handling HTTP 305 proxy redirection
codes. The proxy location returned in the responses was enabled as a
permanent proxy without any notification. The operation now requires explicit
acknowledgement from the user
-
Fixed potential (but small) security whole handling
parsing a new rules file. This operation
now requires explicit acknowledgement from the user.
Release 5.1 February 18 1997
New Features and APIs
-
Added support pipelining
-
Support for zlib based decompression in content encoding
Bug Fixes
Henrik Frystyk Nielsen,
libwww@w3.org,
@(#) $Id: ReleaseNotes.html,v 1.67 1998/05/19 21:57:55 frystyk Exp $