# NewsCache --- A cache server for USENET News. # Copyright (C) 1996-1998 Thomas Gschwind # Portions Copyright (C) 2000-2004 Herbert Straub (see ChangeLog) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # ---------------------------------------------------------------- Work that has to be done for 1.2 (Herbert Straub) ------------------------------------------------- rc6: configure: error: You don't have PAM header files. --> Was ist mit denen? SuSE: pam-devel RedHat: pam-devel Debian: libpam0g-dev C++ Compilier Buildprocess socket++ SuSE: OK RedHat: Debian: OK Buildprocess NewsCache SuSE: OK RedHat: Debian: OK Testing and Bugfixing for the new stable version 1.2. Old Goals defined by Thomas Gschwind for 1.0 --------------------------------------------------------------------- username restricted to 8 chars?!? libwrap detection wildcards in prefetch kill -1 to reread config file * post failed (too old 441) (SOLVED, gcc272? bug) DONE (Herbert Straub) in cascaded NewsCache Configuration OK * maximum number of connections (DONE) * NEWGROUPS (DONE) - daylight patch (DONE) - do not retrieve whole active database? increase active db timeout instead * --version bug (DONE) * NewsCache crashes in standalone mode (SOLVED) * check posting (telnet OK, netscape3 OK) * article id (HALF DONE) 1. use currently selected news server (DONE) 2. if not available try other news servers as listed in the config file (DONE) * LIST NEWSGROUPS (HALF DONE) * hostname (DONE) * Statistic-Tools (HALF DONE) * libwrap patch (TEST) * Check this: I've been playing with NewsCache, and doing some heavy modification to add a few extra features (particularly support for user/password authentication). Along the way, I found an interesting incompatibility between NewsCache 0.99.11 and the Free Agent news reader. My upstream NNTP feed is INN-based, which is fed by MCI. For some reason or another, in a few of the newsgroups there are some very old articles that no longer exist (i.e. a bit over a year old). They come through in the overview, so NewsCache passes them right along to Free Agent. When Free Agent is used to try to access the article, NewsCache queries the upstream NNTP server, receives a 423 response, and correctly passes the 423 on to Free Agent. Unfortunately, something along the way gets messed up and Free Agent goes into a loop continually trying to request the article. I found a workable solution in replacing the 423 response in ns_article() with a 430 response, causing Free Agent to correctly report that the article no longer exists.. Goals for 1.5 ------------- * Timeouts Use per server active timeouts instead of global timeout variables. Get rid of this broken semioffline switch! * Statistics created by daemon (list active,head/body/article,newgroups,over) erroneous * xmotd command? * pat (full implementation, all headers) * better authentication (Use ClientAuthentication module) * Add negative caching and caching of headers * A small test suite. Small program that simulates a news server and replies whatever a small config file says. Maybe a shell script? * If a request cannot be fulfilled by the cache, it should not try to always connect the news server. This can be performance consuming in offline mode. (Eg. assume that a server is not reachable for at least n minutes) * Crosspostings should be retrieved only once --- add a database with all the articles' article ids. * support servers without overview database ? Groups without reading permission ? ListIter in OverviewFmt.h