Tortoise Internet News Server 2.0Beta1

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

Tortoise is a Windows NT Usenet news server.  It is derived from NNTPRelay our news router.  
It supports most common Usenet News reader software.

Any feedback on the program, docs, etc should be mailed to news@maxwell.syr.edu.

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

Tortoise runs on x86 Windows NT version 4.0 server (SP3 required for proper operation). It 
needs a minimum of 32MB of memory for operation.  Although not required, for better performance we recommend that you use a stripe set without parity for databases and article stores.

*************************
* Setting up Tortoise  *
*************************

1.  Unpack Tortoise in the directory in which it will reside.

2.  Run install.bat This will:
	Install tortoise as service on the machine. (You must be administrator)
	Get group.imp from another server or an existing INN active file
	Set web interface userid and password
	Set path for config.txt in the registry.

3.  Edit config.txt, remember to fill in number of group slots needed. 
	(You got this number in step 2)  Remember to add 2000-5000
	extra slot entries for new groups. Create directories (logs,posts,outgoing...)
		
4.  Startup: Go to Control Panel->Services->Select Tortoise->Click Start

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

5.  Connect to http://your.machine.name:2001/ use the admin userid and password you
    created in step 2.

This will bring you to the configuration web site. (Note: Internet Explorer 4.x is not 
recommended for the web interface--it has a form posting bug that interferes with the management interface).  

Internet Explorer 3.x, Netscape 3.x or higher, or any other browser supporting frames and forms should work fine.

6.  Use the web interface to finish configuring Tortoise.  You should add an entry for 127.0.0.1 allowing transfer so that local posts can be processed.

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

What's missing:

1. support for moderation (for local posts) 
2. list overview.fmt

What's here:

1. stable news reading
2. cyclical everything (spool, history, group db, overview, overview cache)
3. Posting
4. Cross feeding
5. External Spam Filtering
6. Web interface

We've tested tin, news express, MS internet mail and news, netscape 3, netscape 4, 
Outlook express, FreeAgent.


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

-The addition of the active file (in this distribution called active.tort) was to increase 
 speed of the list command.  You will want to keep the groups in sync between group.num and 
 active.tort.  You must leave an extra line at the end of active.tort.

-When installing Tortoise you must create the directories that are configured in config.txt 
 and in the web interface for creation of stores.

-Be careful when editing the config files.  Invalid entries are ignored without warning.
	
-You must stop and start the server to re-read the config file.

-You should read all the included documentation.

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

tortoise.exe		The executable for Tortoise
config.txt		Config file Tortoise
*.tcl			Operational TCL Scripts
tcl*.dll		DLLs for tcl8.0 
Install.bat		Batch file for installing Tortoise.
asyncio.dll		Support DLL


---------------------------------------------------------------------------------------------------------------
Copyright 1999 Christopher M. Sedore 

Copyright 1999 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.

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

/*--------------------------------------------------------------------
hash() -- hash a variable-length key into a 64-bit value
  k     : the key (the unaligned variable-length array of bytes)
  len   : the length of the key, counting by bytes
  level : can be any 8-byte value
Returns a 64-bit value.  Every bit of the key affects every bit of
the return value.  No funnels.  Every 1-bit and 2-bit delta achieves
avalanche.  About 41+5len instructions.
The best hash table sizes are powers of 2.  There is no need to do
mod a prime (mod is sooo slow!).  If you need less than 64 bits,
use a bitmask.  For example, if you need only 10 bits, do
  h = (h & hashmask(10));
In which case, the hash table should have hashsize(10) elements.
If you are hashing n strings (ub1 **)k, do it like this:
  for (i=0, h=0; i<n; ++i) h = hash( k[i], len[i], h);
By Bob Jenkins, Jan 4 1997.  bob_jenkins@compuserve.com.  You may
use this code any way you wish, private, educational, or commercial,
as long as this whole comment accompanies it.
See http://ourworld.compuserve.com/homepages/bob_jenkins/evahash.htm
Use for hash table lookup, or anything where one collision in 2^^64
is acceptable.  Do NOT use for cryptographic purposes.
--------------------------------------------------------------------*/
