NAME
     NNML::Server - a minimal NNTP server

SYNOPSIS
       perl -MNNML::Server -e 'server()'


DESCRIPTION
     NNML::Server server implements a minimal NNTP server. It is
     (hope-)fully conformant to rfc977. In addition the commands XOVER
     and AUTHINFO are implemented.

     Supported commands:

       ARTICLE,	AUTHINFO, BODY,	GROUP, HEAD, HELP, IHAVE, LAST,	LIST,
       MODE, NEWGROUPS,	NEWNEWS, NEXT, POST, QUIT, SLAVE, STAT, XOVER

     The main reason for writing this was to synchronize my mail
     directories across	different hosts. The Mail directories are
     MH-Style with a .overview file in each folder and a active
     file in the base directory. These	are maintained by the
     Emacs Gnus	backend	NNML. To get started, you can
     generate/update this files	using the overview program. Upon
     POST and IHAVE commands this files	will also be updated.

     To	start from scratch use:

       touch /tmp/active;
       perl -MNNML::Server -e 'server(base => "/tmp", port => 3000)'

     To	export your mh-Mail use:

       perl overview -base ~/Mail
       perl -MNNML::Server -e 'server(base => "$ENV{HOME}/Mail", port => 3000)'

     The command POST and IHAVE	honour the Newsgroups header if
     not overwritten by	the X-Nnml-Groups header. Articles will
     contain an	appropriate X-Nnml-Groups header when retrieved.

AUTHORIZATION
     To	enable access restrictions use:

       perl -MNNML::Auth -e "NNML:Auth::add_user($ENV{LOGANME},	'passwd', \
	 'read', 'write', 'admin')"

     If	basef</passwd> exists, three levels of authorization are
     recognized:

     admin     Users with permission admin may shut down the
	       server using SHUT.

     write     Users with permission write may use the POST and
	       IHAVE commands.

     read      All other commands require the b<read> permission.

BUGS
     The server	handles	multiple connections in	a single thread.
     So	a hung POST or IHAVE will block	all connections.

SEE ALSO
     The overview(1) and nnmirror(1) manpages.

AUTHOR
     Ulrich Pfeifer <pfeifer@ls6.informatik.uni-dortmund.de>

