Subject: NNML-1.15 (A tiny nntp-server) on CPAN rsn.
From: Ulrich Pfeifer <[email-masked]>
Date: 1 Oct 1996 12:45:26 GMT
Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc

o Ever wanted to have your own little NNTP-Server for communicating with
  your colleagues instead of mailing lists?

o You read mail and news on different systems and want to synchronize
  your mail folders over slow links.

o You don't have NNTP at home or want to read and post off-line?

If you checked any of the above, NNML is for you.

It is tested with perl5.003_05 but it may work with any version which
is able to compile IO-1.12. This means you _need_ IO-1.12 (Thanks to
Graham Barr!).  If you want to use the nnmirror facility you should
also fetch NNTPClient.

DISCLAIMER: 

This is definitive _alpha_ software. I wrote it Saturday and use it
since then without problems. But I can give no guarantee that it does
not destroy your complete file system after posting it to c.l.p.m ;-).

You should find NNML-1.15 really soon now on CPAN:

        http://www.perl.com/CPAN/authors/id/ULPFR/

Ulrich Pfeifer
--
@J = split //,"J!k Phau^eHeens%rarrot&\ncl t ";
for(0..24){print $J[$_*7%($#J+1)]}

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 an 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
     by message-id.

AUTHORIZATION
     To enable access restrictions use:

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

     If base/passwd exists, three levels of authorization are
     recognized:

     admin     Users with permission admin may shut down the
               server using SHUT.  Also these users may create
               new groups simply by posting to them.

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

     read      All other commands require the read permission.

BUGS
     The server handles multiple connections in a single thread.
     So a hung POST or IHAVE would block all connections.
     Therfore a post request is interrupted if the server could
     not read any bytes for 10 seconds. The Client is notified
     by message 441. If the client continues to send the article,
     it is interpreted by the command loop.

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

AUTHOR
     Ulrich Pfeifer <[email-masked]>