20 September 1999.  The SRE-http 1.3g WWW server 

Synopsis:
   SRE-http is a highly configurable, http/1.1 compliant, web server for OS/2.  
   With advanced features such as remote configuration, caching, and SSI; 
   SRE-http is powerful enough for technically proficient administrators, 
   yet simple enough to be maintained by non-technical users. 
   In addition, the Rexx based GoServe API (as augmented by SRE-http's
   numerous extensions) offers significant development advantages when
   creating web aware applications, and when otherwise crafting a
   customized and enhanced web site.

                        ************************

I. Introduction.                        

At it's heart, SRE-http is a "filter" for GoServe. SRE-http is designed to
work with GoServe 2.52 (and above), and will run under OS/2 3.0 (and above). 
It will run under OS/2 2.11, but it uses the Warp version of the 
REXXUTIL library (which contains some routines not in the OS/2 2.1x version). 
In other words:
    If you use GoServe under OS/2 2.11, or with earlier versions
    of GoServe (prior to 2.52),you might have sporadic problems.
 
Notes: 
   * if you are using OS/2 Warp Server; you may need to install
     the latest fix packs
   * If you are using Warp 4.0, you should be using the latest fix packs
     for TCP/IP (INETVER should report 4.02t or above).
   * If you are using Object Rexx (under OS/2 4.0), you will NOT be 
     able to use SRE-http.
   * GoServe is a free IBM EWS Internet Server -- you can get it from 
     http://www2.hursley.ibm.com/goserve.
   * SRE-http comes with the standard freeware dislaimer -- use it 
     at your own risk (see the bottom of this document for a more  
     complete disclaimer).  That said, we want to know when you run
     into problems, and are always willing to help.
   * Questions? Contact Daniel Hellerstein : DANIELH@ECON.AG.GOV
     Or visit the SRE-http home page at http://www.srehttp.org

                        ************************

II. Installation instuctions:

1) Obtain and install the latest version (2.52 or above) of GoServe.
2) Unzip SREV13F.ZIP to an empty, temporary directory...
   (you can use UNZIP, a recent copy of which is on the SRE-http home page)
3) Open an os/2 window
4) CD to this temporary directory
5) Run INSTALL.CMD. 
    i) You will be asked to provide a few directory names.
   ii) You will also be asked for your IP address (it's optional).
  iii) You will be given the opportunity to set a few parameters -- 
       which you can modify later.
   iv) You will be given the opportunity to set up a username with
       SUPERUSER privileges. We recommend that you do this (it's required 
       for remote configuration). Of course, you can always create 
       such a SUPERUSER later.

6)If you are reinstallating SRE-http:

   * INSTALL will ask if you want to archive the (potentially) user-
     configurable files.  We recommend selecting this option. 

   * If INSTALL detects a pre-existing file, it will ask you if
     you want to overwrite it.  For some "configuration" files
     if will ask you twice!

   * Several of the program files (such as COUNTER.RXX)
     contain "advanced" user-configurable parameters. If you had changed
     them, you'll need to change them again (in the new versions 
     you just installed). That is, INSTALL does NOT retain these values;
     it just creates backup files, and then overwrites.
     HINT: SRE-http's EDITSREF.CMD utility makes it easy to change 
           parameters in ADDON\COUNTER.RXX.

   * Occassionally, GoServe/SRE will not properly restart after an
     installation (it seems to have something to do with corrupted
     macrospace). Should this happen, rebooting your machine (and
     then starting GoServe/SRE) will often solve the problem.
           
7) If this is a first time install, you must change your default filter 
   (in GoServe) to be SREFILTR.80
   Alternatively, in many cases the SREPROXY.80 "simple proxy" can be used
   to improve performance.

8)  Start GoServe.  But first:
     *  Are you using GoServe 2.52?  If not, you'll need to download it
        (see notes below).
     *  You must set the Options-Limit-Connection_maintain to some positive
        number (say, 15).
     *  You must have a properly defined TZ variable in your CONFIG.SYS
        file (TZ defines your time zone, relative to Greenwich Mean Time).   
     Advanced Users Note:
        If you are willing to sacrfice full compliance with http/1.1, you
        can force SRE-http to ignore some of these prerequisites by
        setting the CHECK_COMPLIANCE parameter in SREFMON.CMD.


9) Assuming you were able to choose the
   default parameters (in step 5.iii), point your browser at 
       http://your.server.whereever/index.sht

   This SRE-http home page contains a number of useful links
   to documentation, demos, and configuration tools. Of particular
   interest is the users-guide, and the configurator.

   The users guide (GUIDE.HTM) outlines the capabilites of SRE-http, and
   points to further help.  It's a good place to start. In addition,
   the DOCGUIDE.HTM, the frames/javascript enabled "documentation guide",
   is a useful front end to SRE-http's various documentation files.

   The configurator can be accessed via
          http://your.server.whereever/CONFIGUR.HTM
   It has three modes: simple, intermediate, and expert.
   New users will probably be most comfortable with the simple mode.

                        ************************

III. Miscellaneous notes


  *  For the latest version of SRE-http, demos, and addons --
     visit the SRE-http home page at http://www.srehttp.org/

  *  SRE-http's configuration files will be written to the CFGS\ subdirectory of
     the GoServe working directory.

  *  SRE-http ver 1.3g will work with GoServe 2.50. However, several http/1.1
     features require 2.52 -- thus, we highly recommend obtaining GoServe 2.52.

  *  You can get the latest copy of GoServe (currently 2.52) from:
         http://www2.hursley.ibm.com/goserve/
     (or, you can find a copy of it on the SRE-http home page).

  *  If GoServe won't let you in (because it can't find a filter), you can
     add "FILTER SREFILTR.80 " (without the quotes) to the
     GoServe WPS object (the icon's) "parameters" option.

  *  SRE-http will NOT run under Object Rexx.  There
     is a (ever aging) version of ver 1.2g that will run under Object Rexx
     (see the SRE-http home page for details).

  *  WARP 4.0 users: If response time is very slow (more then a few seconds 
     for simple documents) you might need to upgrade your version of 
     TCP/IP (to at least 4.02t).

  *  If your needs are not very complicated, you might find sreLite, 
     a smaller-faster-less_feature_rich version of SRE-http, to be worth
     investigating; look for it at http://www.srehttp.org/server/

  *  If you have relatively simple demands, the simple mode configurator
     may be adequate for all your needs. Conversely, if you want to
     optimize SRE-http's performance, you will probably want to
     use the intermediate, or expert, mode. 

  *  INTRO.DOC contains a 1 page summary of SRE-http's capabilites.

  *  Upgraders from prior versions of SRE-http should read HISTORY.TXT
     .
  *  SREhttp.FAQ contains answers to some frequently asked questions.

  *  The SRE-http "web-accessible manual" is SREhttp.HTM.

  *  For optimization hints, and a complete description of the user
     configurable parameters, see INITFILT.DOC

  *  The various .IN and .CTL files that come with SRE-http contain
     descriptons, and examples, of how to set up these "username,
     URL access control, etc." files.

  *  SRE-http uses "OS/2 macro space" to store frequently
     used routines, and uses queues and semaphores for inter-thread
     communication.  To do this, the REXXLIB  library is used.
     Although you have free rights to use REXXLIB with SRE-http,
     if you intend to use REXXLIB for something other then SRE-http,
     you should obtain the REXXLIB package  from
     http://www.quercus-sys.com/rexxlib.htm.

  *  Several of the functions used by SRE-http are part of RxSock.DLL --
     the Rexx Sockets Support library.  It should be in your LIBPATH
     (it is usually in your \TCPIP\DLL directory).

  *  Several other freely available dynamic link libraries are distributed
     with, and installed by, SRE-http. See the basic copyright at the 
     bottom of this document for details.

                        ************************


IV. Acknowledgements

 > Steve Ryckman and the people at SimsWare for providing great help, good suggestions, 
   bug finds, and for hosting the SRE-http home page!
  
 > Don Meyer, author of the GoHTTP filter, was very gracious
   in allowing me to "build on his work".  In particular,
   much of the source code for HTACCESS file access-controls,
   CGI-BIN script processing,  and image map processing was adapted
   from his code.

 > Juho Risku for more great help, some nice graphics.

 > Derek Sims (author of the IntrFilt filter) for helpful advice
   regarding multi-host servers.

 > Charles Daney for providing the REXXLIB library at a very reasonable
   price.

 > Dave Briccetti for providing the "SMTP using socket calls" code.

 > Ariel L. Szczupak for advice on working with queues and semaphores.

 > Richard Hughes for useful thoughts on discussion group software

 > The people at the INFO-ZIP project, for providing the UNZIPAPI
   dynamic link library.

 > several individuals (mm, dr,  et al) for good suggestions that
   are now realities

 > .... and (of course) Mike Cowlishaw for creating GoServe, and always
   finding time to try and answer.


                        ************************


V. Basic copyright and it's never our fault disclaimer:

  Copyright 1996,1997,1998, 1999 by Daniel Hellerstein. 
  Permission to use this program for any purpose is hereby granted 
  without fee, provided that the author's name not be used in
  advertising or publicity pertaining to distribution of the software 
  without specific written prior permision.
  With some provisos, this includes the right to subset and reuse the code,
  with proper attribution.
  The provisos are  several fold:
   1)  Portions of the code are adapted from other authors' work
       (these are noted where appropriate); you'll need to contact these other
       authors for appropriate permissions.
   2)  SRE-http uses serveral 3rd party dynamic libraries and executables:
       i) Quercus System's REXXLIB procedure library.  The
          license for REXXLIB gives the author the right to distribute REXXLIB
          without charge.  This right may NOT extend to redistributors.
          Please contact Quercus Systems for details.
      ii) Info-Zip's UNZIPAPI.  Although this is freely
          available software, you may wish to contact Info-Zip for details.
     iii) Jeff Glatt's FILEREXX, which is freely available software
          (a 1995 address is 6 Sycamore Drive East, New Hartford, 
           NY 13413, 315-735-5350).
      iv) Jean-loup Gailly <jloup@chorus.fr> OS/2 port of the GZIP
          file compression utility, which is free GNUware (see
          GZIP.TXT for details)
       v) Ralf G. R. Bergs <rabe@pool.informatik.rwth-aachen.de> provided
          the MD5 program (see README.MD5 for the details).


  3)  We, the authors of SRE-http and any potenially affiliated institutions,
      disclaim any and all liability for damages due to the use, misuse, or
      failure of the product or subsets of the product.

  Furthermore you may also charge a reasonable re-distribution fee for
  SRE-http; with the understanding that this does not remove the
  work from the public domain and that the above provisos remain in effect.

    THIS SOFTWARE PACKAGE IS PROVIDED "AS IS" WITHOUT EXPRESS
    OR IMPLIED WARRANTY.
    THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE PACKAGE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
    IN NO  EVENT SHALL THE AUTHOR (Daniel Hellerstein) OR ANY PERSON OR
    INSTITUTION ASSOCIATED WITH THIS PRODUCT BE LIABLE FOR ANY
    SPECIAL,INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
    RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
    OF CONTRACT,NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
    IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE PACKAGE.


   SRE-http was developed on the personal time of Daniel Hellerstein,
   and is not supported, approved, or in any way an official product
   of my employer (USDA/ERS).




