patch for NCSA httpd-1.1 to allow http-gatewaying

Markus Stumpf <stumpf@informatik.tu-muenchen.de>
Subject: patch for NCSA httpd-1.1 to allow http-gatewaying
From: Markus Stumpf <stumpf@informatik.tu-muenchen.de>
To: www-talk@www0.cern.ch
Date: 	Thu, 27 Jan 1994 02:54:54 +0100
X-Mailer: ELM [version 2.4 PL6]
Content-Type: text
Content-Length: 3159      
Message-id: <94Jan27.025507mesz.311353@hprbg5.informatik.tu-muenchen.de>
Hello!

I have put the patch on
    ftp://ftp.informatik.tu-muenchen.de/tmp/httpd-1.1gate.tar.gz
In this file is also the below appended README.gate.

I hope everything is ok so far. It's about 3:00 am local time and
I am not sure I didn't miss something. :)

I have tested it with Mosaic for X11 2.0 and daemons running on
HP 9000/715 HP/UX 9.01 but I don't think I have some machine dependend
code in it.

Good night :)

	\Maex

---------8<----------8<----------8<---------8<---------8<-------------

This is the README for the gateway code to NCSA httpd-1.1

This gateway currently ONLY gates http protocol requests!!!
It cannot act as a "standard" httpd AND a gateway httpd.
I haven't found a way to distinguish between a GET from
a client in, and one from a client not in gateway
mode. If you know of one PLEEEEEAAAAASE tell me :)
(This makes it also rather impossible to decide whether the
gate request is for a gopher: http: or ... URL, as the
protocoll information is also stripped. Anyone knows
why this was done? Older versions of libwww sent a protocol:/
with the request).

However: if a gateway-server and a "standard" server are
running on the same machine the gateway-server would
connect the "standard" server. This is really overhead.
I have added code that checks whether the gateway request
is for the same machine the gateway-server runs on.
If so, I take a look at the port numbers. Maybe another
specialised httpd is running on the same machine.
Per default a server port of 80 (SameServerPort keyword,
see below) is assumed for the "standard" httpd.
If both server name and port number match, the gate-httpd
acts like a "standard" httpd and delivers the "local"
document itself.

There are two new keywords for conf/httpd.conf:
o  SameServerPort (default 80)
   To set the port for the "standard" httpd to something other
   than 80. (see above)

o  GateTransferLog (default logs/gate_access_log)
   Like TransferLog. The log of the gateway-server is slightly
   different. It contains one additional field after the [time] field
   indicating the size (in bytes) of the data that has been
   gated.

There are 2 more files in the tar-archive:
o patch
    contains a context diff to the httpd-1.1 source code
o src/httpd_gate.c
    an additional module containing all the code needed for
    gatewaying the http protocol.

The gateway code is enabled with a -DGATE_HTML compile switch.
The code still has some unnecessary comments in it for
debugging purpose and is lacking a few need comments for
documention.

To have a client use the gateway-server do e.g.
    setenv WWW_http_GATEWAY //gateway_host:gate_httpd_port

Please send bugs/comments to the address below.

P.S. I have also modified SERVER_VERSION and SERVER_SUPPORT in hope
     that the ncsa folx don't get blamed for errors I possibly made.

Have fun

	\Maex

---------8<----------8<----------8<---------8<---------8<-------------
-- 
______________________________________________________________________________
 Markus Stumpf                        Markus.Stumpf@Informatik.TU-Muenchen.DE 
                                http://www.informatik.tu-muenchen.de/~stumpf/