NNTPRelay 1.1Beta2 For Windows NT

****************
* Introduction *
****************

NNTPRelay is a usenet news propagator.  It is designed to support fast article transfers between 
peers.  It does not support reading from clients.  Any feedback on the program, docs, etc should 
be mailed to news@maxwell.syr.edu.


************************************
* System Installation Requirements *
************************************

NNTPRelay runs on x86 Windows NT version 4.0 workstation or server (SP3 strongly recommended). It is 
recommended to have a minimum of 32MB of memory for operation.  More memory is desirable for larger 
sites (7 or more peers).  Recommended disk space is 1-2GB for history and article storage.  Although 
not required, for better performance we recommend that you use a stripe set without parity for more 
than 20 peers, or for high article transfer rates.

You should be aware that Microsoft's NT license may require that you run this product on NT Server.  
Please review your license agreement to ensure compliance.

*************************
* Setting up NNTPRelay  *
*************************

1.  Unpack NNTPRelay 

2.  Read through and edit the config file.  Create directories and allocate space accordingly.
	
3.  Edit acclist.txt to allow incoming feeds.

4.  Read through and Edit distributions.txt to setup outgoing feeds.

5.  Run nntprelay -install in a command window. (DOS Shell)

6.  Run the registry editor (regedt32.exe)
    goto HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NNTPRelay
    add a key called "Parameters" (edit/add key)
    add a REG_SZ value called called "ConfigFile" (edit/add value) 
    This should be the path to the config.txt file, for example:
    f:/news/config.txt

(Sorry for the rawness of this, it should be more friendly when we do the
actual release.)

7.  Startup: Go to Control Panel->Services->Select NNTPRelay->Click Start

*Note*  The first time you start NNTPRelay the databases will be created-this may
take a few minutes.

Shutting down: Go to Control Panel->Services->Select NNTPRelay->Click Stop

**********************************************
* Upgrading from previous NNTPRelay versions *
**********************************************

This upgrade replaces the current database model.  The current history files 
(history.idx, history.dat are retained for feeding purposes only.  Thus they need to 
be reduced in size.  If you wish to keep one day backlogs in the database you would 
make it roughly 40-60MB.  The "seen" database is the new history database, with the 
config.txt you may now configure how many entries to hold.  However since the new 
database structure is different you will lose the old history.

Config.txt entries to be reduced: (See example in config.txt)
HistoryDataSize,HistoryTableSize


To upgrade your current installation of NNTPRelay:

1. Copy current setup (configs/history) into archive directory (for safe keeping).  

2. Unzip into a temporary directory.

3. Look into the provided config.txt and add "seen" database entries into your config.txt. 
Reduce HistoryDataSize,HistoryTableSize in current config.txt. 

4. Make the SiteConfigPath entry in config.txt.  If you do not wish to use the new configuration
model put the follow entry in the config.txt.  If you do wish to use the new config model 
follow the instructions further down in this readme.
  
   SiteConfigPath=f:/news/config/bogus/path 

5. Move new nntprelay.exe,relay.tcl,websrv.tcl,init.tcl,cw3215.dll,tcl80.dll 
(making sure not to overwrite acclist.txt,distributions.txt,users.txt, or config.txt) into
the NNTPRelay directory.

6. Delete current history files. (history.idx,history.dat)  Make sure that you have reduced 
their size in config.txt.

7. Start NNTPRelay

  Note for step 3 + 4, you will have to shutdown nntprelay.

******************************************
* Administration port persistent changes *
******************************************
To keep persistent backlogs and to be able to make persistent changes on port 2000:

1. Add the following line to your config.txt (using the correct path to your NNTPRelay directory:
   SiteConfigPath=c:/news/config 

2. Create the corresponding directory. 

------------
-IMPORTANT!!-
-------------
When you switch over to this configuration model the files acclist.txt and distributions.txt will 
be converted on the next startup, after that they will be no longer be referenced by NNTPRelay.  
The information is now stored in individual files in the SiteConfigPath.

When you wish to make site changes you must use port 2000 using the command line interface.  
See http://nntprelay.maxwell.syr.edu/commands.html for further information on the admin port.
 
Keep in mind that NNTPRelay 1.1b2 will run using the old configuration files (acclist.txt,
distributions.txt) but you _must_ set SiteConfigPath to a bogus path entry.  Due to a bug
in this release you must put a bogus entry for SiteConfigPath or it will put the new config
files in the root of the config drive.

***************************
* Things to keep in mind  *
***************************

-When installing NNTPRelay you must create the directories that are configured in config.txt.

-Be careful when editing the config files.  Invalid entries are ignored without warning.
	
-NNTPRelay does not use an active file and does no incoming group checking.  This means 
you should work with your peers to send only groups you want.  Control for what is sent out 
is controlled in distributions.txt.

-You must stop and start the server to re-read the config files.  Not true of site configuration files
when using the new site administration model.

*****************
*What's Included*
*****************

nntprelay.exe		The executable for NNTPRelay
config.txt		Config file NNTPRelay
acclist.txt		Config file for allowing incoming feeds
distributions.txt	Config file for setup of outgoing feeds
init.tcl		Operational TCL Script
relay.tcl
websrv.tcl		Web Server built into NNTPRelay for monitoring and configuration (next beta). 
getstats.tcl		A TCL script that will query the server and return in HTML a set of incoming 
			and outgoing stats. (TCL 7.5 or later and access for the stats gathering host
                        in acclist.txt required)

***********
* History *
***********

************************************
* New Features in 1.1Beta2         *
************************************

 * new history database model
 * persistent backlogs
 * a new config system that makes the telnet config changes persistent
 * Web interface for configuration and monitoring (though it will be an 'early experience' release with
   monitoring only :)
 * NUL Character Bug fix.
 * The ability to do a cancel message only feed.

************************************
* New Features in 1.1Beta1         *
************************************

 * A telnet accessible console for online configuration 
   see http://nntprelay.maxwell.syr.edu/commands.htm for docs
   (changes are not yet persistent, though)
 * New precommit code 
 * Some bug fixes 
 * Improved Stability
 * Ability to control incoming streaming on a per-host basis





---------------------------------------------------------------------------------------------------------------
Copyright 1997 Christopher M. Sedore 

Copyright 1997 Eric S. Sedore

All Rights Reserved.

This software may be distributed with its documentation in

an unmodified form as a package-you may not distribute the individual

files.  You may not sell this software or charge for distribution.

The accompanying software may not be modified, disassembled,

or reverse engineered. 


IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY

FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES

ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY

DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE

POSSIBILITY OF SUCH DAMAGE.

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE

IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE

NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR

MODIFICATIONS.

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


For a piece borrowed from INN (the message id hashing function):

This product contains software developed by Rich Salz.

Here is the INN copyright:

    Copyright 1991 Rich Salz.
    All rights reserved.
    $Revision: 1.4 $

    Redistribution and use in any form are permitted provided that the
    following restrictions are are met:
        1.  Source distributions must retain this entire copyright notice
            and comment.
        2.  Binary distributions must include the acknowledgement ``This
            product includes software developed by Rich Salz'' in the
            documentation or other materials provided with the
            distribution.  This must not be represented as an endorsement
            or promotion without specific prior written permission.
        3.  The origin of this software must not be misrepresented, either
            by explicit claim or by omission.  Credits must appear in the
            source and documentation.
        4.  Altered versions must be plainly marked as such in the source
            and documentation and must not be misrepresented as being the
            original software.
    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
    WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.                      

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

For TCL8.0 from Sun:

This software is copyrighted by the Regents of the University of 

California, Sun Microsystems, Inc., and other parties. The following 

terms apply to all files associated with the software unless explicitly 

disclaimed in individual files. 

The authors hereby grant permission to use, copy, modify, distribute, 

and license this software and its documentation for any purpose, provided 

that existing copyright notices are retained in all copies and that this 

notice is included verbatim in any distributions. No written agreement, 

license, or royalty fee is required for any of the authorized uses. 

Modifications to this software may be copyrighted by their authors 

and need not follow the licensing terms described here, provided that 

the new terms are clearly indicated on the first page of each file where 

they apply. 

IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY 

FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 

ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY 

DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE 

POSSIBILITY OF SUCH DAMAGE. 

THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, 

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, 

FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE 

IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE 

NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR 

MODIFICATIONS. 

RESTRICTED RIGHTS: Use, duplication or disclosure by the government 

is subject to the restrictions as set forth in subparagraph (c) (1) (ii) 

of the Rights in Technical Data and Computer Software Clause as DFARS 

252.227-7013 and FAR 52.227-19. 

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

for the MD5 routines:

Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.

License to copy and use this software is granted provided that it
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing this software
or this function.

License is also granted to make and use derivative works provided
that such works are identified as "derived from the RSA Data
Security, Inc. MD5 Message-Digest Algorithm" in all material
mentioning or referencing the derived work.

RSA Data Security, Inc. makes no representations concerning either
the merchantability of this software or the suitability of this
software for any particular purpose. It is provided "as is"
without express or implied warranty of any kind.

These notices must be retained in any copies of any part of this
documentation and/or software.
------------------------------------