Papercut NNTP Server
Papercut is a NNTP server written in Python. Its main objective is to integrate existing web based message board software (Phorum is one of the supported ones) with an Usenet front-end. However, its extensibility enables developers to write their own containers for the storage of the Usenet articles (messages). That means that the code is extensible enough that _you_ could write new containers to integrate the news server with other web message board projects or even other ways to store the messages. The server software will work with any cheap web hosting service.
The source code is available freely under the BSD license, which means you can do whatever you like with it. I do welcome any and all contributions to the project :)
Download - Github project
Tons of changes included on this release. Most of the problems reported on the forum should be fixed now. See the changelog for more details.
Changes: Fixed the handling of the HEAD, STAT, LISTGROUP and SLAVE commands to properly comply with the NNTP protocol. The NEWGROUPS command will no longer return the full list of newsgroups when the storage modules are not able to get the creation date of each newsgroup. Also now correctly stripping whitespace from commands only when the client is not posting a new article (patch by Filip Miletic). Added a utility script to help monitor the health of the server.
Changes: Fixed the authentication modules for Phorum (both MySQL and PostgreSQL versions) to check the passwords correctly. Thanks go to Brad Hilton for alerting us of this problem.
Changes: Quite a lot of time since the last release. Tons of fixes were applied to the storage modules and the server itself to correctly support the NNTP RFC. The 'mbox' storage module should be now considered in beta quality. Fixes to the Phorum authentication module to support MD5'ed passwords. Patches were sent by Andreas Wegmann, Matthew Mastracci, Lloyd Zusman, Mikhail Teterin and Lauren Matheson. Thanks, guys!
Changes: Fixed a couple of problems (hopefully the last ones) related to the phpBB storage and authentication modules. The phpBB support should now be considered stable.
Changes: Added a new storage module based in PostgreSQL for Phorum. Lots of fixes to the phpBB storage module and a fix related to the way Mozilla handles multi-line headers.
Changes: A few simple bugfixes regarding the handling of the XOVER, XPAT and XHDR commands.
Changes: The server will now dynamically use a forking based socket server in UNIX platforms and a threaded one in Windows platforms. Several fixes were also applied to correct issues with the phpBB storage module (kudos to Patricio Anguita) which should make it somewhat stable.
Changes: The server was changed from a threaded system to a forking based one. This was required so I could implement a way of having user-customizable timeouts for NNTP sessions. By default, the server will kill all connections that don't send any data over the wire for 60 seconds. Since the system was changed to a forking based one, there is now a configuration option to set the maximum number of concurrent connections (it defaults to 20).
Changes: A new caching module was added to the standard distribution, which should improve the performance of the server considerably. Also, more fixes were implemented and applied to the new phpBB storage module (which should still be considered in beta level). Once again Chip McClure was instrumental on providing assistance and help on testing these changes, and that is appreciated.
Changes: A new authentication module for the phpBB storage module was contributed by Chip McClure (thanks a lot, Chip!) and a few fixes to the phpBB storage module were applied as well. This marks the initial support (still considered beta level) for the phpBB software.
Changes: Mostly a lot of testing regarding the NTTP authentication code. The authentication stuff should be pretty much rock solid and it was tested successfully using the following Newsreaders: Mozilla Newsreader, Netscape 4.79 Newsreader, Outlook Express and Knode (KDE's default newsreader).
Changes: A lot of work re-designing the way the various storage modules work and also doing the initial code to support NTTP authentication. More changes are still to come, but this version already serves as a nice initial version with most (if not all) of these features working. New features include a standalone mysql storage module (no web front-end), an authentication module for Phorum and the concept of a 'read-only' / 'read-write' server with password protection.
Changes: Fixed a crash bug related to the new word wrap function used on the PhorumMail routine. Also a fix related to the behavior of the NEXT command when no article has been selected. And to top it off, some more documentation about the backend system for Papercut (i.e. how to create new containers to store the Usenet articles).
Changes: Another small bug slipped through the cracks related to the LIST NEWSGROUPS command and forums/groups that don't have its information properly configured, but it is now fixed. The implementation of the PhorumMail feature of Phorum was re-written and now it sends out a copy of every post if the 'email_list' column on the forum listing table is set.
Changes: More fixes related to the LISTGROUP, XHDR, NEWNEWS and XGTITLE commands. Running Papercut as a 'read-write' server with empty forums used to result in problems when users try to POST new articles, but not anymore ;)
Changes: The responses to the XGTITLE and LIST NEWSGROUPS commands are compliant to the NNTP RFC now. Also, the Phorum backend sends the notification email to the moderators of all forums once a new message is posted through Papercut. The installation procedures changed, so please remember to read the INSTALL file.
Changes: Papercut is now able to be configured as a 'read-only' server (which basically denies any and all message postings) and correctly sets the 'posting allowed' flag on the LIST command responses. Refereces to a specific Phorum database name were removed from the source code. A rather silly mistake on one of the SQL queries was also fixed.
Changes: Papercut now correctly sends the 'Path' header when serving the usenet articles (nothing noticeable, but 'pine' used to complain about this)
Changes: now Papercut only shows messages coming from Phorum that are approved (I would say it's a pretty important fix ;)
Links of Interest
Joao Prado Maia