W3C Lib

Change History of libwww

This is a list of changes to the W3C Reference Library in reverse chronological order.

Library 3.1, November 14 1995

Official release

Library 3.1pre3 Release Notes, November 13

This is a last test of the 3.1 release. The official 3.1 release will follow in a few days. The purpose of this third pre-release is simply to avoid any obvious problems while we still have time. Very little will change in the final release! The big difference is that Windows NT is fully supported!

New Features and Interfaces

Bug Fixes

Library 3.1 Prerelease 2, November 1 1995

The code word for the 3.1 release is support for remote collaborate work where people can use HTTP and the Web as a remote authoring environment. The reason for the slight delay is that this release has a new "Post Web" model for implementing PUT and POST, the documentation has been reorganized and rewritten, and some other important features have been incorporated. The Post Web model is described in the new documentation, see the reference below.

In addition to the new set of features and functionality this release also is the first example of source code distributed under the W3C conditions. This means that the code is available to consortium members only within a month from the release date.

A lot of the work put into this release has been to update the API of the Library. This is mainly described in the new "User Guide", so please do read this and remember that comments are welcome!

New Features and Interfaces

Bug Fixes

Library 3.1 Prerelease 1, May 20 1995

A lot of the work put into this release has been to update the API of the Library. This is mainly described in the new User Guide, so please do read this and remember that comments are welcome!

New Features and Interfaces

Bug Fixes


NOTE CERN terminated its direct engagement in the World-Wide Web with the release of Library version 3.0. The code is now developed and maintained at W3C.

Library 3.0, Mar 21 1995

Many of the modifications and new features are mentioned under the pre-releases.

Library 3.0 Prerelease 3, Mar 10 1995

New or Changed Features

Bug Fixes

Library 3.0 Prerelease 2, Dec 2 1994

Library 3.0 Prerelease 1, Nov 26 1994

New and Changed Features

Bug Fixes


2.17 Release on November 25 1994

New and Changed Features

Bug Fixes


2.16 Prerelease 2, November 1994

WAIS Client

The WAIS client has been improved and some bugs have been fixed:

HTTCP Module

Access Authorisation


2.16 Prerelease 1, April 1994

New Features and Changed Interfaces

HTTP Client

HTTP module contains the code for the HTTP client. The module is now reorganized and made more modular.
Automatic Redirection
Now supported by the HTTP Module. The name of the new URL is parsed to the client via the error_stack as a ERR_INFO message, see HTError module. The maximum number of redirections is set by the variable HTMaxRedirections.
Referer Field in HTTP request
Clients are provided the possibility of sending a Referer Field in a HTTP Request. This is done by filling out the HTRequest->parentAnchor field.
From field in HTTP Request
Clients can now send the full email address of the current user in the HTTP From field. The feature is turned off by default as it might get a bit tricky through a Proxy.
204 Response
Support of return code `204 No Response'

FTP Client

HTFTP module contains the code for the FTP client. The FTP client has changed a lot in this release. It is now a complete state machine where the actual action executed is a function of the current state.

Gopher Client

The Gopher has been revised and improved error handling has been implemented.
Information Messages
Some Gopher servers send back information messages in a line containing "error.host". This information is treated like login information from FTP servers so that it is represented as a message before or after the actual listing.
Iconized Listings
Listings now contain icons in the same way as the other listings.
CSO Name Server
The CSO Name Server client outputs in HTML and not only <PRE> as before.
Content Type Recognition
The Gopher module uses it's own content-type recognition inherited from HTTP when handling gopher text and gopher binary files. This means, that e.g. PostScript files get handled correctly.

Local File Access

The new version of HTFile module is a lot smaller as all Directory listing stuff has moved to HTDirBrw module. New error handling has been implemented.

Passive and Active Connection Establishment

Calls to connect() and accept() now go through the functions HTDoConnect() and HTDoAccept() respectively.

Cache of Host Names and Addresses

HTInetParse() that is called from within HTDoConnect now has an internal cache of the names and (possible multiple) IP-addresses of visited hosts. This minimizes the access to the file /etc/hosts and the Domain Name Server, even though aliases are not recognized in the cache.

The default cache size is 500 entries and a host stays as long as a connect() succeeds. That is, if connection is refused for some reason, the host is taken out of the cache.

The time to make a connection to a multihomed host is measured every time and a mean access time is calculated so that HTDoConnect always takes the fastest IP-address, see Future plans.

Improved Functionality of DNS requests

The Library now provides functionality for obtaining the full mail address of the user, full domain name of the host and also the possibility for setting both values. This means that the user can use his official email address, e.g. in the HTTP request.

Long Directory Listings

Long directory listings for HTTP, FTP and files on the local file system supported. For the moment only a part of the functionality, e.g, sorting, which columns to show etc. is exploited, see Future Plans.

Icon Management

Icons in directory listings are bound to MIME content-types and encoding. They can be found in the HTIcons module. The default set of icons is set up using HTStdIconInit() and new icons can be added dynamicly using HTAddIcon().

File Descriptions in Directory Listings

File descriptions are supported for long HTTP directory listings. The default thing is to peek the title of the HTML files.

Error and Information Message Management

A new error handling module is introduced in HTError. It uses the error_stack entry in the HTRequest object. It handles nested error messages so that we can give a reason for the error, e.g.
    Error in ...
        This error occurred because ...
            This is caused by ...
                etc.
It also makes it possible for the Library to pass information back to the client so that the the Library doesn't act like a `black hole'. An example is HTTP redirection with status code `Moved 301'. Now the new URL is parsed back to the client via the error_stack so that the client can update the reference when possible.

The function that generates and outputs the error messages to the user is put into HTErrorMsg Module so that it can be overwritten by a smart client or server.

Guessing the Content Type of a Stream

The HTGuess module reads a part a stream and determines the content type with the highest probability from a statistical analysis.

Minor Stuff

tmpnam()
Because of problems on NeXT platforms the tmpnam() function is now replaced by HTFWriter_filename() in HTFWriter.c. The function has two modes: Give back a hash name or the last part of the URL (which normally is more readable).
HTMLPutImg()
New function to make it easier to put out an HTML <IMG> tag.
HTParseInet()
Added one more parameter to tell whether it is a multihomed host or not. (This is used in the host cache).
HTInetStatus()
Should no more be used directly but is called from HTErrorAdd so that the message goes all the way back to the user
HTError
This typedef is now obsolete and will be removed in future releases
HTLoad()
Added new parameter to HTLoad: BOOL keep_error_stack. If YES then the error_stack is not cleared. This is used in redirection etc.
HTLoadError()
Because of the new HTError module, this function in HTML.c is not needed anymore.

Bug Fixes

This is a list of fixed bugs from earlier versions.

27 March 94 2.16beta VMS version


25 March 94 - 2.15

General Upgrade

International

Bug Fixes


15 December 2.14vms


17 November 2.14


4 Nov 93 Version 2.13


11 Oct 93 Version 2.12


8 Sept 93 Version 2.11


Version 2.10 Not released due to WWWWW


30 November 1993, version 2.09a


23 November 1993, version 2.09

At last this stupid library is aware of content-transfer-encoding. When defining file suffixes you must define not only the content-type (eg application/postscript) but also the encoding (eg binary, or 7bit). The first effect of this is to get the proper mode selected for FTP transfers. This means you can do a

	www -source ftp:/xx.yy.edu/pub/junk/foo.tar.Z > junk.tar.Z

and it will work as expected.

On the client side, you can define the presentation method for any given MIME-style 'content type". This is done in the rule file too.


2.08


15 November 93, version 2.07


7 November 93, 2.06


May 1993 version 2.05a


22 April 1993 version 2.04


20 April 1993 version 2.03c:


19 April 1993 version 2.03b


17 Mar 93 Version 2.02-beta


15 Mar 93 Version 2.0 alpha:

Incompatible library release has cleaned up interfaces. Developers read the .h files! Version 2 libraries must be compiled with version 2 products and vice-versa. Version 2 clients will access (most) version 1 servers OK, version 2 servers will respond correctly to (all) version 1 clients.

6 January 1993, Version1.1a


11 December 1992, Version 1.1


December 1992, Version 1.0c


November 1992 Version1.0b


November 1992 version 1.0


libwww@w3.org, December 1995