W3C libwww

Change History of libwww

This is a list of changes to libwww in reverse chronological order. See also the release notes for the latest release.

Release 5.3.2, Dec 20, 2000

This is a minor release that mainly provides bug fixes and small enhancements that have been commited to CVS since the last release. Vladimir Koslov provided indispensable help for testing and preparing the Win32 release. Special thanks to Wayne Davison, Art Barstow, Peter Stamfest, Zhu Qun-Ying, Jens Meggers, Ken Olum for their contributions.

Release 5.3.1, Aug 4, 2000

This is the proper first 5.3 release. We changed the minor release number as many people had started to refer to the previous release as 5.3.0.

Release 5.3.0pre, Jun 9, 2000

This is the first release done after Henrik's depart from W3C. We're calling it a pre-release, as we're not sure if we prepared it correctly. Special thanks to Henrik Frystik, Fox One, Vladimir Koslov, Rafaelle Sena, and all the other libwww User's Community for their patches and continuous support.

Release 5.2.8, Apr 14, 1999

For this release, special thanks go to the libwww hackers Olga Antropova, Vladimir Kozlov, John Punin Olga Antropova, Jose Kahan, Vladimir Kozlov, John Punin, Bob Racko, and Raffaele Sena for all their hard work and cool new features including:

Also in progress is work on

Release 5.2.6, Feb 24, 1999

This release is the has a lot of bug fixes and new features - primarily as a result of lots of really cool work done by people hacking away on libwww including:

Release 5.2, Nov 1, 1998

This release is the first release after the libwww CVS Repository was made public in May 1998. At the time of the release there were more than 500 checked out versions of the libwww code base and numerous people have contributed to this release in form of bug fixes, extensions, and new features.

New Features

Bug Fixes

Release 5.1m May 21, 1998

New Features

Bug Fixes

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

Release 5.1k March 23, 1998

New Features

Bug Fixes

Release 5.1j March 9, 1998

New Features

Bug Fixes

Release 5.1f January 1998

New Features

Bug Fixes

Release 5.1e January 1998

New Features

Bug Fixes

Release 5.1d December 1997

Bug Fixes

New Features

Release 5.1c September 1997

Release 5.1b April 1997

Bug Fixes

Release 5.1 February 18 1997

New Features and APIs

Bug Fixes

Release 5.0 September 10 1996

This release was originally called 4.1 but because we now have a complete HTTP/1.1 client side implemenation including a persistent cache manager and full support for uploading documents, we decided to call it version 5.0 instead.

The focus for version 5.0 of the W3C Sample Code Library is to provide a set of higher level, application specific APIs for accessing the Web. These APIs - called profiles - will help the application, a Web client for example, to more easily use the full potential of the application independent Library core. Also, the Library contains a significantly better interface for easy access to the Web through a large set of functions specialized to perform certain Web operations like PUT, POST, DELETE, GET and HEAD.

This release contains a TCL add-on to the Robot example application and a Deja GNU Test suite for the Library. Also, it support HTTP/1.1 including persistent connections, two-way PUT, and the host header. There is also a sample PEP implementation, that although incomplete can give an idea of where we're headed using PEP.

Bug Fixes

Release 4.1b5 August 24 1996

Release 4.1b5 is mainly a bug fix release after intensive testing against the Common Lisp Server which also is a HTTP/1.1 application. However, it also has a few new features worth noting.

New Features

Bug Fixes

Release 4.1b4 August 20 1996

HTTP version 1.1 allows for effective use of persistent connections. However, in orderto make this work, a client application must be capable of recovering from a closed connection between sent requests. The beta 4 version of libwww supports automatic connection recovery and provides the functionality for performing pipelining of requests. That is, there can be multiple outstanding requests on the same connection In order to do this, the release contains  modifications to the Channel Object, the Host object and the Net object.

New Features

Bug Fixes

Release 4.1b3 July 20 1996

The file access module now does content negotiation by default. This means that all local file access (including from client applications) do content negotiation when accessing local files. Content negotiation can be turned off by setting a flag in the request object.

A main difference in beta 3 is that we now have a set of "application profiles" that helps the application to initialize libwww core to work as a typical client, robot or other type of application. This should replace the huge initialization procedure seen in previous versions. This is in fact a result of the core being so flexible - it is inly a framework for accessing the Web. The application must initialize all the functionality at run-time. You can see the various profile functions in the WWWInit interface.

The second main difference is that the BEFORE and AFTER filters have been more explicit than before. The HTLoadStart and HTLoadTerminate functions actually covered many typical BEFORE and AFTER filter functions like looking for proxies, searching the cache, looking for rule file matching, and logging etc.

However, two functions were not covered by this: redirection and authentication. That is why the application in previous version had to supply this functionality. However, in beta 3 we have split up the HTLoadStart and HTLoadTerminte functions into a set of filters which each perform only a single function, for example looking for proxies. The split has two functions: first it shows how you can use filtes to add new functionality to the Library and second it can be used by more types of applications. A result of the new filters is that we also have default redirection and authentication filters so you don't have to provide this anymore.

The filters are set up as part of the profiles so you will normally not have to register them individually.

New features and Changes

Bug Fixes

Release 4.1b1 May 20 1996

New Features

Release 4.0D February 12 1996

This upgrade release fixes some bugs and it adds functionality for posting data from memory. This is the full list of changes:

Release 4.0C January 23 1996

Release 4.0A December 11 1995

Release 4.0 December 1 1995

Alpha Release 7, November 28 1995

Alpha Release 6, November 20 1995

Alpha Release 5, November 8 1995

The Library has now undergone a major restructuring in order to define the APIs between the various parts and to make it more modular. The new architecture is described in the Architecture document and includes a new Net manager that handles a request queue, a DNS manager that handles persistent connections and a well defined Request manager where the HTRequest object is an opaque object.

Core Modules

Protocol Modules

Stream Modules

Application Modules

Generic Utilities

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 by 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.

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.

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 ...

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

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).
New function to make it easier to put out an HTML <IMG> tag.
Added one more parameter to tell whether it is a multihomed host or not. (This is used in the host cache).
Should no more be used directly but is called from HTErrorAdd so that the message goes all the way back to the user
This typedef is now obsolete and will be removed in future releases
Added new parameter to HTLoad: BOOL keep_error_stack. If YES then the error_stack is not cleared. This is used in redirection etc.
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


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.


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

José Kahan,
@(#) $Id: History.html,v 1.42 2017/01/05 18:39:21 kahan Exp $