[net.news] restructuring and idea for group

chuqui@nsc.UUCP (Chuq Von Rospach) (06/15/84)

As I have mentioned before, I have finally bitten the bullet and
decided to do some serious hacking to inews. Right now I am in the
process of linting (!!! it is down from 30K or error messages to about
13K) the code and trying to clean up some of the more outrageous
problems and removing dead code from the source. When I finish that, I
am going to do the following things as well:

1) clean up batching support. My inews will support at least two forms of
batching: the batch/unbatch distributed in 2.10.1 and the peter gross
version of batching known as bnproc. Both will be compile time options
using define flags so you can compile in either (or both) only as you need
them. I expect that installing support for bnproc into inews will improve
batching performance significantly because the current setup requires two
process spawn for every message (that is about 600-800 processes a day
right now-- very expensive), two disk writes (one to /tmp, one to
/usr/spool/news) and a pipe (on 4.2 this uses IPC and is somewhat
expensive). I haven't really looked and the 2.10.1 batching but there is
probably room for improvement there as well.

2) I am going to be writing some structure into the main process of the
code. Currently the rnews portion of code is hacked into the rest of inews
with a state flag and a lot of if(state==PROC) blocks. Besides making it
almost unintelligible it causes rnews to do processing (like parameter
parsing for inews) that is unnecessary. I'm going to split out the
appropriate code into its own function where it belongs.

3) I've been adding bug fixes off the net when I find them to work. 

4) For the sake of the proposed net restructuring, I am going to write a
routine that will scan a list of newsgroups and check them against a
table. If they are in that table the routine will rename them to a given
group. If you create a table such as:
	net.trivia net.games.trivia
	net.stat net.math.stat
this inews will update the header and store the message in the new homes. I
also plan on setting it up so that the message will be transmitted from the
site with the updated header so that we can install this stuff on the
backbones (I hope) and help isolate the net from those sites that don't
bother to update their active files for the sake of the rest of us (I'm
VERY tired of lazy system administrators, folks...).

5) I want to add a routine that strips illegal groups from the headers
before they are transmitted. I haven't decided whether it should be all
groups that get stripped or just non net.all groups.

6) I want to change inews so that if the only place a message goes is
'junk' it doesn't get transmitted. This goes very closely with #5.

Longer range plans include splitting the news source directory into
subdirectories, which is why the Makefile I posted is set up the way it is,
and turning things like funcs.c and ifuncs.c into their own subdirectories
that create libraries instead of those horrible HUGE .o files. Comments on
all of this are more than welcome, and I'll (of course) be posting my work
once I get it done and stable.

chuq

-- 
From the ledge of the seventh cornice:			Chuq Von Rospach
{amd70,fortune,hplabs,ihnp4}!nsc!chuqui			(408) 733-2600 x242

Love is the process of my leading you gently back to yourself.
			- Saint Exupery