# Release Notes for Libwww

See also the the latest changes that are committed to and available from CVS but not yet in a release. See also the full libwww release history.

## Release 5.2.6, Feb 24, 1998

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:

- John Punin's integration with Integration James Clark's Expat XML parser,
- Jose Kahan's client-side Digest Authentication implementation,

- A tiny new Web browser based with only a strict minimum of HTTP and HTML in only 170K on linux (stripped) into libwww.

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

- Added a method in the HTAccess API for posting forms and returning the response as a HTChunk object
- Added handler for unknown content encodings in the Command Line tool to be a through line (identity decoding) using the best matching mechanism
- Added support for regex handling of proxies so that you can now say something like this: all URIs matching this regex goes to this proxy, all others go to this, etc.
- Better control of how much data is being sent in the . Now you can both get the total number of bytes read and written as well as the number of entity (body) bytes read and written. This uses features provided by the HTNet object
- The default implementation of progress notifications now uses the new HTRequest bytes read/written methods.
- The mime parser in HTMIME.c and HTMIMERq.c now uses the updated control of bytes read/written.
- Added support for version conflict detection in Web Commander (update all of WinCom area)
- The Web Commander - the Win32 GUI PUT sample application has been updated from the ground up - try it out!

### Bug Fixes

- Remove access authentication credentials duplicates when doing the HTSaveFilter on the same resource
- Checks that etags are not the same when setting a new one. This caused first the old (which was also the new) to be deleted and then created again.
- Fixed HTTP POST problem where small post data didn't always get posted. This affects several files including HTMIME.c and HTMIMERq.c
- Fixed HTTP PUT problem when a 100 Continue code came more than 2 secs after the request.
- Added interrupt alert message to HTTP.c
- Added alert message when status is 503 Retry to the information filter in HTFilter.c
- The last modified time is now stored in the anchor object when opening a local file
- Added support for preconditions in the save document calls in HTAccess
- Deleted unused variable in HTBufWrt.c
- Fixed typo in function prototype in HTResponse.html
- Made `WWW_TraceFlag` unsigned integer in HTUtils.html (was signed) and changed order in wwwsys.html so that netinet/in.h now is included before netinet/tcp.h in wwwsys.html. This was a problem on RC6000.
- Put in a few checks for invalid function arguments (NULL etc.) in HTEscape.c and HTParse.c
- Added explicit support for HTTP preconditions (the if-* headers) so that they can now be turned on and off on a pr request basis. This affects HTReqMan.c HTReq.html and HTReqMan.html
- Changed the encoding streamstack builder to support best matching (wildcard matching) capabilities. This means that you now can register a default decoder like this: `HTFormat_addCoding("*", HTIdentityCoding, HTIdentityCoding, 0.3)`, for example where `HTIdentityCoding` is a coder provided by libwww. The quality indicates how much you like it (between 0.0 and 1.0)
- Now also removes the after authentication filter is all proxies are unregistered
- Changed the progress notifications in HTAlert to also include Interrupted! This affects HTCache.c (a little), HTAlert.html (and .h), and HTDialog.c
- Moved the increment of bytes written (used in PUT) from the buffered output steam to the unbuffered output stream which gives a more accurate reading.
- Bad typo bug when deleting before filters in HTNetCall_addBefore which caused deletion problems in the Filter list
- Fixed a problem when PUT'ing to a non-existent host (or invalid portnumber) in the Save Filter. The cleanup is now made more cleanly.
- Moved the Done! progress notification into HTMIME.c instead of in HTReader.c as it no longer has much to do with closing the TCP connection.
- Made sure that local files are closed when using ANSI C file descriptors
- Fixed bug in the conversion from URI to local Windows file in HTWWWToLocal()
- Fixed problem in the template generation in the access authentication module. This can cause the authentication module to not find the credentials already given.
- Fixed strange deletion of semaphore control for non-persistent connections
- A close socket event wasn't registered on Windows. This is now done in HTHost.c.
- On some platforms, it is not possible to refer to function addresses across shared libraries. The result is that the libwww API that uses function addresses don't always work. I have added an opcode version of the HTAlert API to handle this for user messages and progress notifications.

##