W3C httpd WWWBug

Known Bugs and Patches

The list of known bugs are in reverse chronological order. Please report bugs or bug-fixes to httpd@w3.org noting the version of the daemon and what caused the bug to appear.

The provided patches are relative to the WWW directory in the distribution tree. In order to apply a patch, do the following in the WWW directory:

  1. Download the patch, for example httpd-1.fix
  2. Invoke the patch command by typing
    	patch < httpd-1.fix
    
  3. Rebuild the code by typing
    	make clobber
    	./BUILD daemon
    

You should only apply patches under the section with same version number as your current version. You can see the current version of this software by looking into the version file.


3.0 A

Y2K patch
patch from AT&T, cover message of 4 Aug 1999
Proxy SSL Tunneling Patch NEW
Ari Luotonen has provided this SSL tunneling patch for W3C httpd which adds support for the CONNECT method used by SSL enhanced clients to open a secure tunnel through the proxy.

3.0

Non default ports for HTTP gets chopped off in HTSimplify - included in 3.0A
This patch solves this problem by checking that only HTTP request with a port indication of port 80 can get canonicalized.
Date extensions on log files are GMT and can not be disabled - included in 3.0A
This patch makes the date/time extension on logfiles using the LogTime directive. It furthermore disables the default log file date extension. Now you must explicitly add the LogFileDateExt in order to get it.
Problems with OSF/1 Version 3.0 and Scripts
There are some strange problems with the server when running on a OSF/1 3.0 platform, that doesn't exist on other platforms. I now have a patch for the file HTScript.c in the Daemon code sent by Bjorn S. Nilsson, NBI, Copenhagen <NILSSON@nbivax.nbi.dk> which fixes the problem. Other solutions might work as well!
Core Dumps - included in 3.0A
The current version has a trivial bug which causes a lot of core dumps. You can prevent this by applying the following patch and then rebuild the Library and link it with server.
Problem with NEWS URIs converted to lowercase - included in 3.0A
I got the spec the wrong way round so that message IDs are converted to lowercase. You can fix this by applying the following patch.
Compiling for SCO platform (and BSD/386)
When compiling for the SCO platform you need to apply these patches in order to make it work (at least with the native C compiler):

At least the first patch does also apply for the BSD/386 platform.

Problems with weird URIs through Proxy - included in 3.0A
If you have problems with the proxy server when trying to pass long URIs then the problem is that I added the functionality for the proxy to canonicalize the URIs so that
	http://WwW = http://Www.W3.oRg = http://www.w3.org:80 etc.

(the domain name only works inside W3.ORG of course). The reason for this is that the document cache will contain less duplicate entries and it is easier to make pass rules in the configuration file. I still think this is a good idea but I will change the current behavior so that the next version of the proxy is completely transparent to the client but the functionality above is kept. You can disable the canonicalization in the current version by adding this patch.

Malloc problem on AIX machines - included in 3.0A
If you get the following error message on a AIX platform:
	../../Daemon/Implementation/HTRequest.c buf_put_char: out of memory.
	Program aborted.

Then you need this patch. Add it to the

	WWW/Daemon/Implementation/HTRequest.c

file and rebuild the server.

Compilation on Apple A/UX
You need to add a small change (it slipped out from the patch) in WWW/Daemon/Implementation/HTSUtils.c line 22. Modify the line
	#if defined(Mips) || (defined(VMS) && !defined(DECC))

to

	#if defined(Mips) || defined(_AUX) || (defined(VMS) && !defined(DECC))

And it will work!

Mosaic, Proxy and HTTP 0.9 servers
The substantial amount of data in a Mosaic header (more than 1K) often confuses a HTTP 0.9 server which doesn't expect additional header information at all. This might cause that the remote HTTP 0.9 server closes the connection and only a part of the requested document is returned to the client through the Proxy. When Mosaic connects directly to a 0.9 server it always tries twice, but this doesn't work through the Proxy as the Proxy has no mean of telling the Mosaic client that the connection is closed prematurely, the result is a document which is chopped off.
Redirection Using the Proxy
The proxy doesn't count the number of redirections send to it as it is forking on every request. Hence if the proxy client repeatedly asks for the same document (infinite redirection) then the proxy just keeps on handling the request. That is - it is for the client to prevent a redirection loop.
Closing connection on 401 Authentication status code from server
The client is responsible for closing the connection if it receives a 401 status code from the server. If it doesn't then the connection is timed out at some point at the server and a delayed request with new/modified authentication headers will be rejected.


3.0pre6

POST method gets truncated
Another problem with the W3C Reference Library version 2.16beta is that it truncates the POST header sent to the server when used through a proxy server. The solution is the same as below, that is getting a new version of the library (2.16pre2 or later).
Proxies in cascade
Doesn't work in the 3.0pre6 version due to an error in the simplification function in the W3C Reference Library. The fix is to get the Library version 2.16pre2 or never from info server and then recompile the library and relink to the Daemon. If you are using version 2.16pre2 then you must do the following substitution in the Daemon Code only in order to make it compile:
        HTGetHostName   ->   HTGetHostBySock

        HTHostName      ->   HTGetHostName

The parameters are otherwise the same. Later versions of the library might not compile without further changes in the Daemon.

Note: Make sure that you recompile the whole library by using make clobber in the WWW directory.


3.0pre5

Inet Daemon
At least SunOS 4.1.* and NeXT inetd doesn't allow more than 40 requests per minute from the same client. There is a fix for at least SunOS inetd (100178-08), or you can run httpd standalone (preferably with the -fork command line option).
Solaris Syslog
Gives "accept: SIOCGPGRP failed errno 2" entries in Solaris syslog (Solaris bug?).


3.0pre4

IdentityCheck
Doesn't work when running from inetd - fixed in 3.0pre5.


3.0pre3

Direct WAIS
Support has been broken since version 2.14; it is fixed again in version 3.0pre4 (beta-test release).


Dan Connolly, httpd@w3.org,
created June 1995 by frystyk
last revised $Date: 1999/09/28 18:15:01 $ by $Author: connolly $