Henrik Frystyk Nielsen (
Fri, 2 Dec 94 21:16:31 +0100

* * * * *

The CERN Common WWW Library is a general code base that can be used
as a basis for WWW clients and servers. It contains code for accessing
HTTP, FTP, Gopher, News, WAIS, Telnet servers, and the local file system.
Furthermore it provides modules for parsing, managing and presenting
hypertext objects to the user and a wide spectra of generic programming

* * * * *

This pre-release is the first public version of the CERN Library with
support for non-blocking, interruptible multithreaded I/O. It is to be
considered as a beta release as it contains a significant amount of
modifications compared to the last version (2.17). The plan is to keep
up with modifications and steadily release improved versions of the
Library continuously until a desired level of stability and
functionality is reached.

The CERN Line Mode Browser is also released in order to show how the
multithreaded functionality can be enabled. The method used in the
Line Mode Browser is not limited to character-based clients but can
support GUI clients as well.

NOTE: The Library is not compatible with the CERN server 3.0 and it
should NOT be linked with this application. A later release of the
CERN server will support the current Library.

This release is also the first release of source code which is covered
by the new CERN copyright statement. The statement is published in the
file COPYRIGH - truncated to 8 bytes :-( and is a part of the
distribution file. It can also be read in hypertext format from

We encourage everybody to study this statement - questions are welcome!

CERN Common Code Library 3.0pre2 is available as source code from:

Its is known to compile on Sun4, Solaris 2, HP Snake, NeXT, NeXT-386,
Decstation Ultrix, DEC OSF/1, SGI and AIX, but look also at the page
of supported platforms at:

Diffs and old versions are available at

The top-node for documentation on the library is available at and

Programmer's Guide is available at

The documentation has been modified significantly since the last
release. New ideas and comments are welcome!

The address to send email about CERN Library is:

PS: I will be away the next week as I am attending the IETF meeting in
San Jose and will probably not be able to answer any mail.

-- cheers --


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

CERN Library 3.0pre1 Release Notes

New or Changed Features:

* Introduced the function HTLibInit() and HTLibTerminate() which MUST
be called when the application starts up and terminates.

* Introduced the modules HTThread and HTEvent. HTEvent is the
client interface when using multithreaded functionality and HTThread
is the internal socket management

* All __STDC__ defines now concentrated to HTUtils.html where it is
called _STANDARD_CODE_ so that _cplusplus also handles this

* `new' and `template' not used a names anymore (confuses C++)

* Removed from field in HTRequest structure. This is now handled by
the functions HTGetMailAddres and HTSetMailAddress and the flag HTEnableFrom
in the HTTP module.

* Changed HTSetMailAddress so that a call with parameter equals NULL
or "" clears the contents of the mail-address.

* The number of parameters to Streamstack function is now compatible
with the arguments to a stream converter, so that we don't loose any
information while putting up the stream stack.

* HTOutputSource variable is removed. You should use WWW_SOURCE in the
request structure

* HTGuess stream is a a converter compatible stream so that it
actually can be setup as a converter

* The stream methods `abort' and `_free' now returns int instead of
void. On success from these methods `_free' returns 0 and `abort'
return EOF

* Taken HTEscape and HTUnescape and put them into the HTEscape
module. The functionality is the same but now they can be used in
utility programs without linking in the whole Library

Bug Fixes:

* Removed bug in WAIS module which caused a lot of core dumps

* Removed bug in format classification from URL suffix in HTGoper when
the file was plaintext

* `localhost' is now recognized again after canonicalization in HTLoadFile()

* WAIS SEARCH now produces proper HTML

* Max number of lines in WAIS decreased to 200 as 250 (previous) dumps core

* Bug fixed in HTGetHostName if we must use the getdomainname() function.

* Added some support for SCO

* Handling of gopher items of type ERROR (3) changed so no more core
dumps in server

CERN Library 3.0pre2 Release Notes

* Introduced memory cleanups from Eric Sink into HTLibTerminate()

* Now the client can provocate a call to HTEventRequestTerminate even
when the request never enters the eventloop. This is necesary so that
the client can cancel busy icons, spinning globes etc.

* Introduced EVENT_TERM as return code for the HTEventHandler function

* HTEventHandler now has a ** pointer so that the request pointer can
be modified from the client

* Fixed bug in HTSearch and HTLoadRelative where wrong return code was
returned (BOOL instead of int)

* Introduced BlockingIO field in the request structure to override the
the mode registered in the protocol structure. This can be used as an
easy way to make blocking I/O

Have fun!

        Henrik Frystyk Nielsen              H&kon W. Lie      
        + 41 22 767 8265                    + 41 22 767 8583

Frederick Roeber Phill Hallam-Baker + 41 22 767 3755 + 41 22 767 8072

-------- World-Wide Web Project, CERN, CH-1211 Geneve 23, Switzerland --------