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